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すればよいのですが、途中のステップで
    止めることも可能です。
    1. make fetch   #ソースのダウンロードまで行う
    2. make extract   #ソースの解凍まで行う
    3. make patch   #FreeBSD patchをあてるまで行う
    4. make configure   #configureやxmkmfを実行
    5. make build   #ビルドまで行う
    6. make install   #インストールまで行う
    7. make clean   #作業directoryを消す
    8. 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.
    戻る