2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

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!

以上

コメント