Каким образом Ubuntu загружает исходный код пакета и затем собирает его, передавая определенные флаги части конфигурации процесса? Надеюсь, я правильно объясняю, что имею в виду.
При установке из источника почти всегда следует следующая процедура:
./configure --FLAG-1 --FLAG-2
make && make install
Как получить контроль над указанием флагов 1 и 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
может стать очень длинным, но это все очень характерно для программы, которую Вы компилируете; очень часто никакие специальные опции не необходимы.
Вы можете скачать исходный код для большинства пакетов в 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*
irssi
. Ваши результаты могут отличаться.