4.4. Установка программ по исходным текстам
Проблема
Требуется построить программу по исходным текстам, но вам трудно разобраться в дебрях tar-архивов, bzip2-архивов, make-файлов и т. д.
Решение
Распакуйте tar-архив. Запустите сценарий configure, затем make и install.
Начните с каталога, в котором хранятся tar-архивы и каталоги с исходными текстами. В следующем примере используется программа JOE (Joe's Own Editor):
# cd /usr/src/downloads
# tar zxvf joe-2.9.8.tar.gz
# cd joe-2.9.8
# ls
# less README
# less INFO
# ./configure --help
# ./configure «options, if needed>
# make
# make install | tee joe-makeinstall
Последняя команда сохраняет выходные данные установки в текстовом файле joe-makeinstall.
Некоторые программы архивируются утилитой bunzip2 вместо более традиционной утилиты gzip. Распаковка архивов .bz2 осуществляется так:
# tar jxvf joe-2.9.8.tar.bz2
Удаление программ, построенных по исходным текстам, производится командой:
# make uninstall
Такой способ работает только в том случае, если автор программы включил поддержку make uninstall. Если файлы приходится удалять вручную, сохраните вывод make install в текстовом файле. Другой способ — построение списка установленных файлов (см. раздел 4.3).
Комментарий
Описанная в этом разделе процедура считается стандартным способом удаления программ, построенных по исходным текстам. Тем не менее не все авторы программ следуют общепринятым правилам. Обязательно просмотрите всю документацию к программе.
Прежде всего обратите внимание на параметры конфигурации. Некоторые программы (такие, как Apache) поддерживают десятки параметров компиляции. Для обеспечения безопасности откомпилируйте поддержку только тех возможностей, которые будут реально использоваться. Это особенно важно для серверов, доступ к которым осуществляется из непроверенных сетей (скажем, почтовых и веб-серверов).
Аргументы в пользу компиляции программ по исходным текстам:
- вы можете включить поддержку тех возможностей, которые вам необходимы;
- оптимизация программ для конкретной архитектуры;
- полный контроль над ходом установки.
Впрочем, есть и недостатки:
- возможные проблемы с обновлением и удалением;
- до «кошмара зависимостей» рукой подать;
- на компиляцию большой программы может потребоваться несколько часов.
Некоторые серверы должны строиться по исходным текстам. Например, веб-сервер Apache строится по исходным текстам для обеспечения полной настройки и оптимизации.
Что касается настольных систем, они слишком сложны и громоздки для самостоятельной компиляции. В таких случаях проще воспользоваться пакетными дистрибутивами Linux.
См. также
info tar, make(1), bzip2(1).