FreeBSDなある1台のマシンでだけ、emacsを実行するとshmctlがundefinedとか言われて起動しなくて、でもemacs -nwだと起動するなあ、なんて不思議な現象に気がついて、いろいろやっていくうちに、やっとたどりついたのは
/usr/local/lib/libX11.so: undefined reference to `shmctl@FBSD_1.1'
という問題。
同じ話がここで出てるのを見つけたんですが、こうなった原因も、まさにそのとおりでした。
http://forums.freebsd.org/showthread.php?p=48130
うちのところでは
- 1台のマシンでだけ、portsでソフトウェアをインストールするとき、make packageで、バイナリパッケージを作成する
- その他の多数のマシンでは、そのバイナリパッケージを使って、インストール/アップデートしてる
という運用をしています。
そして、OSは、たんなる気まぐれで、RELEASEバージョンは避けていて、STABLEブランチのものを、たまにcvsup & make buildworldして、問題なく動いているときのものをインストールしていました。
といっても、マシンごとに、全部違う日付のときのOSをインストールしてるわけではなく、一応、全部、同じ日付のものをインストールするようにしてました。
・・・してるつもりでした。
あれれ、1台だけ、なぜか、ちょっと古いので動いてまして、まさにその1台で、
/usr/local/lib/libX11.so: undefined reference to `shmctl@FBSD_1.1'
が出てたのでした。
どうも、/lib/libc.so.7 の中身が、ちょこっと変わってたようで、こういうundefined referenceが出てしまう、ってことでした。ちなみに、ライブラリだけでなく、カーネルも関係しているので、カーネルもあわせてアップデートしなければいけませんでした。
問題が起きたマシンは、7月ころにcvsupしてて、その他は、10月にcvsupしたものでした。その間に、変更があったんでしょうね。
ちなみに、make buildworld、make buildkernelも、実験用のマシン1台でだけ行って、他のマシンは、/usr/srcと/usr/objをNFS mountして、インストールするだけにしてます。
☆
実は、ネネさんの方が好みのタイプだったりする。
どうでもいいか、そんなこと。
0 件のコメント:
コメントを投稿