Apt-build: сборка пакетов

Выше я упоминал об операторе source, предназначенном для работы с пакетами исходников. И он вполне оправдывает себя, если речь идет о сборке единичных пакетов. Если же нужно собрать много пакетов, пересобрать систему целиком или требуется компиляция с какими-либо особыми условиями, лучше прибегнуть к специализированному инструменту -- apt-build.

Это -- отдельный пакет, который нужно установить обычными образом:

$ sudo apt-get install apt-build

И в ходе установки -- настроить его в диалоговом режиме. Первый вопрос при настроке -- выбор степени оптимизации: облегченная (соответствующая флагу gcc -O1), средняя (флаг -O2, представляет выбор по умолчанию) и усиленная (-O3). Далее можно ввести дополнительные флаги gcc, если в них есть необходимость, указать опции для команды make. И последний вопрос -- выбор процессора, для архитектуры x86 в списке доступных фигурируют “камни” от Pentium до Pentium-4, для x86-64 - nocona, core2 и многообразные 64-битные процессоры AMD; впрочем, во втором случае дробные градации большого смысла не имеют.

Таким образом, при настройке apt-build можно очень точно задать условия компиляции. Если же для каких-либо программ их нужно изменить (например, повысить уровень оптимизации, добавить мультимедийные флаги, и так далее) -- apt-build можно переконфигурировать обычным образом (как было описано ранее http://fossbook.info/?p=374):

$ sudo dpkg-reconfigure apt-build

Синтаксически команда apt-build аналогична apt-get, включая операторы, требующие или не требующие аргументов, и, возможно, опции. Основные операторы -- следующие:

  1. update -- обновление списка доступных пакетов;
  2. upgrade -- сборка обновленных пакетов;
  3. world -- полная пересборка всей системы;
  4. update-source -- апдейт пакетов исходников и их пересборка;
  5. build-repository построение репозитория пакетов (очевидно, что операторы пунктов 1-5 в аргументах не нуждаются);
  6. install -- сборка и установка пакета (пакетов);
  7. source -- скачивание и развертывание архивов исходников;
  8. info -- получение информации о пакете, который будет собираться;
  9. build-source -- сборка пакета без его инсталляции;
  10. remove удаление пакета (пакетов); операторы пунктов 6-9 требуют аргумента -- имени пакета, над которым производится действие; аргументов таких может быть сколько угодно;
  11. clean-build и clean-sources -- очистка каталогов, в которых выполняласть сборка, от ее пролуктов.

Таким образом, можно видеть, что инструмент apt-build, не смотря на сугубо пакетную природу использующих его дистрибутивов, имеет ничуть не меньшие возможности по индивидуалированной компиляции как отдельных программ, так и всей системы в целом, чем механизм make world и средства управления портами FreeBSD, или аналогичные интсрументы таких Source Based дистрибутивов Linux, как Gentoo (portage) или Archlinux (ABS). То есть при желании или необходимости, Ubuntu, как и любой клон Debian, может быть превращен в дистрибутив Source Based.


Теги: , , , ,