# make clean; make package PREFIX=/var/tmp/port-name
第14章 port のテスト
目次
14.1. portlint
送付や commit をする前に portlint
を使ってチェックしましょう。
14.2. PREFIX
なるべく 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 に インストールしないことを確認してください。 以下のようにすると、簡単なテストを行なうことができます:
この時、もし 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 が そのまま使える可能性が高くなります。
14.3. FreshPorts 正当性テスト
http://www.FreshPorts.org/ には、FreeBSD ports へ commit されたものについて、 自動的に正当性テストを行う仕組みがあります。 このサービスに登録すると、あなたが commit したものについて、 正当性テストでエラーが起きると連絡が行きます。
このサービスを利用したい場合、必要なのは FreshPorts のアカウントだけです。登録したメールアドレスが @FreeBSD.org
のものであれば、 ウェブページの右側にサービスを選択するリンクがあるはずです。 FreshPorts にアカウントを持っていても @FreeBSD.org
のメールアドレスを利用していない場合、メールアドレスを @FreeBSD.org
に変え、登録したあとで、 メールアドレスをまた変更してください。
最終更新日: 2021年12月11日 by Sergio Carlavilla Delgado