среда, 18 августа 2010 г.

Установка приложений в Linux: часть 2(записки Windows эмигранта)

Из 1 части мы с вами узнали как устанавливать приложения из пакетов, однако trueUNIX way в ином: сборка программы из ее исходных вот этим мы и займемся. Сначала поясним понятия базовые для всего процесса.
Исходные тексты (Source). Это текстовые файлы и другие,идущие вместе с ним, которые позволят получить рабочую версию программы. 
Бинарная сборка(файл). Тот файл который можно непосредственно запускать 
Компилятор.  Программа преобразующая исходный текст в бинарный файл, но он еще не исполняем 
Линкер. Программа, собирающая из отдельных бинарных модулей программу, в частности именно он пристыковывает к программе функции стандартной библиотеки языка программирования С или любого другого языка    
Стандартная библиотека  Набор функций, который поставляется с компилятором и позволяет решать многие задачи возникающие перед программистом. В случае языка С это так называемая LibC и она идет совместно с системным компилятором Linux: GCC.
Зачем вам понадобится сборка из исходников? Во первых многие авторы распространяют свои творения  в исходниках. Причины такого положения дел могут быть разными: проект активно развивается, исходники часто обновляются, разработчик испытывает трудности в создании пакета(на самом деле создать пакет, учитывающий все зависимости и т.д. не так то и просто ).Есть и еще одна важная деталь, т.к. при компиляции GCC оптимизирует бинарный код под особенности вашего процессора и системы, то сборка из исходников это путь к получению более эффективной программы.
    Как же проводится сборка? Вы загружаете исходники из интернета, либо через SVN. Затем обычно уже в консоли(командная строка) переходите в каталог с исходниками и набираете три заветные команды:
./configure
make
make install
Первая из них подготовит инструменты сборки и настроит согласно требованиям программы
Вторая проведет сборку (компиляцию+линковку)
а третья проведет инсталляцию 
Все эти команды запускают скрипты специальным образом написанные, которые в свою очередь запрашивают действия у различных инструментов системы, формируют командную строку для GCC и т.д. Довольно часто приходится запускать процесс сборки под sudo, поскольку многие программы, особенно представляющие функции для других помещают свои компоненты  в системные папки, которые обычному пользователю недоступны, а доступны только под учетной записью root'а.Поэтому возможно полезно перед сборкой сразу переключится под root'a, введите в командной строке: sudo -i  Можно кстати все три команды объединить и записать так: sudo ./configure&& make&&make install . Конструкция && это как союз И, то есть получается: сначала выполни команду  ./configure, а потом  make. 
Какие возникнут проблемы при сборке из исходников?
1) Исходники могут содержать ошибки. Поэтому если вдруг процесс остановится внимательно смотрите вывод компилятора GCC  и линкера. Особенно там где встречаются слова error
2) Вам придется внимательно следить за тем, чтобы соблюдены все зависимости перед сборкой. К сожалению делать это все придется вручную
3) Установленная программа не будет известна утилите dpkg, которая является основой менеджера пакетов. Одним словом система контроля пакетов что RPM, что deb ничего не будет знать о программе
4) Удалять ее придется в лучшем случае через make uninstall clean или в ручную, не все программы содержат деинсталятор      
Внимательно читайте документацию к программе! Особенно файл README. Обычно там описана вся процедура сборки и необходимые зависимости.  
        

Комментариев нет:

Отправить комментарий