[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