![]()
![]()
以前は、portsで配布されていたツールですが、現在ではOSの導入の中に組み込まれています。
/usr/ports 以下のportsのツリーを現時点の最新版に更新することができる portsnapを使う方法についてメモを残します。
導入したportsの更新方法について少しだけメモを残します。設定ファイルの便利な設定方法については追記予定です。
RELEASE版の導入の際に、入れたportsのツリーの状態のまま使っていたりしないでしょうか。
その後、新しい機能が追加された新版や脆弱性への対処がなされたバージョンが出ているかも知れないのに、そのままにしておくのは残念でしょう。その方法についての備忘録です。
ツールは、既にOSの中に取り込まれているので導入は不要です。
早速更新を開始します。
# portsnap fetch
少々の時間待っていれば完了すると思います。
# portsnap extract
ダウンロードが終われば反映するだけです。上記コマンドを入れて、反映されれば初期の更新は終了します。
後は定期的な更新を行えばいいだけです。自動で行うこともできますが、手動では以下のように実施します。
# portsnap cron& # ps -ax | grep sleep 712 p0 S 0:00.00 sleep 825 714 p0 R+ 0:00.00 grep sleep
fetchで実施するのではなく、cronで実施します。そのまま待っていてもいいのですが、すぐに開始させたい場合には、
# kill -KILL 825
のように、sleepを終わらせれば開始します。
その後も多少の時間はかかるでしょうから、眺めているよりコーヒーを飲むことなどで時間を使いましょう。
完了したら、
# portsnap update& [1] NNNNN Removing old files and directories... Extracting new files: /usr/ports/CHANGES /usr/ports/GIDs /usr/ports/LEGAL /usr/ports/MOVED /usr/ports/Makefile . . . Building new INDEX files... done.
のようにして放置しておけば、その後の更新も勝手に終わっているはずです。
更新後はどの程度更新され、既存のものでバージョンが更新されているものがあるかを確認します。
# portversion -v -L '=' | grep -v 'held'|grep -v 'succeeds' [Updating the portsdb <format:bdb_btree> in /usr/ports ... - 17278 port entries found .........1000.........2000.........3000.........4000.........5000.........6000.........7000. ........8000.........9000.........10000.........11000.........12000.........13000.........14000.........15000.........16000. ........17000.. ..... done] asterisk-1.4.3 < needs updating (port has 1.4.4_1) automake-1.9.6 < needs updating (port has 1.9.6_1) gettext-0.16.1_1 < needs updating (port has 0.16.1_3) gmake-3.81_1 < needs updating (port has 3.81_2) gnutls-1.6.1_2 < needs updating (port has 1.6.2) libpri-1.4.0 < needs updating (port has 1.4.0_1) popt-1.7_3 < needs updating (port has 1.7_4)
更新が可能なものは、上記のように確認することができます。
もちろん、portupgradeが導入されていることが前提となりますが。
今更、portsの導入方法なんで、どこのページでも書いてあるだろうけど。portsを使っていくのであれば、これを導入するのがおすすめです。
難しいこと抜きに。
# cd /usr/ports/ports-mgmt/portupgrade # make install clean # rehash
で終わりです。
On FreeBSD before 6.2 ports system unfortunately can not set default X11BASE
by itself so please help it a bit by setting X11BASE=${LOCALBASE} in make.conf.
On the other hand, if you do wish to use non-default X11BASE, please set variable USE_NONDEFAULT_X11BASE.
とかエラーが出るときには、/etc/make.conf に
X11BASE=${LOCALBASE}
を追加します。何もなくても普通に設定してしまってかまわないけど。FreeBSD7.1や7.2では出ないようです。
# portupgrade -a
と入力してやると勝手に最新までコンパイルを頑張って更新してくれます。
【改訂履歴】作成:2007/05/29
2009/06/18 … Namazu検索の窓を追加
2009/06/29 … メニュー系を修正
【参考リンク】
design テンプレート