Kozupon.com    
 
 FreeBSD portupgradeコマンドを使う!


通常みなさんがpoetsをアップグレードするときは、cvsupを使うのではないだろうか?しかし、俺のやり方はportsを丸ごとwgetしちまって解凍してストアーする。そして、古いportsを全消しみたいな方法をとっている。 portsの全アップグレードを行ってからportupgradeコマンドを使って既存のportsを最新の物にする。 そうしないと、意味なし。


1.portsの全取っ替え

■ その一

bash2.05b# cd /usr

bash2.05b# wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz
                        ↑実際は一行で!

bash2.05b# rm -rf ports
古いPortsをまとめて削除。

bash2.05b# tar zxvf ports.tar.gz -C /usr
Portsを解凍してストアーする。

■ その二

FreeBSD R6.0には、portsnapと言うコマンドが新たに追加された。この機能はかなり強力でportsの全取っ替えをコマンドで全てやってくれる。

portsnapをインストールする。
root@main# pkg_add -r portsnap

設定ファイルportsnap.confコピーする。
root@main# cd /usr/local/etc

root@main# cp portsnap.conf.sample portsnap.conf

圧縮されてるportsをサイトからゲットする。
root@main# portsnap fetch

圧縮されてるportsを解凍してportsツリーを作る。
root@main# portsnap extract


2.portupgradeのインスコ

bash2.05b# cd ports/sysutils/portupgrade
新しいportsコレクションでportupgradeをリニューアルしまひょ川 ̄∠ ̄川 フフフ

bash2.05b# make deinstall
パッケージをアンインストールする。

bash2.05b# make install clean
パッケージを再インストールする。

bash2.05b# rehash
コマンドキャシュテーブルをフラッシュする。これをやってプログラムを見つけやすくする。


3.portupgradeを実際に使ってみる

まず初めに、念のためパッケージの依存関係を確認する。依存関係がおかしいとアップグレードが正しくできない。

bash2.05b# pkgdb -F
依存関係がおかしいモジュールが出力されるのでそのモジュールをもう一度再インスコする。例えば、dns/bind9の依存関係がおかしいとしたら、

bash2.05b# portinstall dns/bind9
で再インストールできる。

bash2.05b# portsdb -uU
これを実行するとportsのデータベースを更新してくれる。 ただし、portsを最新のものにアップデートしなければ、これをやっても意味なし。なので注意すること。 言っておくが、これマシンのパフォーマンスにもよるけどかなり時間がかかるので覚悟した方が良い(;-_-;)

bash2.05b# portupgrade [モジュール名]
自動的にアップデート開始する。
これもportsが沢山インストされていればそれなりに時間がかかる。 終わったら、portversionで最新のモジュールになっているか?確認する。

bash2.05b# portupgrade -a
現在セットアップされているモジュールに全てに対して、自動アップデートを行う。 そして、以前から「make install」をやって「make clean」を実行しないでほって置いたとすると、

bash2.05b# portsclean -C
で全て掃除する。

bash2.05b# portsclean -D
distfilesに貯まってるソースを消去してくれる。

重要:portsnapを使う場合のportsアップグレード手順は、通常赤の文字の部分の手順でやればOK!

以上


 
 
 



Copyright 2005 Kozupon.com.