大型 ports 更新の分割 ― 2006年10月19日 12時06分07秒
20061014: AFFECTS: All GNOME users AUTHOR: gnome@FreeBSD.org GNOME has been updated to 2.16 and all GNOME components have been moved from X11BASE to LOCALBASE, to upgrade your GNOME desktop and applications you will need either sysutils/portupgrade or sysutils/portmaster. To use portmaster, make sure you have least 1.9 version to have the upgrade success.
Gnome や KDE 等の更新は、一苦労だ。大量のパッケージを一気に、再構築しなくてはならない。あまりに大量になるので、時間的な制約等で一度停止したくなることが度々ある。portupgrade では一時停止して、reboot 後に再開は出来ない。自宅に置いてあると、処事情により停止しなければいけないことも多々出てくるのだ。
Cntrl-C 等で中断すると、ほとんどの場合、中途半端な更新のために壊れた状態になる。運が良いと、その壊れた状態から続行できるときもある。運が悪くて、どうしようもならず、restore を行なったこともある。予備のシステムを常に備えているので、ports が全て飛んでも、一度シングルユーザモードの下りるだけで済んだが。
それだったら、更新するパッケージを全て抜きだしてから、一つずつ上げていけば良いだけだ。残念ながら、portupgrade には与えられた引数を元に更新するパッケージの名前のみを返すオプションが見当たらない。もしかしたら、-L FORMAT で出来るのかも知れないが…
何はともあれ、-n を付けると最後に更新予定のパッケージを出力するのでそこから取ればいい。例えば、glib-2 に依存するものを全て取るのであれば、
portupgrade -rfn glib-2\* | egrep '^[[:space:]]+\+' | cut -d' ' -f2
とする。出力はファイルにリダイレクトして、そこから for でも foreach でも回せば良い。xargs とすると折角、分割した物が一緒になってしまうので却下。
次回。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/10/19/566800/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。