Сейчас такая ситуация случается гораздо реже, благо установка и обновление программ в Debian больше напоминает заказ в ресторане: хочу это, хочу то -- подождите -- готово! Однако умение собирать программы из исходников рано или поздно пригождается практически любому пользователю свободного программного обеспечения. И сложного в этом ничего нет.
Достаточно один раз в жизни услышать волшебное заклинание: "
configure
, make
, make install
". Дальше я объясню, что это значит.Сборку программы можно сравнить с выпечкой пирога. Чаще всего, вначале надо взять все необходимые ингридиенты (исходники),
потом смешать их в нужном порядке (подготовить исходники к сборке,
./configure
), а затем залить в форму и поставить в печь (запустить сборку, make
). Спустя некоторое время из печи можно вынимать готовый к употреблению пирог (устанавливать готовую программу, make install
). Следует отметить, что в данном случае для выпечки необходима кухня и печь. Также и для сборки программы необходимы инструменты разработчика. Обычно это включает в себя как минимум компилятор и сопутствующие ему программы, как например утилита
make
. Это и есть "печь". Потребуется и место, где можно всем этим заняться -- командная строка (терминал) ("кухня"). Если у вас есть и кухня, и печь, то можете начинать готовить.Итак, все свободные программы доступны в виде исходного кода. Это полуфабрикат программы. Из него легко можно собрать саму программу, а можно и использовать для создания какой-нибудь новой программы. По-английски исходный код называется source code.
Шаг 1: берём исходники
Необходимо скачать и распаковать архив с исходным кодом программы. Например, можно скачать программу hello-2.1.1. Обычно исходники следует брать с сайта разработчиков программы.
Распаковать архив можно так:
$ tar zxvf hello-2.1.1.tar.gz
(Не забывайте, что в большинстве случае нажатие клавиши
Перейдите в каталог с исходным кодом:
$ cd hello-2.1.1
Шаг 2: configure (месим тесто)
Прочитайте файлы
INSTALL
и README
, если они есть в архиве исходного кода. В них может содержаться важная информация о том, как устанавливать и использовать программу.В большинстве случае для подготовки исходников к сборке потребуется выполнить только одну команду:
hello-2.1.1$ ./configure
Она проверит наличие всех необходимых условий (библиотек и других программ) в Вашей системе, и приготовит исходный код к их использованию. Обратите внимание на символы "
./
" в начале команды. Они указывают, что необходимо выполнить команду configure
из текущего каталога, то есть команду configure
поставляемую вместе с исходным текстом программы, которую мы собираем.На этом же этапе можно указать и куда именно надо ставить программу. Хотя в большинстве случаев рекомендуется ставить "самосборные" программы в каталог
/usr/local
, иногда это невозможно. Так, если у пользователя нет прав администратора, например на общественном компьютере, то установить программу можно только в свой домашний каталог. Чтобы установить программу в домашний каталог нужно указать дополнительный параметр команде configure
:hello-2.1.1$ ./configure --prefix=$HOME
Дополнение: на самом деле, я обычно устанавливаю программы с префиксом/usr/local/stow/название-программы
, а после установки использую утилитуstow
, чтобы поставить символические ссылки на файлы программы в системных каталогах. Использование утилитыstow
позволяет мне потом легко удалить установленную программу, не связываясь при этом с более трудоёмкой сборкой пакетов.
Внимательно читайте что пишется на экране при подготовке исходников. Если всё нормально, то закончится она должна чем-нибудь вроде
config.status: creating Makefile
config.status: creating contrib/Makefile
config.status: creating doc/Makefile
config.status: creating intl/Makefile
...
Если же появляются какие-то сообщения об ошибках, значит чего-то на вашей "кухне" для приготовления этой программы видимо не хватает. Чаще всего какой-нибудь библиотеки. Какой -- подскажет вывод программы
configure
Шаг 3: make (в печь!)
Если предыдущая стадия закончилась нормально, то теперь можно ставить наш полуфабрикат в печь. То есть запускать процесс сборки программы. Обычно он происходит автоматически и управляется командой
make
:hello-2.1.1$ make
Для больших программ этот процесс может занимать довольно много времени. Однако наша программа-пример
hello
должна собраться быстро.Если сборка закончилась сообщением вроде этого:
make: *** [all] Ошибка 2
то значит, что-то пошло не так, и сборка не получилась. Однако чаще всего сборка заканчивается без ошибок.
Шаг 4: make install (кушать подано!)
Собственно всё. Пирог можно подавать к столу, а собранную программу устанавливать в систему. Делается это так:
hello-2.1.1$ make install
Если на шаге подготовки исходников Вы выбрали вариант установки в домашний каталог (как я), то не забудьте добавить подкаталог
~/bin
в переменную PATH
:$ export PATH=$HOME/bin:$PATH
Можете запускать собранную программу:
$ hello
Здравствуй, мир!
Она пишет на экран "Здравствуй, мир!". Всё ОК.
Надеюсь, что эти инструкции будут понятны даже совсем начинающим пользователям линукс. Мне в своё время не хватало таких инструкций :)
P.S. Хочу, однако, заметить, что сборка из исходников несёт с собой целый ряд неудобств. Первое и наиболее существенное из них -- удалять такую программу гораздо хлопотнее. В случае с
hello
это можно сделать с помощью командыhello-2.1.1$ make uninstall
в каталоге с её исходным кодом, но не всегда этот каталог сохраняется в целостности, да и не все авторы программ должным образом готовят исходные тексты к
make uninstall
Поэтому лучше пользоваться готовыми пакетами, поставляемые с Вашим дистрибутивом. Так, чтобы установить программу
hello
в Debian GNU/Linux достаточно всего одной команды:# aptitude install hello
или
$ sudo aptitude install hello