четверг, 23 мая 2013 г.

Установка программы из исходных кодов

Как правило, самая свежая версия ПО находится на официальном сайте разработчика в виде исходных кодов, запакованных в архиве .tar.gz, .tar.xz, .tar.bz2 и других.

Удобнее устанавливать, конечно, из репозиториев, например:
# yum install bind9

yum (Yellow dog Updater Manager) или apt (Advanced Package Tool) сам решит для вас все зависимости и установит программу быстро и без особых усилий.
Второй вариант (редко), скачать уже бинарный пакет, и командой:
# dpkg -i имя_пакета 
или:
# rpm -i имя_пакета
установить его, в этом случае вам придется самому решать зависимости пакетов.

Например для установки bind9 нужна библиотека libssl-dev, ее тоже нужно скачать и установить перед bind'ом.
В случае с установкой из исходников мало чем отличается от вышеупомянутой установки с помощью dpkg/rpm.
Тоже нужно скачивать пакет (не с репозитория), тоже нужно решать зависимости, отличие лишь в распаковке и командах установки.
Стандартный алгоритм установки программы из "сорцов" выглядит примерно так:
1. Скачиваем нужный пакет
2. Распаковываем в каталог /usr/local/src
3. Заходим в каталог в распакованными файлами
4. Читаем файл README, очень полезно
5. Выполняем команду ./configure с необходимыми параметрами (если нужно)
5.1. Если есть неразрешенные зависимости, то разрешаем их
6. Выполняем команду make
7. Выполняем команду make install

Алгоритм установки программы с помощью программы checkinstall:1. Пункты 1-6 такие же как и в предыдущем
7. Выполняем команду checkinstall

Плюс этого способа в том, что перед установкой формируется dpkg/rpm пакет, соответственно, его можно будет легко удалить командами:
# dpkg -r имя_пакета
или:
# rpm -r имя_пакета

Я рекомендую использовать именно этот способ.

Пример с установкой BIND9 из исходных кодов.
1. Идем на официальный сайт isc.org/software/bind и скачиваем нужную версию bind'а.
Я например скачал самую свежую версию bind-9.9.2-P2.tar.gz на данный момент.
Это можно сделать с помощью wget, lynx, и т.д. если же у вас есть графическая оболочка, то в любом браузере, или через ftp'шник, вариантов много.

2. Создаем каталог /usr/local/src и переходим в него:
# mkdir /usr/local/src
# cd /usr/local/src

3. Копируем скачанный архив в этот каталог:
# cp /путь/к/каталогу/с/архивом /usr/local/src

4. Распаковываем архив:
# tar -xf bind-9.9.2-P2.tar.gz
Альтернативный вариант распаковки, с помощью mc.

5. Переходим в каталог с распакованными файлами:
# cd ./bind-9.9.2-P2

6. Выполняем:
# ./configure
Ждем выполнения команды...

А вот и первые подводные камни, если до этого не было установлена библиотека libssl-dev, то  bind просит нас ее установить.
Предупреждение примерно в виде:
checking for OpenSSL library... configure: error: "/usr/bin/openssl/include/openssl/opensslv.h" not found

Устанавливаем:
# aptitude install libssl-dev

Снова выполняем:
# ./configure
Теперь никаких ошибок нет.

7. Выполняем команду:
# make

8. Выполняем команду:
# checkinstall

Если нет никаких предупреждений, то все установилось.

Теперь проверим версию bind:
$ named -v
BIND 9.9.2-P2

Посмотрим куда, он установился:
# whereis named
named: /etc/named.conf /usr/local/sbin/named

2 комментария:

wimbo комментирует...

http://habrahabr.ru/post/130868/ я просто оставлю это тут....

цукерберг комментирует...

Ты наверно хотел удалить команду make install, после прочтения статьи на хабре, но что-то тебя на половине пути остановило