梅本です。

>>> Wed, 18 Apr 2007 19:15:17 +0900 の刻に「higuchi」、すなわち
>>> Higuchi Masahiro <[EMAIL PROTECTED]> 氏曰く

higuchi> sysutils/apcupsdが、いまインストールされているのより新しいバージョンの
higuchi> net-mgmt/net-snmpをインストールしたいのだけど、その場合は、
higuchi> net-mgmt/net-snmpで、make deinstall, make reinstallを実行してください。
higuchi> もし、古いバージョンのnet-mgmt/net-snmpを削除してから、新しいバージョンの
higuchi> net-mgmt/net-snmpで上書きしたいのなら、FORCE_PKG_REGISTERをmake installの
higuchi> オプションにつけてください。
higuchi> という意味です。

  依存関係が取れてないのかと思って確認しましたが、ports tree では整合性
は取れているようです。net-snmp をインストールした後に net-snmp が更新さ
れて、libnetsnmp の SHLIB_VERSION が上がったのでしょう。ちなみに、最新
の ports tree では libnetsnmp.10 となっています。

higuchi> apcupsdの場合ではなかったかもしれませんが、この例でいうと、
higuchi> net-mgmt/net-snmpがsysutils/apcupsdが求めているものより新しすぎると
higuchi> apcupsdが /usr/local/lib/libnetsnmp.so.*がないよ、と実行時エラーを出す
higuchi> ような場合があります。
higuchi> そういう場合はどうすればいいんでしょうか? > みなさん
higuchi> 私は、シンボリックリンクで逃げています.
higuchi> # ln -s /usr/local/lib/libintl.so.8 /usr/local/lib/libintl.so.6
higuchi> のように...

  一般的に、バイナリ互換性が失われるような変更があった際に
SHLIB_VERSION を上げます。ですので、シンボリックリンクで逃げるのは危険
です。

  依存する ports (net-snmp と net-snmp が依存している ports) を最新の状
態にした上で、希望の port (apcupsd) をインストールしましょう。
ports-mgmt/portupgrade がインストールされているなら、

        portupgrade -R net-snmp
        portinstall sysutils/apcupsd

で良いと思います。

なお、今回のケースのように SHLIB_VERSION が上がっている場合、 既にイン
ストールされている net-snmp を単純に削除して入れ直すと、古いライブラリ
がなくなってしまい、もし net-snmp に依存している ports をインストールし
ていた場合に、その ports が動かなくなってしまう可能性がありますので、注
意が必要です。portupgrade で上げると、昔のライブラリを残してくれますの
で、安全です。

-- 
梅本 肇 @ インターネット互助会横浜  http://www.imasy.org/~ume/
[EMAIL PROTECTED]  [EMAIL PROTECTED],jp.}FreeBSD.org
プログラムは書いた人の意図ではなく書かれた通り動く  I hate Modula-3 :-)

メールによる返信