14.3. PREFIX

Попытайтесь сделать так, чтобы установка вашего порта осуществлялась относительно каталога PREFIX. (Значение этой переменной будет установлено в LOCALBASE (по умолчанию /usr/local), если только не заданы переменные USE_X_PREFIX или USE_IMAKE, в случае чего он будет принят равным X11BASE (по умолчанию /usr/X11R6).

Избежание явного указания /usr/local или /usr/X11R6 в исходном коде сделает порт гораздо более гибким и способным удовлетворить потребности других серверов. Для портов, которые используют X, это происходит автоматически; в противном случае зачастую это может быть сделано простой заменой строк /usr/local (или /usr/X11R6 для портов X, не использующих imake) в различных файлах scripts/Makefile порта на использование ${PREFIX}, так как эта переменная автоматически передаётся далее на каждом этапе построения и установки.

Проверьте, что ваше приложение не устанавливает чего-либо в каталог /usr/local вместо PREFIX. Это можно быстро проверить следующим образом:

# make clean; make package PREFIX=/var/tmp/port-name

Если что-то было установлено за пределами PREFIX, то процесс создания пакета сообщит об отсутствии файлов.

Здесь не проверяется ни наличие внешних ссылок, ни корректность использования LOCALBASE в качестве ссылки на файлы из других портов. Проверка установки в каталог /var/tmp/port-name делает это.

Не задавайте переменную USE_X_PREFIX до тех пор, пока она на самом деле не понадобится для порта (то есть он будет скомпонован с библиотеками X или нужно будет обращаться к файлам из X11BASE).

Переменная PREFIX может быть переназначена в вашем файле Makefile или в окружении пользователя. Однако строго не рекомендуется отдельным портам устанавливать эту переменную явно в файлах Makefile.

Кроме того, обратитесь к программам/файлам из других портов с переменными, перечисленными выше, без указания явных маршрутов. Например, если ваш порт требует, чтобы макро PAGER являлся полным путем утилиты less, используйте флаг компилятора:

-DPAGER="${PREFIX}/bin/less"
 
или
-DPAGER="${LOCALBASE}/bin/less"
 
если это порт X, вместо того, чтобы задавать -DPAGER="/usr/local/bin/less". Этот способ имеет больше шансов на работу, если системный администратор переместил всё дерево /usr/local куда-то в другое место.

По вопросам связанным с системой портов для FreeBSD, пишите по адресу <ports@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите по адресу <doc@FreeBSD.org>. Обновлено: 12.03.2015