|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
Mobile LinuxOpen (test version) |
Мой Linux часть 10Мне нравится:
Когда я только начинал использовать Linux, я часто сталкивался
с тем, что какой-нибудь нужной или интересной мне программы в моём
дистрибутиве не было, или была, но совсем не той версии...
И тогда надо было собирать её из исходников!!! Это занятие мне казалось страшным и сложным... Сейчас такая ситуация случается гораздо реже, благо установка и обновление программ больше напоминает заказ в ресторане: - Хочу это, хочу то и вот это -- подождите -- готово!!! Однако умение собирать программы из исходников, рано или поздно пригодится практически любому пользователю свободного программного обеспечения. И сложного в этом ничего нет!!! Достаточно один раз в жизни услышать волшебное заклинание: "configure, make, make install". Дальше я объясню, что это значит... Сборку программы можно сравнить с выпечкой пирога. Чаще всего, вначале надо взять все необходимые ингридиенты (исходники), потом смешать их в нужном порядке (подготовить исходники к сборке, ./configure), а затем залить в форму и поставить в печь (запустить сборку, make). Спустя некоторое время из печи можно вынимать готовый к употреблению пирог (устанавливать готовую программу, make install). Следует отметить, что в данном случае для выпечки необходима кухня и печь. Также и для сборки программы необходимы инструменты разработчика. Обычно это включает в себя как минимум компилятор и сопутствующие ему программы, как например утилита make. Это и есть "печь". Потребуется и место, где можно всем этим заняться -- командная строка (терминал) ("кухня"). Если у вас есть и кухня, и печь, то можете начинать готовить. Итак, все свободные программы доступны в виде исходного кода. Это полуфабрикат программы. Из него легко можно собрать саму программу, а можно и использовать для создания какой-нибудь новой программы. По-английски исходный код называется source code. Шаг 1: берём исходники Необходимо скачать и распаковать архив с исходным кодом программы. Например, можно скачать программу hello-2.1.1. ftp://ftp.gnu.org/pub/gnu/hello/hello-2.1.1.tar.gz Обычно исходники следует брать с сайта разработчиков программы. Распаковать архив можно так: $ tar zxvf hello-2.1.1.tar.gz (Не забывайте, что в большинстве случае нажатие клавиши Tab позволяет дополнить имя файла, введя лишь несколько первых символов). При этом содержимое архива будет распаковано в тот же каталог, в котором находится архив. Перейдите в каталог с исходным кодом: $ 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 Внимательно читайте что пишется на экране при подготовке исходников. Если всё нормально, то закончится она должно чем-нибудь вроде этого: 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 в Ubuntu/Debian достаточно всего одной команды: # aptitude install hello или $ sudo aptitude install hello Или в Synsptic ![]() ![]() Ставим галочку и порядок!!! Надеюсь, что эта инструкция будет понятна даже совсем начинающим пользователям Linux. Мне в своё время не хватало таких инструкций...
Похожие статьиКомментировать:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||