portsからのアプリケーションの追加と削除
通常、/usr/ports以下に、カテゴリ別に分けられたディレクトリがあり、その中に、各portのディレクトリが置かれている。もし、portsツリーが存在しないようであれば、FreeBSDのFTPサイトから最新のものを取り寄せる事が出来る。
基本的なインストール方法
portsからアプリケーションをインストールするには、まず、カレントディレクトリを目的のportが置かれているディレクトリに移し、そのディレクトリ内で、makeコマンドを実行してビルドを行う必要がある。
例えば、Emacsと言うエディタをインストールしたいのなら、
# cd /usr/ports/editors/emacs
とカレントディレクトリを移動し、そこで、
# make
を実行することにより、自動的に、ソースファイルを取り寄せて、展開し、ビルドが開始される*1。この間、ターゲットとするportsをビルドする為に、必要なportsが他にあれば、それらもビルドされ自動的にインストールされる。
ビルドが終了し、それをインストールするには、
# make install
を実行すると、インストールするための処理が始まる。
無事、インストールが完了し、ビルドの際に出来た一時ファイル等が不要になれば、
# make clean
を実行することにより、それらを削除することが出来る*2。
アンインストール
また、インストールしたportが不要であれば、該当するportのあるディレクトリで、
# make deinstall
を実行する事により、アンインストールすることが出来る。
ただし、以下で述べる「portsツリーの更新」を行って、既にインストールされているportとportsツリー上との間に、バージョンの食い違いが生じた場合、この方法ではアンインストールできない。既にインストールされたアプリケーションに関する情報は、portsやpackagesとを問わず、/var/db/pkg以下のディレクトリに、アプリケーションの名前にバージョン番号をつけて保存されるので、
pkg_delete ${アプリケーション名}-${バージョン番号}
もしくは、
pkg_delete /var/db/pkg/${アプリケーション名}-${バージョン番号}
を実行することによっても、削除することができる。
portsツリーの更新
portsは絶えず更新されています。ローカルのportsツリーを最新の状態と同期するためには、cvsup等のコマンドが必要です。
cvsupによる更新
cvsup(1)は、
- /usr/ports/net/cvsup-without-gui/
のportから導入することが出来ます。
# cd /usr/ports/net/cvsup-without-gui/ # make install && make clean
cvsupをインストールしたら、/etc/make.confに、次のように書き足します。
SUP_UPDATE= yes SUP= /usr/local/bin/cvsup SUPFLAGS= -g -L 2 SUPHOST= cvsup.jp.FreeBSD.org PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile
こうすることにより、
# cd /usr/ports/ # make update
と実行するだけで、portsツリーを更新することが出来ます。
fastest_cvsupの利用例
ただ、SUPHOSTを固定してしまうと、そのcvsupサーバーにアクセスが集中した場合などは、一時的に接続できなくなってしまい、長く待たされてしまう可能性があります。
sysutils/fastest_cvsupというportが用意されているので、使ってみると便利です。これは、各cvsupサーバーにアクセスして、現在の速度等をレポートしてくれるというものです。例えば、日本にあるcvsupサーバー*3の状況を知りたい場合、
# fastest_cvsup -c jp
とする事により、日本国内の各サーバーの現在の速度をレポートしてくれます。 make updateと併用するには、次のように*4すると良いでしょう。
# make SUPHOST=`fastest_cvsup -Q -c jp` update
こうする事により、国内の一番速いcvsupサーバーに接続し、portsの更新を行えるはずです。
portsnapによる更新
FreeBSD 6.0からは、ベースシステムにportsnap(8)というコマンドが加わりました*5。cvsupと同様、portsツリーの内容を最新の状態に保つために用います。cvsupは独自のプロトコルを使用するため、ファイアーフォール環境下では使用できない場合がありますが、こちらの方は、HTTPプロトコルが開放されていれば問題はなく、通信の暗号化も行われているので、cvsupよりもセキュアであるといえます。また、最新のINDEXも高速に生成してくれます。
使い方は、まず、
# portsnap fetch
を実行し、作業に必要なファイルを取り寄せます。取り寄せたファイル群は、
- /var/db/portsnap
以下に格納されます*6。
必要なファイルが揃えば、
# portsnap extract
を実行することにより、それらは、通常、/usr/ports以下に展開され、INDEXも生成されます。
次回からは、同様に、
# portsnap fetch
を実行すると、更新分だけを取得することができます。
そして、
# portsnap update
と実行することにより、差分のみを/usr/ports以下に適用出来ます。
*5以前のバージョンのFreeBSDでも、ports-mgmt/portsnapに同様のものが用意されているので、個別に導入して使用する事が出来る。
*6大体、50MB程度の容量が必要になる。
関連情報
- CVS Repository - ports/ - CVSリポジトリの内容をWeb上で参照できる。
- FreshPorts -- The Place For Ports - 更新されたportsに関するレポート。RSSでも配信されているので、cvsupをしなくても大まかな変更箇所が把握出来るので便利かも?
- FreeBSD Porter's Handbook [日本語訳] - portの作成方法や作成する上での注意点などを解説。
- FreeBSD Portsnap - Secure FreeBSD ports tree updating
- FreeBSD/packages - アプリケーションを導入しやすいよう、予め、各portをコンパイルし、そのバ...
- FreeBSD/portaudit - ports-mgmt/portauditをインストールすると、既に導入さ...
- FreeBSD - このWikiフォーラム内におけるFreeBSDに関係するものの目次です。 ...