2014年12月18日木曜日

FreeBSD Perl 5.18.4_11 へアップデートと注意事項

FreeBSD の ports へ Perl 5.18.4_11 へのアップデートが到着していました。

アップデートは単純に portupgrade で更新を行なっておきました。ビルドとインストールした最後に次のセキュリティ警告が表示されていました。
Installing perl5-5.18.4_11...
===> SECURITY REPORT:
 This port has installed the following files which may act as network servers and may therefore pose a remote security risk to the system.
/usr/local/lib/perl5/5.18/mach/CORE/libperl.so.5.18.4

さらに /usr/ports/UPDATING を確認してみると、Perl 5.** を使用しているユーザ宛に注意事項が届いていました。Perl 本体のアップグレードを行った時には、依存関係のある Perl のモジュールや ports の再ビルドが必要ですが、PKG を使ってバイナリ・アップグレードを行うときには、PKG がアップグレードを検出して再インストールしてくれるそうです。portupgrade や portmaster を使用している場合には、次のコマンド・スクリプトを実行することで、再ビルドの必要な ports を検出して、再ビルドができるそうです。PKG コマンドで再ビルドの必要な ports を検出して、portupgrade で再ビルドさせる手法のようです。詳しくは /usr/ports/UPDATING を確認してください。
20141217:
  AFFECTS: users of lang/perl5.*
  AUTHOR: mat@FreeBSD.org

  Perl now links all .so it builds with libperl.so, it makes upgrading from one Perl major version to another way easier.  For binary package users, it means pkg upgrade will detect the libperl.so.x.yy change, and reinstall the affected packages.  For users using ports, it will save rebuild time as it's easier to detect what ports really need to be rebuilt.

Perl 5.18 ユーザは、次の方法で再ビルドすると時間の節約になるそうです。Perl 5.16 などの他のバージョンを使用している場合には、適宜変更が必要です。
  Ports users are encouraged to rebuild ports that install files in SITE_ARCH.
  If using Perl 5.18, run:

  With portupgrade:

 portupgrade -f `find /usr/local/lib/perl5/site_perl/mach/5.18 -name '*.so'|xargs pkg which -qo|sort -u`

  With portmaster:

 portmaster `find /usr/local/lib/perl5/site_perl/mach/5.18 -name '*.so'|xargs pkg which -qo|sort -u`
私個人としては、単純に portupgrade の "-r" オプションで Perl と依存関係のあるものを全て再ビルドしてしまう方が、後腐れなしで安心できるのではないかと思っています。今後もしばらくこの方法で処理する予定です。
portupgrade -fr perl5

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。