Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Цилюрик О.И. Linux-инструменты для Windows-программистов
Назад Установка программного обеспечения Вперед

Autoconf / Automake

До настоящего времени это наиболее частая форма поставки программного пакета в исходных кодах. Это весьма старый инструментарий (с 1991г.), который включил в себя за время развития целый ряд дополнительных пакетов (например libtools — пакет конфигурирования библиотек). Отличительным признаком таких пакетов является: наличие в каталоге файла скрипта configure с правами исполнения. Рассмотрим общие принципы такой сборки на примере очень крупного проекта VoIP PBX FreeSwitch, исходный пакет распакован в каталог:

$ pwd

/usr/src/freeswitch-1.0.6

Файл configure допускает запуск с ключом --help, дающем подсказку по возможным параметрам установки, отличающихся от дефаултных:

$ ./ configure --help

`configure' configures freeswitch 1.0.6 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
...
Installation directories:
 --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local/freeswitch]
 --exec-prefix=EPREFIX  install architecture-dependent files in EPREFIX [PREFIX]            
By default, `make install' will install all the files in
`/usr/local/freeswitch/bin', `/usr/local/freeswitch/lib' etc.  You can specify
an installation prefix other than `/usr/local/freeswitch' using `--prefix',
for instance `--prefix=$HOME'.
...
Some influential environment variables:
  CC         C compiler command
  CFLAGS     C compiler flags
  LDFLAGS    linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  CPPFLAGS   C/C++ preprocessor flags, e.g. -I<include dir> if you have
              headers in a nonstandard directory <include dir>
  CXX        C++ compiler command
  CXXFLAGS   C++ compiler flags
  CPP        C preprocessor
  CXXCPP     C++ preprocessor
...

Дальше (возможно определившись с параметрами), выполняется достаточно типовая последовательность действий:

$ ./configure
...

Наиболее часто изменяемым параметром инсталляции является корневой путь установки пакета; весьма часто разработчики в качестве дефаултного пути установки задают /usr/local, но дистрибьюторы (или пользователи при установке) переопределяют этот путь в /usr или /opt. Достигается это выполнением:

$ ./configure --prefix=/usr
...

$ ./configure --prefix=/opt
...  

После этой фазы (если она завершается без ошибок) должен быть создан файл сборки Makefile.

$ time make
....
 +---------- FreeSWITCH Build Complete ----------+
 + FreeSWITCH has been successfully built.       +
 + Install by running:                           +
 +                                               +
 +                make install                   +
 +-----------------------------------------------+
real   15m25.832s
user   11m29.939s
sys    3m41.169s

$ su -c 'make install'
...

Примечание: Если команды ./configure и make могут успешно выполняться от имени ординарного пользователя, то последняя операция инсталляции — требует прав root.

В некоторых пакетах между ./configure и make может быть предусмотрена фаза конфигурирования состава пакета:

$ make config

или

$ make menuconfig

Наличие такой возможности легко определить, просматривая Makefile, созданный ./configure, на наличие соответствующих целей.


Предыдущий раздел: Оглавление Следующий раздел:
Непосредственная сборка   Создание своего конфигурируемого пакета