Последние несколько лет мой EeePC с Ubuntu мирно отдыхал в глубине шкафa. И тут появился повод стряхнуть с него пыль. Возникла задача познакомиться с CentOS Linux и протестировать там примеры для вебинара по Apache Ant.
Посетив www.centos.org, останавливаюсь на версии 6.8. На странице выбираю сервер с образами дисков и скачиваю файл CentOS-6.8-i386-LiveCD.iso. С помощью Rufus создаю загрузочный USB и успешно инсталлирую CentOS 6.8 на свой Asus EeePC. Процесс очень простой. А тёмно-синяя цветовая гамма старого доброго GNOME приятна для глаз…
Какие инструменты (программы/пакеты) мне нужны? Пока только три: Java JDK, Apache Ant и Git. Начинаю с синхронизации и обновления индексных файлов пакетов, памятуя что вместо apt-get (в Ubuntu) в CentOS используют yum:
[lamp@localhost ~]$ sudo yum update
[sudo] password for lamp:
lamp is not in the sudoers file. This incident will be reported.
Вот это новость… В отличие от Ubuntu, простой пользователь не обладает правами выполнения команд от имени root. Изучив wiki.centos.org/TipsAndTricks/BecomingRoot, решаю использовать «quick and dirty way», отредактировав файл /etc/sudoers. Для этого у root есть команда visudo (спасибо опытным коллегам). Перехожу в режим root (после su ввожу root пароль, заданный при инсталляции):
[lamp@localhost ~]$ su
Password:
[root@localhost lamp]# visudo
Нахожу в файле строку root ALL=(ALL) ALL и добавляю (предварительно нажав клавишу «I» и войдя в режим вставки) ниже подобную строку, только вместо root пишу lamp, получается так:
root ALL=(ALL) ALL
lamp ALL=(ALL) ALL
Нажимаю Esc и выхожу из файла с сохранением (:wq). Покидаю режим root командой exit. Теперь можно выполнять административные команды через sudo, вводя пользовательский пароль. Итак, снова:
[lamp@localhost ~]$ sudo yum update
[sudo] password for lamp:
Ввожу пароль, всё работает, yum обновляет индексы и заодно предлагает обновить кое-какие пакеты, скачав 197 Мб. Отвечаю N, это немного подождёт.
Время заняться Java JDK. Передо мной выбор — ставить oracle-jdk или open-jdk? Благодаря советам более опытных коллег чаша весов склоняется в сторону open-jdk. Использую команду yum search чтобы найти имя пакета для установки. Ставлю, само собой, самую свежую версию:
[lamp@localhost ~]$ sudo yum search jdk
…
java-1.8.0-openjdk-devel.i686: OpenJDK Development Environment
…
[lamp@localhost ~]$ sudo yum install java-1.8.0-openjdk-devel
…
[lamp@localhost ~]$ javac -version
javac 1.8.0_121
[lamp@localhost ~]$ java -version
openjdk version «1.8.0_121»
OpenJDK Runtime Environment (build 1.8.0_121-b13)
OpenJDK Server VM (build 25.121-b13, mixed mode)
JDK есть, очередь за Apache Ant. Пробую поставить из репозитария:
[lamp@localhost ~]$ sudo yum install ant
и yum предлагает скачать около 60 Мб и установить 10 пакетов зависимостей, где сам ant только лишь 2.2 Мб. При этом Google слегка намекает — это версия 1.7.1 что меня совершенно не устраивает (там нет junit). После недолго поиска нахожу подходящий скрипт, позволяющий скачать и установить свежую версию. Слегка редактирую его под себя:
# download and install
antname=apache-ant
antserver=http://apache-mirror.rbc.ru/pub/apache
antversion=1.10.1
wget ${antserver}/ant/binaries/${antname}-${antversion}-bin.tar.gz
sudo tar xvfvz ${antname}-${antversion}-bin.tar.gz -C /opt
sudo ln -sfn /opt/${antname}-${antversion} /opt/ant
sudo sh -c 'echo ANT_HOME=/opt/ant >> /etc/environment'
sudo ln -sfn /opt/ant/bin/ant /usr/bin/ant
# check installation
ant -version
# cleanup
rm ${antname}-${antversion}-bin.tar.gz
и сохраняю в домашнем каталоге, затем запускаю:
[lamp@localhost ~]$ chmod +x installantoncentos.sh
[lamp@localhost ~]$ ./installantoncentos.sh
в последней строке вижу результат команды ant -version:
Apache Ant(TM) version 1.10.1 compiled on February 2 2017
Git ставлю из репозитария:
[lamp@localhost ~]$ sudo yum install git
[lamp@localhost ~]$ git --version
git version 1.7.1
Итак, нужные инструменты готовы и можно приступать к тестированию примеров для вебинара. Но это будет уже другая история…
Комментарии (18)
whitedruid
05.03.2017 20:27Если совсем 'quick makeshift' подход практиковать при редактировании /etc/sudoers, то, chmod +w — вовсе не обязательно, а достаточно в самом vi ввести по завершению редактирования :wq!
Про ant также верно в комментариях написали. Из archive — как-то не совсем верно.
Наконец, про git. Он у Вас будет достаточно старой версии, в то время, как можно поставить, дополнительно установив neon из rpm правда, версию 1.7.12.biblelamp
05.03.2017 22:58при редактировании /etc/sudoers, то, chmod +w — вовсе не обязательно, а достаточно в самом vi ввести по завершению редактирования :wq!
Спасибо. Впрочем я заметил (спасибо grossws) что команда visudo решает эту проблему — достаточно :wq
Из archive — как-то не совсем верно
Согласен, попробую другие варианты.
про git… версию 1.7.12
1.7.1 меня устроил на 146%grossws
06.03.2017 00:36Спасибо. Впрочем я заметил (спасибо grossws) что команда visudo решает эту проблему — достаточно :wq
visudo использует тот редактор, который указан у вас в переменной
EDITOR
, как я уже писал выше. Т. е.EDITOR=nano visudo
и вам не нужно даже знать про:wq
. Не все сборки примут произвольный редактор (через переменную окружения), но в большинстве дистрибутивов это разрешено.biblelamp
06.03.2017 07:12EDITOR=nano visudo и вам не нужно даже знать про :wq
Да, понял. Впрочем, в свежеустановленном CentOS 6 nano нет, а vi и команды типа :wq меня не смущают.
Ещё раз спасибо, почерпнул много полезного из ваших комментариев. Как только карма станет приемлемой — отредактирую свою заметку.
MasMaX
06.03.2017 11:29Для доступа к sudo существует группа wheel. Просто добавляешь юзера в эту группу:
usermod -a -G wheel [username]
Строка " %wheel ALL=(ALL) ALL" в sudoers файле насколько я помню по-умолчанию включена… Если нет то надо ее раскоментить.biblelamp
06.03.2017 11:47Просто добавляешь юзера в эту группу
Строка %wheel по умолчанию закомментирована. Получается всё равно надо редактировать sudoersgrossws
06.03.2017 13:16Не ссорьтесь, есть ли она, закомментирована или нет — зависит от мейтейнеров конкретного дистрибутива. В ванильной сборке, вероятнее всего, будет закомментирована.
biblelamp
06.03.2017 14:08Именно так. Специально проверил на своём ноуте:
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
grossws
Вас не били линейкой? А надо было. Для редактирования
sudoers
естьvisudo
, проставить env varEDITOR
по вкусу.grossws
И для установки java аж пришлось гуглить и читать туториал. Лучше бы
yum(8)
посмотрели, узнали бы проyum search
, набралиyum search openjdk
и потом поставили нужную версию черезyum install java-1.8.0-openjdk-devel
.Если вам нужен актуальный ant, то зачем ставить его из archive.apache.org? Почему не посмотреть на официальной странице Apache Ant и не взять актуальную версию?
sub31
Скорее всего надо было срочно поставить какой-то проект и опробовать под CentOS 6.8.
Обычно CentOS очень стабилен и содержит кучу весьма древних библиотек. Просто так из последней убунты вытащить нечто и заставить работать под CentOS — не один пот сойдет.
Ну а openjdk вовсе не то же самое, что oracle-jdk. Тут не по одним граблям бегать придется почему стабильное приложение на oracle-jdk собирается и работает, а под openjdk ни в какую. Ну и наоборот.
Ну и так… рекомендации… если ставите несколько вариантов java на машине, то пользуйтесь для переключения alternatives. Не портите жизнь себе и окружающим.
А то что поставили ант распаковкой бинарников из архива, даже без rpm — видимо очень быстро надо и сильно доверяете источнику.
biblelamp
sshikov
Вообще ant пофиг на версию jdk. Ну, почти — наверное можно найти что-то, что будет работать не так, но придется очень сильно постараться.
grossws
Потому что надо тащить не из ubuntu или debian, а из fedora.
rpmbuild
позволит без проблем пересобрать нужное. Иначе получается жалоба на то, что гланды через жопу очень долго извлекаются.Примеры для серверных приложений будут? Отличия рендеринга шрифтов, мелочёвка в swing/awt и javafx нерелевантны. Замечу, что и oracle jdk 8, и openjdk 8 проходят TCK. Проблемы, скорее, возникнут при переходе на IBM J9, Excelsior JET или Azul, когда выяснится, что вы (или ваши зависимости) неудачно влезли в
sun.misc
или около того.И то, и то — вопрос доверия. В одном случае вы доверяете оригинальному вендору (ASF) и проверяете хэшсумму + pgp/gpg подпись; в другом — доверяете вендору ОС (RedHat/CentOS Project) и проверяете те же хэшсумму + pgp/gpg подпись (за вас это делает rpm, но принципиального отличия нет).
biblelamp
В том и фокус, что актуальный в данной ситуации был не нужен. Устроил бы любой 1.8.*, а уж 1.9.* с головой. Тем не менее за совет — спасибо.
biblelamp
Спасибо, я в курсе про команду search, смотрел (только не стал писать об этом). Просто после размышления выбрал ставить именно oracle-jdk так как он не совсем идентичен open-jdk, как верно отметил ниже один комментатор.
biblelamp
Большое спасибо за совет. Учту.
biblelamp
Спасибо за советы по поводу visudo и open-jdk. Учел их, исправив статью (само собой, повторив в реале).