2015年5月3日日曜日

FreeBSDで特定のパッケージについてpkgでの自動的なアップデートを禁止する

インストールしているパッケージについて、バイナリでのアップデートをしたくない時があります。たとえばapache22でmod_proxyを使いたいと思っても、残念ながらバイナリパッケージにはmod_proxyが含まれておらず、portsを使う必要があります。そして、ふと、バイナリでのアップデートしてしまうと、うまく動かなくなります。そこで、
FreeBSDでpkg(8)を使うときの落とし穴
http://togetter.com/li/611632

メモ:FreeBSDでPHP-FPMを使っている場合、pkg upgradeするとPHP-FPMが削除されちゃうので、
pkg lock php5
でロックをかけておく。php5を更新したいときは
pkg unlock php5
してからportsで更新
のようにpkg lock/unlockをするようにしました。
# pkg info -I apache22
apache22-2.2.29_2              Version 2.2.x of Apache web server with prefork MPM.
# pkg lock apache22
apache22-2.2.29_2: lock this package? [y/N]: y
Locking apache22-2.2.29_2
# pkg unlock -l

Currently locked packages:
apache22-2.2.29_2
# pkg unlock apache22
apache22-2.2.29_2: unlock this package? [y/N]: ^C
#
pkg lock apache22でロック、pkg unlock apache22でアンロックできます。
これでバイナリのアップデートが行われなくなります。