настроить флаги

Каким образом Ubuntu загружает исходный код пакета и затем собирает его, передавая определенные флаги части конфигурации процесса? Надеюсь, я правильно объясняю, что имею в виду.

При установке из источника почти всегда следует следующая процедура:

./configure --FLAG-1 --FLAG-2
make && make install

Как получить контроль над указанием флагов 1 и 2 в процессе настройки?

6
задан 13 September 2012 в 02:45

2 ответа

Для общего объяснения того, как создать из источника, см. мой ответ здесь:

Рассматривать Ваш конкретный вопрос здесь о ./configure продолжайте читать:

Для получения списка соответствующих флагов и опций, доступных для программы, Вы компилируете, входите

./configure --help

Часть файла примера для Pinta сгенерированный от вышеупомянутой команды:

'настройте' настраивает пинту 1.3 для адаптации ко многим видам систем.
Использование:./настраивать [ОПЦИЯ]... [VAR=VALUE]...
Присваивать переменные среды (например, CC, CFLAGS...), укажите их как VAR=VALUE.

Некоторые влиятельные переменные среды:

PKG_CONFIG соединяют каналом, чтобы pkg-сконфигурировать утилиту
Каталоги PKG_CONFIG_PATH для добавления к пути поиска pkg-конфигурации
Путь PKG_CONFIG_LIBDIR встроенный путь поиска переопределяющей pkg-конфигурации
Команда компилятора C CC
Флаги компилятора C CFLAGS
Флаги компоновщика LDFLAGS, например,-L <dir lib>, если у Вас есть библиотеки в нестандартном каталоге
ОСВОБОЖДАЕТ библиотеки, чтобы передать компоновщику, например,-l
CPPFLAGS (Цель), флаги препроцессора C/C++, например,-I <включают dir>, если у Вас есть заголовки в нестандартном каталоге
CPP C препроцессор

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

Или если программа не должна быть установлена в месте по умолчанию ( /usr/local иерархия), можно указать, например

./configure --prefix=/my/custom/location 

Существует намного больше опций, которые могут использоваться, и список команд передал ./configure может стать очень длинным, но это все очень характерно для программы, которую Вы компилируете; очень часто никакие специальные опции не необходимы.

0
ответ дан 13 September 2012 в 02:45

Вы можете скачать исходный код для большинства пакетов в Ubuntu Repos. Чтобы скомпилировать пакет из исходного кода, вы должны сделать что-то вроде этого:

sudo apt-get build-dep doodad

Это установит все зависимости. Теперь загрузите исходный код:

apt-get source doodad
cd doodad*

Отредактируйте debian/rules, чтобы настроить процесс сборки:

$EDITOR debian/rules

Наконец, соберите его как .deb (для простого удаления / разрешения зависимостей) ):

dpkg-buildpackage -rfakeroot -uc -b

(аргументы сообщат команде подделать root, не подписывать пакет и не включать источник)

Теперь вы можете установить только что созданный пакет с помощью этой команды:

cd ..
sudo dpkg -i doodad-<version>-ubuntu-<crap>.deb

(убедитесь, что установлена ​​не -dev версия)

Затем вы можете очистить с помощью:

rm -rf doodad*

Это было проверено в Ubuntu 12.04 с пакетом irssi. Ваши результаты могут отличаться.

0
ответ дан 13 September 2012 в 02:45

Другие вопросы по тегам:

Похожие вопросы: