2011年1月13日木曜日

メモ portupgradeやpkg_upgradeしたらナンカ動かなくなったときは



まずpkgdbでパッケージの依存関係を修正してみる。



pkgdb -Fa;pkgdb -F



このとき、真面目にportsから入れると時間が掛かりまくるので、追加インストールすべきパッケージを控えておいて終了。以下のようにすればほぼ最新のパッケージを簡単に入れられる。



setenv PACKAGESITE ftp://ftp[適当なミラー].jp.freebsd.org/pub/FreeBSD/ports/[i386|amd64]/packages-8-stable/Latest/


pkg_add -r [パッケージ名]


([適当なミラー]には空文字列か2~9が入る)



パッケージ単位で依存関係が大丈夫でもまだ何かおかしい時は。sysutils/bsdadmintoolをインストールしておいてpkg_libchkを実行する



pkg_libchk



これでライブラリが足りているかのチェックをしてくれる。


エラーが出ているパッケージ、もしくはそのパッケージが利用しているライブラリのどちらかのバージョンが古いのが多くの場合は原因なので、バージョンを上げる。


補足:バイナリでのアップグレード


portupgradeを使っても、pkg_upgradeを使っても、portsをコンパイルすることなくパッケージのアップグレードができるんだけど、一つ注意点がある。


portupgradeはportsnap等でローカルに持ってきたportsで指定されたバージョンをインストールする。


portupgradeを実行する直前にportsnapを行えば最新のバージョンをインストールする事になる。


一方、pkg_upgradeはパッケージ配布サイトの最新パッケージを用いてインストールする。このためportsからインストールするのにくらべ、一定期間遅れたパッケージが利用される。


portupgradeのでバイナリアップグレード


portupgrade では以下のように-Pオプションでパッケージを優先的に使うようになる。


最新のパッケージを取得出来るよう、以下のようにPACKAGESITEを指定する必要があるので注意。



setenv FTP_PASSIVE_MODE yes #所謂BBルータを使っている場合必要


setenv PACKAGESITE ftp://ftp[適当なミラー].jp.freebsd.org/pub/FreeBSD/ports/[i386|amd64]/packages-8-stable/Latest/


portupgrade -P 対象パッケージ



pkg_upgrade(bsdadmintools)を使う場合


バイナリしか持ってこないので、気軽に-aオプションで一気に更新とかできて便利。


ただし、ライセンスの都合上バイナリ配布が許されないものは当然ながらパッケージが存在しないので、


それらはportupgradeのお世話になる事になる、



setenv FTP_PASSIVE_MODE yes #所謂BBルータを使っている場合必要


setenv PACKAGEROOT ftp://ftp[適当なミラー].jp.freebsd.org/


setenv PACKAGESITE ftp://ftp[適当なミラー].jp.freebsd.org/pub/FreeBSD/ports/[i386|amd64]/packages-8-stable/Latest/


pkg_upgrade 対象パッケージ






0 件のコメント:

コメントを投稿