новости книги игры
библиотека программы форум

11.05 11.10 1C 2010 2011 3d Acer action Additional Adobe alt linux ALT линукс в школу altlinux amarok AMD Android Apache apple apt-get ArchLinux asplinux ASUS Asus Eee PC ATI audio avi backup bash beta big buck bunny bind bittorrent blender bluetooth bsd c C++ Calibre Canonical cd Cedega CentOS chrome chromium cisco clamav CLI Damn Small Linux debian Dell desktop dns DOOM DOS download driver dvd e-book Eclipse emacs embedded linux enterprise EPUB Etersoft exim ext2 ext3 ext4 faq FB2 fedora fedora10 fedora8 fedora9 fedoracore firefox firefox3 firewall Flash Fluxbox flv free FreeBSD freeware ftp games gcc gentoo GIMP gnome GNU gnu linux google GPL GRUB gtk GTK+ hackday hdd HDR


   

«    Март 2008    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 

Какой браузер вы используете?

Firefox
Opera
Mozilla
Internet Explorer
Другой



LinuxTwitter:




Архив:

Октябрь 2011 (91)
Октябрь 2010 (42)
Апрель 2010 (10)
Январь 2010 (29)
Декабрь 2009 (6)
Ноябрь 2009 (31)
Октябрь 2009 (20)
Апрель 2009 (19)
Март 2009 (1)
Февраль 2009 (20)
Январь 2009 (31)
Декабрь 2008 (71)
Ноябрь 2008 (89)
Октябрь 2008 (91)
Сентябрь 2008 (113)
Август 2008 (168)
Июль 2008 (156)
Июнь 2008 (147)
Май 2008 (191)
Апрель 2008 (213)
Март 2008 (197)
Февраль 2008 (195)
Январь 2008 (112)
Декабрь 2007 (146)
Ноябрь 2007 (94)




Партнёры:


 

Добавить в Google Reader
Читать в Yandex.Ленте
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 10

МОЙ LINUX 10

Ставим галочку и порядок!!!

Надеюсь, что эта инструкция будет понятна даже совсем начинающим пользователям Linux.
Мне в своё время не хватало таких инструкций...

источник статьи   


7 марта 2008  /   /   ]

Похожие статьи

  • Как компилировать программы из исходных кодов
  • Заставляем checkinstall собирать пакеты без ошибок
  • Собираем pidgin с поддержкой X-Status
  • Собираем свежий pidgin 2.5.0 из исходников
  • Доступ к Linux-разделам из Windows




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




    #1 / написал: chusavadze / 31 марта 2008 22:06
    Статья ни о чём. Эту заветную комбинацию команд: "./configure; make; make install" можно найти даже на заборе. Автор, ты когда нибудь собирал из исходников? Похоже нет, раз утверждаешь, что собирать из исходников проще простого, или заведомо врёшь. А исходник, на которую ты дал ссылку, не рассматривать, т.к. в реале не нужны проги типа "hello world!" из-за их бесполезности. Сборка из исходников это такой геморой, что лучше с этим делом вообще не связываться, проще и разумней пользоваться пакетами из дистра. Абсолютное большинство исходников не поддаются к сборке. Тут надо быть программёром, чтобы исправлять или доделывать исходники, чтобы появилась возможность собирать. Не понимаю этот принятый в UNIX среде маразм.
      

    #2 / написал: soglasen1 / 3 мая 2008 20:49
    Изуча C (успешно), осваиваю Linux (гораздо менее успешно) Впервые столкнулся с необходимостью установить довольно редкую программу (не установил ещё) и поиски привели меня сюда.
    Прочёл статью и сразу вопрос: так это если исходники есть- это фактически программа есть. Я думал (и думаю) сборка из исходников такова: файл там взял, файл в другом месте, что-то сам написал, что-то уже стояло на машине. И вот из этого всего как-то скомпоновал программу... А это очень трудно. Но именно такая задача сейчас передо мной. Готов обсудить.
      

    #3 / написал: root / 4 мая 2008 11:46
    Предлогаю обсудить проблему на форуме, в камментариях не очень удобно wink Распиши все подробно, какой софт хочешь поставить, что уже пробовал сделать, какие ошибки выдает система )))) Постараемся помочь
      
    [root@linuxopen.ru ~]$ find
     ©2007 - 2011 @antropoff.ru