portupgrade は、インストールしたportsのアップグレードを簡単に行なうためのユーティリティです。
# cd /usr/ports/ports-mgmt/portupgrade # make install clean
portupgradeのコマンドはportsdbで作成した情報を元に行われますので、portツリーの更新後に行います。
昔の方法。(泣けるほど時間がかかります)
# portsdb -Uu -U:INDEXファイル作成 -u:できたINDEXファイルを元にバイナリDBを更新
現在では man portsdb でも以下のコマンドが推奨されている。1)
# portsdb -Fu -F:INDEXファイル取得 -u:できたINDEXファイルを元にバイナリDBを更新
portinstallはportsをより楽にインストール
# cd /usr/ports/japanese/ne # make install clean ↓ # portinstall japanese/ne
portinstallの詳細表示は-v、ログファイル記録は-Lオプション
# portinstall -vL /var/log/ports japanese/ne
とすると詳細を表示し、/var/log/portsに記録されます。
目的のpackageを削除するには
# pkg_deinstall ja-ne
削除したいpackageに依存するものも全て削除したい場合は
# pkg_deinstall -r ja-Canna
古いバージョンのソフトを確認するには以下を実行
# pkg_version -vIL= OR # portversion -v | grep needs OR # portversion -l "<"
portupgradeの一番単純な使い方は、
# portupgrade jvim3
-fオプションを指定すると強制的にアップグレードします。結果的にはインストールのし直しをする働きになります。
# portupgrade -f jvim3
-mオプションを指定するとmake時のオプション指定が可能
# portupgrade jvim3 -m '-DWITHOUT_X11'
依存関係も解決してアップグレードできる
例:XFree86に依存する全packageをアップグレードする場合
# portupgrade -r XFree86
一括でアップグレード
# portupgrade -a
portsの作業ディレクトリをすべて削除
# portsclean -C
最新のportsで使われていないものを削除
# portsclean -D
-Lを指定すると、portsupgrade(pkg_deinstall -P)で削除されなかった共有ライブラリを掃除します。
-iを指定すると、確認をします。
-nを指定すると、削除の事前にシミュレートを行います。
次の様に実行します。
# pkg_glob -a or # pkg_version
次の様に実行します。
# pkgdb -F
自動修復の場合は、
# pkgdb -aF