ライン

ポイント:アプリケーションを新しい状態に維持管理

ライン

 はじめに

portsnap

 以前は、portsで配布されていたツールですが、現在ではOSの導入の中に組み込まれています。
/usr/ports 以下のportsのツリーを現時点の最新版に更新することができる portsnapを使う方法についてメモを残します。

portupgrade

 導入したportsの更新方法について少しだけメモを残します。設定ファイルの便利な設定方法については追記予定です。

 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-mgmt/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 … メニュー系を修正

【参考リンク】


デル株式会社

Copyright © 1996,1997-2006,2007- by F.Kimura,