1.7 FreeBSD - デスクトップ環境構築 - 共通事項 - OS インストール - ports

 
 デスクトップ環境構築は、素人でもできるようにしたいと思っているので、アプリケーションのインストールはできる限り pkg で済ませたいと考えています。  しかしどうしても pkg 化されないものもあって、そういうときは ports を使ってインストールします。  いざ、インストールするときに ports を使ってインストールしようとしても、自分の持っている ports の DB が古いものだと、サーバにダウンロード対象とするものがなく、インストールエラーとなってしまいます。  ports は常に最新にしておく必要があります。その手順について記述します。サーバのインストール手順にも書いてありますが、デスクトップ環境とサーバ環境ではいささか設定を変えておいた方がいいと考えていますので、あえて記述することにしました。
1.7.1 portsnap
1.7.2 portupgrade
1.7.3 portsの状態を参照する
1.7.4 portsのアップグレード

1.7.1 portsnap

 portsnap コマンドを使用して、ports の状態を最新にします。  以前のバージョンでは、portsnap 自体を ports でインストールする必要がありましたが、FreeBSD 8.0 RELEASE以降、デフォルトでインストールされています。  portsnap のコンフィグレーションファイルは /etc/portsnap.conf です。これを編集します。

# REFUSE arabic chinese french german hebrew hungarian japanese
# REFUSE korean polish portuguese russian ukrainian vietnamese
 ports の更新をかけないグループを指定するもので、日本語以外の他言語を使用しないのであれば、上記より japanese を削除して先頭のコメント定義である # を削除します。  fetch オプションで最新のスナップショットを取得します。

> portsnap fetch
 fetch が終了したら、システムインストール後はじめての portsnap の場合は

> portsnap extract
 というオプションを使用します。  これ以降は本来、一度 extract を行った後は fetch の後は

> portsnap update
 というオプションを使用できるのですが、いったん ports をメンテナンスするための ports(portupgrade) をインストールします。

1.7.2 portupgrade

 portupgrademake する前に make のコンフィグレーションファイルを /usr/share/examples/etc/make.conf から /etc/make.conf へコピーしておきます。

> cp /usr/share/examples/etc/make.conf /etc/.
 デスクトップ環境で、FreeBSD 10.0 RELEASE 以降であれば特に編集の必要はありません。  /etc/make.conf をコピーしたら、portupgrade をインストールします。
/usr/ports/ports-mgmt/portupgrade
 インストールが終わったら、rehash して、プログラムを有効化し、いったん fetch して extract した ports を再度、fetchextrace します。

> rehash
> portsnap fetch
> portsnap extract
 ここまで終わっていれば、これ以降、ports の更新は

> portsnap fetch
> portsnap update
 となります。  データベースの更新を

> portsdb -Fu
 で行います。

1.7.3 ports の状態を参照する

データベースの状態を参照するには

> portversion -v
 とします。  結果として以下のような表示になります。(あくまでも一例です)

[Rebuilding the pkgdb <format:bdb_btree> in /var/db/pkg ... - 17 packages found (-0 +17) ................. done]
autoconf-2.68               =  up-to-date with port
autoconf-wrapper-20101119   =  up-to-date with port
automake-1.11.1             =  up-to-date with port
automake-wrapper-20101119   =  up-to-date with port
db41-4.1.25_4               =  up-to-date with port
gettext-0.18.1.1            =  up-to-date with port
gmake-3.81_4                <  needs updating (port has 3.82)
help2man-1.38.4             <  needs updating (port has 1.30.4)
ja-freebsd-doc-20110110     <  needs updating (port has 20110828)
libiconv-1.13.1_1           =  up-to-date with port
libtool-2.2.10              <  needs updating (port has 2.4)
m4-1.3.15,1                 <  needs updating (port has 1.3.16,1)
p5-Locale-gettext-1.05_3    =  up-to-date with port
perl-5.10.1_3               <  needs updating (port has 5.10.1_4)
portupgrade-2.4.8_1,2       <  needs updating (port has 2.4.9.3,2)
ruby-1.8.7.302,1            <  needs updating (port has 1.8.7.352_2,1)
ruby18-bdb-0.6.5_1          <  needs updating (port has 0.6.6)
 「=」マークがついていれば、最新版がインストールされている  「<」マークがついていれば、ports に新しい版が存在する(更新すべきかも)  「?」マークがついていれば、ports のリストから削除された、または、ports名が変更された  ということになります。  ここまでの一連の動作を、crontab に記述して定期的に ports を更新する方法もありますが、バックグラウンドでやってしまうと見落とすことがありますので、例えば適当なディレクトリに下記のような Makefile を作成しておいて、明示的に make する方法もあります。

ports	:
	portsnap fetch
	portsnap update
	portsdb -Fu
	portversion -v

1.7.4 ports のアップグレード

 portversion で新しい版が出ている ports を更新するには、

> portupgrade ports名
 というコマンドを使用します。  -R というオプションをつければ対象の ports が依存している ports を同時に更新します。  -r というオプションをつければ対象の ports に依存している ports を同時に更新します。