Portsとは?
FreeBSDでアプリケーションソフトのインストール、管理を行うシステムとして
ports/package system があります。packageはコンパイル済みのバイナリパッケージ
であり、pkg_add, pkg_delete などのコマンドで管理します。OSのインストールから
始めて環境を構築するときには大変重宝します。
一方、portsの方はfetchによるソースアーカイブのダウンロード、FreeBSD用のpatch
当て、コンパイル、インストールを自動化したものです。packageの場合、最新の
バージョンはCURRENTをターゲットにしているためSTABLE系では動作しない場合
があります。その点、portsはftp://ftp.jp.freebsd.org/pub/FreeBSD/
などから最新のportsを
拾ってくれば(カテゴリ別にアプリ名を冠したdirectoryになっている)大抵はなん
とかなります。ports system自体の仕様が変わることがありますが、そんなときは
/usr/ports/Mk を新しいものに入れ替えるとよいでしょう。
portsによるインストールの手順
基本的にそのアプリのdirectoryでmake installすればよいのですが、途中のステップで
止めることも可能です。
-
make fetch #ソースのダウンロードまで行う
-
make extract #ソースの解凍まで行う
-
make patch #FreeBSD patchをあてるまで行う
-
make configure #configureやxmkmfを実行
-
make build #ビルドまで行う
-
make install #インストールまで行う
-
make clean #作業directoryを消す
-
make deinstall #アンインストールを行う
そのアプリがライブラリなど他のアプリがインストールされていることを前提として
いる場合には、それの有無を調べ、未インストールならばそのports directoryに移動して
自動的にインストールしてくれます。まあ、勝手にインストールされるのも気色悪い
んで、私はMakefileを見て依存関係の確認をすることにしています。自分の環境に
合わせて書き換えてもいいでしょう。
すでにインストールされたアプリ(同じバージョン)をmake install しようとすると
***** is already installed - perhaps an older version?
などといって怒られ?ます。
強制的に上書きインストールしたいときは
環境変数 FORCE_PKG_REGISTER をセットします。csh(tcsh)の場合は、
>setenv FORCE_PKG_REGISTER yes
としてから、make install すればよいでしょう。
#portsのフォーマット、大幅に変わっちゃいましたね。(^^;
#古い形式との互換性はどうなってるのかな? (2000/10/18)
Copyright(c) 2000 DragonX. All rights reserved.
戻る