Как собрать программу из исходников

По совету с форума решил написать данную статью. Действительно, как-то даже и забыл описать такой процесс как сборка программ из исходных кодов. Все новички рано или поздно сталкиваются с такой проблемой: программы в стандартном репозитории нет, а в сети она существует только в виде исходных кодов, и готовых сборок под дистрибутив нет. Многие не решаются даже пытаться собрать программу из исходников самостоятельно, считая, что этот процесс не для их ума. А ведь это на самом деле очень просто, нужно запомнить всего 3 команды.

Итак, нам нужен исходный код программы, обычно он поставляется в архивах (например, tar.gz), распакуем наш архив programm.tar.gz:

tar -xf programm.tar.gz

Теперь перейдем в директорию с распакованными файлами:

cd programm

Далее нужно запустить конфигуратор, но для его работы точно потребуется пакет build-essential, установим его:

sudo apt-get install build-essential

Запускаем конфигуратор:

./configure

Смотрим на вывод конфигуратора, ищем ошибки. Если все прошло удачно, в директории должен создаться makefile, после этого запускаем make:

make

После того как make соберет программу, ее нужно установить:

sudo make install

Вот и все, программа установлена, можно запускать и пользоваться ;)

Таким образом установка программ из исходников сводится в большинстве случаев к выполнению всего лишь 3 команд:

./configure
make
sudo make install

Ничего сложного в установке программ из исходников в Linux нет. Да и вообще, сам по себе Linux не такой уж и сложный в понимании.

Комментарии

Аватар пользователя cheshir

Есть хорошая программа checkinstall, с помощью неё можно из исходников скомпилировать бинарый пакет. Для этого после команды make нужно ввести checkinstall, а не make install. Да, и еще полезно знать, что советы по установки есть также и в файле INSTALL. Т.к в некоторых случаях установка может немного отличатся.

Аватар пользователя SergMarkov

make install DESTDIR=/папка - эта опция есть практически в каждом makefile далее из /папка делаем пакет

Аватар пользователя Гость

А если исходники на питоне? Тогда команда другая:

# sudo python setup.py install

А что делать, если в исходниках нет файла configure?

Аватар пользователя del

Если нет ни Makefile, ни configure, значит, программа использует одну из альтернативных систем сборки: scons (присутствует файл SConstruct) или cmake (CMakeLists.txt). В первом случае необходимо установить сам scons:

sudo apt-get install scons

и запустить компиляцию:

scons PREFIX=/usr/local
sudo scons

Опции обычно описаны в файле README и передаются утилите scons в качестве аргументов.
Сборка с помощью cmake напоминает использование autotools с той лишь разницей, что вместо запуска ./configure необходимо набирать команду cmake. Вся последовательность команд выглядит примерно так (cmake требует указания каталога сборки):

sudo apt-get install cmake
cmake .
make

Опции обычно описаны в README или INSTALL.

Аватар пользователя cheshir

также если ./configure отсутствует, но есть фаил autogen.sh, то сначала надо запустить его, после появится ./configure

Аватар пользователя Гость

А в других дистрибутивах как?!

Аватар пользователя Гость

В той же федоре нет утилиты apt-get, и как туда установить этот ваш конфигуратор?

Аватар пользователя del

Нужно было уточнять свой вопрос. В федоре есть yum. В арче есть pacman и yaourt. В gentoo есть emerge. Мне в каждой статье расписывать примеры установки для всех существующих дистрибутивов Linux?

Аватар пользователя Гость

Было бы не плохо т.к ваш сайт не посвещён какому-то одному дистрибутиву, следовательно вам стоит указывать примеры нескольких популярных дистрибутивов.

Аватар пользователя del

у меня дома стоит не полный набор дистрибутивов, а лишь Arch. Поэтому примеры привожу только для него, и по поиску нахожу, также этот пакет называется в Ubuntu или иначе. Можно, конечно, находить информацию по установке для остальных популярных дистрибутивов, но не все же делать за других, люди должны учиться пользоваться поиском самостоятельно.

Аватар пользователя Гость

Просто авторов на сайте много, и дистрибутивы у них разные, можно сними посоветоваться, что бы материал получился более подробным.

Аватар пользователя cheshir

yum - вам в помощь. а так, если по теме, вот это должно помочь

sudo yum groupinstall "Development Tools"

Добавить комментарий