以前、 ports-mgmt/pkg_replaceのすすめというエントリを書きましたが、最近は ports-mgmt/portmaster を使いだしたので、そちらも紹介しておきます。
portmaster 本体は pkg_replace と同様に、シェルスクリプトで書かれたもので、インストールの際に、他の依存したパッケージがありません。
pkg_replace との違いは、オプションが portupgrade とまるっきり互換性がないため、新たにオプションを覚える必要があります。」
早速、インストールして使ってみましょう。
$ cd /usr/ports/ports-mgmt/portmaster
$ sudo make install clean
これだけです。shell に bash と zsh を使っている場合は シェル補完機能を追加するか聞いてきますので、お好みで設定してください。
あとは早速つかってみよう!と、その前に、/usr/local/etc/ 以下に portmaster.rc.sample というファイルが作られますので、 .sample を消して編集します。
コマンドラインでいうところの -g -d --no-confirm を指定しているのと同じです。この辺はお好みでいろいろ変えてみてください。
-g パッケージを作成
-d 常に配布ファイルを削除
--no-confirm 確認をしない。
設定ファイルを修正したら、あとはいろいろ試してみましょう。
新規にインストールする場合。
$ sudo portmaster /usr/ports/sysutil/tmux
依存関係で、複数の ports がある場合は、最初に一気に聞いてきて、それから make に入るため、時間がかかる ports を寝る前に仕掛けておいて、最初のいくつかで入力待ちで止まっていて orz になるのを防げます。
インストール済みのportsを更新する場合。
$sudo portmaster /var/db/pkg/tmux-1.8_1
強制的に更新する場合は -f をつけます。
更新する際に、それに依存する ports も更新する場合は -r オプションをつけます。
その際に、-Rをつけると、前回更新したportsは更新しません。
インストールしてあるportsを更新する場合2
たとえば、postgresql 9.1 を 9.3に更新する場合
$sudo portmaster -o /usr/ports/databases/postgresql93-server /var/db/pkg/postgresql91-server-9.1.13_1
あとはごとごと make が終わるのを待つだけです。
余談ですが、postgresql のバージョンを上げる際には pg_dumpall してデータベースのバックアップを*必ず*とっておきましょう。
インストールしてあるportsが最新かどうかチェックする。
$ portmaster -L | grep New
インストールしてあるすべての ports を更新する。
$ sudo portmaster -a
普通に使う分にはこのくらい覚えておけば十分だと思います。