[FreeBSD-users-jp 95268] Re: ローカルのリポジトリ(カタログ)が見えなくなった
ribbon sv user
ribbon at ns.ribbon.or.jp
Sat Aug 23 01:57:15 UTC 2014
On Fri, Aug 22, 2014 at 07:42:47AM +0900, Masato Minda wrote:
> On 2014/08/18 7:20, ribbon sv user wrote:
> > 今FreeBSD 9.3Rで動いている1台で pkg update をすると、
> >
> > # pkg update
> > Updating repository catalogue
> > No valid repository found.
> >
> > となってしまいます。
>
> pkg update -f としたらどうでしょうか。
変わらずでした。
で、もう少し調べてみました。
ファイルが見つからない、のだろうと思って、どのファイルをアクセスしているか
調べて見ました。truss -f pkg update を掛けてみたのですが、予想に反して、pkg がforkする
部分でforkに失敗していました。
750: readlink("/etc/malloc.conf",0xbfbfe6c6,1024) ERR#2 'No such file or directory'
750: issetugid(0x2854d2d9,0xbfbfe6c6,0x400,0x28075e47,0x3,0x28084290) = 0 (0x0)
750: break(0x806f690) = 0 (0x0)
750: break(0x8400000) = 0 (0x0)
750: mmap(0x0,4194304,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 677335040 (0x285f5000)
750: mmap(0x289f5000,2142208,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 681529344 (0x289f5000)
750: munmap(0x285f5000,2142208) = 0 (0x0)
750: umask(0x12,0x0,0x0,0xbfbfec40,0x0,0x2806d1a0) = 18 (0x12)
750: fork() = 751 (0x2ef)
★
750: wait4(751,{ EXITED,val=70 },0x0,0x0) = 751 (0x2ef)
750: sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
750: sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0)
750: sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|S
正常な場合、ここ(★)でforkされます。
正常な場合ですが、pkg バージョン 1.2.7 ではうまくいき、1.3.6 (現時点での最新)
ではだめでした。
しかし、別の機械、また、FreeBSD 9.3をクリヤインストールし、その直後に
pkg だけ入れた場合には、バージョン 1.3.6 でも正常に動作しました。
となると、何かライブラリが足引っ張っているのかな、と思い、ldd で比較してみたのですが、
1) うまくいかないものの(1.3.6)
# ldd /usr/sbin/pkg
/usr/sbin/pkg:
libarchive.so.5 => /usr/lib/libarchive.so.5 (0x2806f000)
libelf.so.1 => /usr/lib/libelf.so.1 (0x280ae000)
libfetch.so.6 => /usr/lib/libfetch.so.6 (0x280cf000)
libucl.so.1 => /usr/lib/private/libucl.so.1 (0x280e0000)
libsbuf.so.6 => /lib/libsbuf.so.6 (0x280ee000)
libssl.so.6 => /usr/lib/libssl.so.6 (0x280f1000)
libcrypto.so.6 => /lib/libcrypto.so.6 (0x2813d000)
libc.so.7 => /lib/libc.so.7 (0x282a0000)
libz.so.6 => /lib/libz.so.6 (0x283d2000)
libbz2.so.4 => /usr/lib/libbz2.so.4 (0x283e6000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x283f6000)
libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x28419000)
2) クリヤインストール直後のうまくいくもの(1.3.6)
# ldd /usr/sbin/pkg
/usr/sbin/pkg:
libarchive.so.5 => /usr/lib/libarchive.so.5 (0x2806f000)
libelf.so.1 => /usr/lib/libelf.so.1 (0x280ae000)
libfetch.so.6 => /usr/lib/libfetch.so.6 (0x280cf000)
libucl.so.1 => /usr/lib/private/libucl.so.1 (0x280e0000)
libsbuf.so.6 => /lib/libsbuf.so.6 (0x280ee000)
libssl.so.6 => /usr/lib/libssl.so.6 (0x280f1000)
libcrypto.so.6 => /lib/libcrypto.so.6 (0x2813d000)
libc.so.7 => /lib/libc.so.7 (0x282a0000)
libz.so.6 => /lib/libz.so.6 (0x283d2000)
libbz2.so.4 => /usr/lib/libbz2.so.4 (0x283e6000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x283f6000)
libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x28419000)
1) との差はないです
3) 別のマシンでうまくいっているもの(1.3,6)
# ldd /usr/sbin/pkg
/usr/sbin/pkg:
libarchive.so.5 => /usr/lib/libarchive.so.5 (0x2806c000)
libelf.so.1 => /usr/lib/libelf.so.1 (0x280ab000)
libfetch.so.6 => /usr/lib/libfetch.so.6 (0x280cc000)
libc.so.7 => /lib/libc.so.7 (0x280dc000)
libz.so.6 => /lib/libz.so.6 (0x2820e000)
libbz2.so.4 => /usr/lib/libbz2.so.4 (0x28222000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x28232000)
libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x28255000)
libcrypto.so.6 => /lib/libcrypto.so.6 (0x28274000)
libssl.so.6 => /usr/lib/libssl.so.6 (0x283d7000)
1)、2)と比べて、 libucl.so,libsbuf.soを使っていません。
4) ver 1.2.7 の場合
# ldd /usr/sbin/pkg
/usr/sbin/pkg:
libarchive.so.5 => /usr/lib/libarchive.so.5 (0x2806c000)
libelf.so.1 => /usr/lib/libelf.so.1 (0x280ab000)
libfetch.so.6 => /usr/lib/libfetch.so.6 (0x280cc000)
libc.so.7 => /lib/libc.so.7 (0x280dc000)
libz.so.6 => /lib/libz.so.6 (0x2820e000)
libbz2.so.4 => /usr/lib/libbz2.so.4 (0x28222000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x28232000)
libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x28255000)
libcrypto.so.6 => /lib/libcrypto.so.6 (0x28274000)
libssl.so.6 => /usr/lib/libssl.so.6 (0x283d7000)
となりました。バージョン1.3.6でうまくいく/うまくいかない場合のライブラリに、
機種ごとに差が出てしまいました。
ちなみに、このファイルはpkgというパッケージファイル内には
pkg info -l pkg で確認したところ入っていませんでした。
というわけで、わけ分からなくなってしまいました。
なので、これ以上調べてもますますわけ分からなくなりそうなので、
9.3をインストールして、再度設定することにしようと思っています。
oota
More information about the freebsd-users-jp
mailing list