FreeBSD Daily Topics
2012年2月16日 正規表現ライブラリPCRE(devel/pcre)アップデート注意
ports
- How to upgrade devel/pcre regular expression library
正規表現ライブラリPCRE(deve/pcre)のportがアップデートされました。インストールされるライブラリlibpcre.soのメジャーバージョンが0から1へ変更されているため,多くのアプリケーションやライブラリが影響を受けます。PCREを採用しているライブラリやアプリケーションが多いためです。/usr/ports/UPDATINGには次のような説明が記載されています。
20120214: AFFECTS: users of devel/pcre AUTHOR: dougb@FreeBSD.org Until all dependent ports have been updated you should update pcre in a manner that will preserve its old shared library. For example: # portmaster -w devel/pcre or # portupgrade devel/pcreportupgrade(8)を使っている場合,この方法でアップグレードが可能です。portupgrade(8)を使った場合には「libpcre.so.0」は「/usr/local/lib/compat/pkg/」へコピーされ,すでにインストールされているアプリケーションやライブラリでlibpcre.so.0を使用しているものは「/usr/local/lib/compat/pkg/libpcre.so.0」を参照するようになります。「/usr/local/lib/compat/pkg/」は起動時にldconfig(8)に追加されるデフォルトのパスです。/etc/defaults/rc.confファイルの「ldconfig_paths」の項目に記載されています。
portmaster(8)を使っている場合には注意が必要です。UPDATINGに記載されている方法ではライブラリの退避が実施されません。portmaster(8)を使っている場合には次のように実行してみてください。「-w」は既存のライブラリで新しいバージョンで削除されるものを「/usr/local/lib/compat/pkg/」に退避させる設定ですが,環境変数LOCALBASEが設定されていないと機能しません。
env LOCALBASE=/usr/local portmaster -w -D -G --no-confirm pcreUPDATINGの説明通りにportmaster(8)を実行した場合,libpcre.so.0が削除され,libpcre.so.1がインストールされた状態になっている可能性があります。この場合,既存のアプリケーションやツールの多くが動作しなくなります。関連するプログラムをすべて再構築しようとしても,ツールそのものがlibpcre.so.0に依存しているものがあり,アップデート作業はうまくいきません。一旦以前のバージョンのportを取得するなどして「libpcre.so.0」を入れなおし,作業をやり直す方が簡単です。
FreeBSD Daily Topics
- 2012年2月22日 FreeBSD 8.3-BETA1登場
- 2012年2月21日 FreeBSD 8.3-RELEASEへ向け、コードフリーズ開始
- 2012年2月17日 正規表現ライブラリPCRE(devel/pcre)アップデート - 依存ソフトウェアの更新方法
- 2012年2月16日 正規表現ライブラリPCRE(devel/pcre)アップデート注意
- 2012年2月10日 『FreeBSD Expert 2012 Digital Edition』出版開始!
- 2012年2月8日 AsiaBSDCon 2012開催 - スポンサーシップ求む
- 2012年2月7日 FreeBSD 8.3-RELEASEは3月25日前後,AsiaBSDCon2012会期中の発表か
- 2012年2月2日 次世代パッケージ管理システム「pkgng」のインストールと使い方
-
そうですか?
> portmaster(8)を使っている場合には注意が必要です。UPDATINGに記載されている方法ではライブラリの退避が実施されません
一度 UPDATING を読まずに、pcre を make deinstall reinstall してしまって、emacs も動かなくなり、少し悩みましたが古い pcre に戻して、portmaster -w pcre したのち portmaster -r pcre したら一部エラーがでたものの無事アップデート出来ました。
エラーがでたものは該当 ports ディレクトリに移動して make deinstall reinstall しました。
最初から portmaster -w pcre すると違う動作をすろのですかね?Commented : #1 ISHII (2012/02/16, 23:31)

