なるべく port は PREFIX
に対する相対パスにインストールすることができるように心がけてください
(この変数の値は
USE_X_PREFIX か
USE_IMAKE が指定してある時には
X11BASE
(デフォルトは /usr/X11R6)、
そうでない場合にはLOCALBASE
(デフォルトは /usr/local)
にセットされます)。
サイトによってフリーソフトウェアがインストールされる場所が違いますので、
ソース内で
/usr/local や
/usr/X11R6
を明示的に書かないようにしてください。
X のプログラムで
imake を使うものについては、
これは問題にはなりません。
それ以外の場合には port の scripts/Makefile で
/usr/local
(imake を使わない X のプログラムは /usr/X11R6)
と書いてあるところを、
${PREFIX} に書き換えてください。
この値は port のコンパイルおよび、
インストールの全段階において、自動的に下位のプロセスに渡されます。
そのアプリケーションが PREFIX を
使用しないで、何かを直接 /usr/local に
インストールしないことを確認してください。
以下のようにすると、簡単なテストを行なうことができます:
#make clean; make package PREFIX=/var/tmp/port-name
この時、もし PREFIX の外に
何かがインストールされていた場合、package 生成プロセスは
ファイルが見つからないと文句を言うはずです。
ただし、これは そのソフトウェアが内部で決め打ちの参照を
していないかどうか だとか、他の port によってインストールされる
ファイルを参照する際に LOCALBASE を
正しく使用しているかどうかをテストしているわけではありません。
その port を他の場所にインストールした状態で、
/var/tmp/port-name に
対するインストールを試みることにより、
そのテストをすることができるでしょう。
USE_X_PREFIX は本当に必要な時 (つまり
X のライブラリをリンクしたり、X11BASE 以下にある
ファイルを参照したりする必要がある時) 以外には
設定しないでください。
変数 PREFIX の値は
port の Makefile やユーザの環境で変更することもできます。
しかし、個々の port が Makefile
でこの変数の値を明示的に設定することはなるべくしないでください。
また、他の port によりインストールされるプログラムや
ファイルを指定する場合には、直接的なパス名を使用するのではなく
上で述べた変数を使用してください。
たとえば less のフルパスを
PAGER というマクロに入れたい場合は、
-DPAGER=\"/usr/local/bin/less\"
というフラグをコンパイラに渡すかわりに
-DPAGER=\"${PREFIX}/bin/less\"(X Window System を使う port の場合には
-DPAGER=\"${LOCALBASE}/bin/less\")
を渡してください。
こうしておけば、システム管理者が /usr/local を
まるごと どこか他の場所に移していたとしても、その port が
そのまま使える可能性が高くなります。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。