2008/03/16(日)FreeBSD 7.0R で csh が segmantation fault(SEGV)

2017/10/11 8:24 サーバ運営・管理
順次サーバOSを FreeBSD 7.0R に更新しているわけですが、 samba を使うために libiconv 1.12 をインストールして再起動したら、
ログインが全く出来なくなってしまった..orz

シングルユーザモードにしたら何とかシェル(csh)を使うことが出来たので、ログを見てみると、

kiew kernel: pid 13642 (csh), uid 1001: exited on signal 11 (core dumped)

のようなメッセージが出ている。
共有ライブラリ回りだというのは何となく判るが、何が問題なのか判らないので、先ずはOSをバイナリインストールしなおしてみる。。
上手く行かない。
試しにシェルを sh に変えてみると、core dump は出ない(使用できる)。

この現象は libiconv をソースコードからコンパイルにてインストールしてからでたので、libiconv と csh の関係を調べる。
ここしか有用な情報に突き当たらなかったが、やはり libiconv が問題の可能性が高いことに確信を得ました。

それでわ、、ということで、強引に /usr/local/lib 配下の libiconv.so.3,libiconvso.6 とそのリンクを削除し、その上で csh を起動してみる。そうすると正常に起動しました。これで libiconv.so の問題ということは判りました。

ここで、libiconv-1.12 をインストールしてみます。そうすると、 libiconv.so.6 がインストールされます。
こうすると、csh は再び segmantation fault を出し、ライブラリ依存する gmake を叩いてみると、'llbiconv.so.3 が 要ります' のようなメッセージを出す。

ということは、 csh は libiconv.so.3 を前提にしたバイナリパッケージ、ということが簡単に予測できます。
実際、packages にて libiconv-1.11_1 をインストールすると、 libiconv.so.3 がインストールされました。
この状態で csh を起動すると、segmantation fault は出ません。

原因は判ったのですが、今度は samba が上手く使えないのでないか?という疑問が、、
packages にて libiconv-1.11_1 をインストールした状態で、

$ iconv -l | grep MS
とすると、
kiew-lifekrnl% iconv -l | grep MS
40:CP1250 MS-EE WINDOWS-1250
41:CP1251 MS-CYRL WINDOWS-1251
42:CP1252 MS-ANSI WINDOWS-1252
43:CP1253 MS-GREEK WINDOWS-1253
44:CP1254 MS-TURK WINDOWS-1254
45:CP1255 MS-HEBR WINDOWS-1255
46:CP1256 MS-ARAB WINDOWS-1256
66:ARMSCII-8
85:MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS
92:CP936 MS936 WINDOWS-936

となり、使えそうな感じ。
わざわざソースコードから最新の libiconv 入れる行為が却って仇になる模様。。

pakages/ports 使うと、セキュリティバージョンアップの対応の遅さや、インストールディレクトリなどが環境に微妙に合わなかったりすることが結構多かったりして、使いにくいので、出来るだけ使わない方向でいるんですが、、

いまのところ、packages の libiconv-1.11_1 で samba 3.0.28a が一応利用出来ているみたいです。