"Рашид Ачилов. Создаем порт для FreeBSD своими руками (Часть 2) " - читать интересную книгу автораРашид Ачилов
Создаем порт для FreeBSD своими руками. Часть II В первой части статьи мы рассмотрели основные вопросы создания порта для FreeBSD своими руками. Но система сборки программ, используемая во FreeBSD, имеет значительно большие возможности, чем те, которые мы задействовали. Какие это возможности и как их использовать в своих портах? Расширенные возможности системы Скромный размер нашего первого порта и его достаточная простота не позволила нам рассмотреть все возможности системы портов. В этом опять же проявляется ее достоинство - не нужно знать много для построения сравнительно простого порта. Но зачастую бывает так, что необходимо реализовать некую собственную функцию по обработке исходного текста или проверить наличие некоторой программы до начала установки своей. Сразу же возникает вопрос - пытаться реализовать это своими силами или же это уже было кем-то когда-то реализовано? Расширенные возможности системы сборки портов, которые мы не использовали в первой части и которые можно использовать, это: ∙ Многофайловые дистрибутивы с возможностью отбора файлов в зависимости от заданного набора переменных. ∙ Внешние патчи, которые можно подключать в зависимости от заданного набора переменных. режима OPTIONS, с возможностью дальнейшего хранения и редактирования этих параметров. ∙ Дополнение или замена части процедур создания программы из порта. Возможность работы с многофайловыми дистрибутивами позволяет указать, с какого из перечисленных сайтов нужно загружать указанный файл. Допустим, программа состоит из файлов file1.tgz и file2.tgz. File1.tgz присутствует только на двадцатом из перечисленных MASTER_SITES, в то время как file2.tgz - всюду. Система будет попусту обшаривать девятнадцать сайтов. Это не страшно, когда делается автоматом, но ужасно нервирует, когда спешишь. Кроме того, в зависимости от заданного набора параметров можно включать или исключать некоторые компоненты. Это особенно существенно, когда эти компоненты весят десятки мегабайт (например, порт editors/openoffice2). Работа с внешними патчами также крайне важна, особенно когда автор программы не желает контактировать и исправлять код. В таком случае патч либо размещается непосредственно в дереве портов, либо (как правило, если он довольно объемный) выкладывается на некоторый сайт и указывается с помощью PATCH_SITES. Задание параметров сборки порта значительно повышает удобство работы с ним. Многие порты имеют не один десяток переменных "WITH_FOO=yes WITHOUT_BAR=yes", которые не то, что набрать в командной строке - запомнить непросто! Например, порт graphics/ImageMagick имеет 26 переменных типа "WITHOUT_IMAGEMAGICK_SOME=yes". Если бы автор порта сделал экран опций, работать с таким портом было бы гораздо проще. Дополнение или замена части процедур создания порта - это крайне важные |
|
|