FreeBSD Daily Topics

2012年8月13日FreeBSD 10-CURRENTでpkg(8)を使う場合のコツ

pkgng

FreeBSD HEAD and pkg(8)

pkg(8)のパッケージは頻繁にビルドされバージョンアップされていきますが、FreeBSD HEADのブランチに常に追いついているわけではありません。このため、FreeBSD HEAD(FreeBSD 10-CURRENT)を追い続けながらpkg(8)を使うというやり方をする場合、pkg(8)経由でインストールしたソフトウェアが使えなくなることがあります。

たとえば最近の例ですと、ベースシステムにマージされているOpenSSLのライブラリがlibssl.so.6からlibssl.so.7にアップデートされましたので、libssl.so.6を前提にしてビルドされたpkg(8)のパッケージは、FreeBSD HEADでは動作しなくなります。

これを避ける方法として、make delete-oldおよびmake delete-old-libsを実行しないで古いバージョンのライブラリも保持し続けるか、または古いバージョンのライブラリを/usr/local/lib/compat/pkg/にコピーして管理するという方法があります。/usr/local/lib/compat/pkg/に古いバージョンのライブラリをコピーしたら、次のようにしてldconfigのパスをアップデートします。

# service ldconfig start
ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg /usr/local/kde4/lib /usr/local/lib/gcc46 /usr/local/lib/nss /usr/local/lib/portaudio2 /usr/local/lib/qt4 /usr/local/lib/virtualbox
32-bit compatibility ldconfig path: /usr/lib32
#  

/usr/local/lib/compat/pkg/にコピーするなどした後はmake delete-oldおよびmake delete-old-libsを実施して、古いバージョンのライブラリを削除してもかまいません。削除したあとはシステムを再起動するか、上記のようにldconfigパスを更新することを忘れないで実施してください。

おすすめ記事

記事・ニュース一覧