[FreeBSD-users-jp 91200] Re: zfs root すると ports の bash が起動しない
不思議ですね。 ld-elf.so.hints のアクセス権は、一般ユーザでも読み込めるように なっていますか? 内容も教えていただけるとうれしいです。 % ls -l /var/run/ld-elf.so.hints % cat /var/run/ld-elf.so.hints -- Yusuke.Baba <[メールアドレス保護]>
[FreeBSD-users-jp 91199] Re: zfs root すると ports の bash が起動しない
戸川です. すみません.一部解決しました. 件のページ http://www.ish.com.au/solutions/articles/freebsdzfs の手順どおりにやると,なぜか /var/run が drwx-- 4 rootwheel 22 Nov 13 15:13 run となって,パーミッションがおかしくなっていたようです. ちなみに,ZFSにコピーする前のコピー元(UFS)である /bootdir/var/run は drwxr-xr-x 4 root wheel 512 Nov 12 15:50 /bootdir/var/run となっており,なぜこのディレクトリだけパーミッションが落ちているかは 現在の所不明です. 件のページでのコピー方法は「# find -x / | cpio -pmd /tank」でした. # chmod 755 /var/run することで,一般ユーザーでのbashの起動を確認できました. 今夜は遅いのでこれ以上の追試は出来ませんが,明日の夜にでも 「本当にあのコピー方法でいいのか?」 ということを検証したいと思います. -- [メールアドレス保護] 戸川聡士
[FreeBSD-users-jp 91198] Re: zfs root すると ports の bash が起動しない
戸川です. On Tue, 13 Nov 2007 22:40:44 +0900 "Yusuke.Baba" <[メールアドレス保護]> wrote: > 環境変数 LD_LIBRARY_PATH は設定されていますか? 設定していません. $ echo ${LD_LIBRARY_PATH} $ suでrootになってからも試してみましたが # echo ${LD_LIBRARY_PATH} LD_LIBRARY_PATH: Undefined variable. だそうです. > % ldconfig -rv > % grep ^ldconfig /etc/defaults/rc.conf > % grep ^ldconfig /etc/rc.conf # ldconfig -rv | grep libintl 92:-lintl.8 => /usr/local/lib/libintl.so.8 # grep ^ldconfig /etc/defaults/rc.conf ldconfig_insecure="NO" # Set to YES to disable ldconfig security checks ldconfig_paths="/usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg" ldconfig32_paths="/usr/lib32" # 32-bit compatibility shared library search paths ldconfig_paths_aout="/usr/lib/compat/aout /usr/local/lib/aout" ldconfig_local_dirs="/usr/local/libdata/ldconfig" ldconfig_local32_dirs="/usr/local/libdata/ldconfig32" # grep ^ldconfig /etc/rc.conf # です. あと,某所で指摘されたのですが,bashでは $ readelf -d /usr/local/bin/bash | grep RPATH では何も出ないのですが,動作するxgettextでは $ readelf -d /usr/local/bin/xgettext | grep RPATH 0x000f (RPATH) Library rpath: [/usr/local/lib] となり,bashのビルド時固有の問題? という気がしています. (もっともこれに関しては「ldconfigがちゃんと動いてれば関係ない」という意見も) 他に何か確認する所があれば教えて頂けるとありがたいです. よろしくお願いします. -- [メールアドレス保護] 戸川聡士
[FreeBSD-users-jp 91197] Re: zfs root すると ports の bash が起動しない
環境変数 LD_LIBRARY_PATH は設定されていますか? % echo $LD_LIBRARY_PATH 設定されていないようでしたら、つぎのコマンドの 実行結果があると、回答を得られやすくなると思います。 % ldconfig -rv % grep ^ldconfig /etc/defaults/rc.conf % grep ^ldconfig /etc/rc.conf -- Yusuke.Baba <[メールアドレス保護]>
[FreeBSD-users-jp 91196] zfs root す ると ports の bash が起動しない
戸川です. 話題のML115を買ったので,7.0-BETA2/amd64をインストールしてみました. これはうまくいきました. 次に,portsからbashをインストールしてみました. これも動作しました. で,せっかくなので,zfs rootするぜ,ということで, http://www.ish.com.au/solutions/articles/freebsdzfs に従って, /usr, /var, /tmp をzfs領域に移しました. すると,起動などはうまくいくのですが,bashが起動しなくなりました. エラーメッセージはこうです. /libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required by "bash" 確かに ldd bashすると libintl.so.8 => not found (0x0) とか言われます. しかしながら,/usr/local/lib/libintl.so.8 は存在します. -r--r--r-- 1 root wheel 47076 Nov 13 20:00 /usr/local/lib/libintl.so.8 また,おかしなことに,suでrootになると,正常に実行できます. また,同じくlibintl.so.8を参照しているコマンドとして /usr/local/bin/xgettextがあるのですが,これは正常に起動します. ldd xgettext すると libintl.so.8 => /usr/local/lib/libintl.so.8 (0x8008fe000) となって,参照できているようです. また,ktrace + kdump でbashの起動過程を見てみたのですが, どうも /lib と /usr/lib だけしか見ていないようなのです. 779 bash NAMI "/lib/libintl.so.8" 779 bash RET access -1 errno 2 No such file or directory 779 bash CALL access(0x8005b4000,F_OK) 779 bash NAMI "/usr/lib/libintl.so.8" 779 bash RET access -1 errno 2 No such file or directory 779 bash CALL write(0x2,0x7fffe070,0x16) 779 bash GIO fd 2 wrote 22 bytes "/libexec/ld-elf.so.1: " 779 bash RET write 22/0x16 779 bash CALL write(0x2,0x7fffe150,0x3a) 779 bash GIO fd 2 wrote 58 bytes "Shared object "libintl.so.8" not found, required by "bash"" 他に何か確認する項目はあるでしょうか? よろしければ教えて下さい. 以上です. -- [メールアドレス保護] 戸川聡士