Выше я упоминал об операторе 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.


Теги: , , , ,