2007年04月26日 07時09分26秒
データベースの不整合で portupgrade が正しく機能しなくなるときがある。
marryrush# portversion -c Stale dependency: zoo-2.10.1_2 <-- clamav-0.88_1 -- manually run 'pkgdb -F' to fix, or specify -O to force. marryrush# marryrush# pkgdb -F ---> Checking the package registry database marryrush#
依存関係に不正部分があるので pkgdb -F で修正しろと言われるのだが、いざ pkgdb -F を実行すると問題が見つからないと出る。 上記の様な場合、/var/db/pkg/*/* のファイルに問題が隠れている場合がある。
marryrush# grep clamav /var/db/pkg/*/* /var/db/pkg/arc-5.21o_1/+REQUIRED_BY:clamav-0.88.7_1 /var/db/pkg/arj-3.10.22/+REQUIRED_BY:clamav-0.88.7_1 /var/db/pkg/clamav-0.88.7_1/+CONTENTS:@name clamav-0.88.7_1 : : /var/db/pkg/clamav-0.88.7_1/+INSTALL: echo "* and remove $PREFIX/etc/clamav.conf *" /var/db/pkg/curl-7.16.0/+REQUIRED_BY:clamav-0.88.7_1 /var/db/pkg/lha-1.14i_6/+REQUIRED_BY:clamav-0.88.7_1 /var/db/pkg/libgmp-4.2.1_1/+REQUIRED_BY:clamav-0.88.7_1 /var/db/pkg/libunrar-3.6.8,1/+DESC: This package containe small fixes from the http://mcmcc.bat.ru/clamav/. /var/db/pkg/libunrar-3.6.8,1/+REQUIRED_BY:clamav-0.88.7_1 /var/db/pkg/openldap-sasl-client-2.3.31/+REQUIRED_BY:clamav-0.88.7_1 /var/db/pkg/unzip-5.52_2/+REQUIRED_BY:clamav-0.88.7_1 /var/db/pkg/unzoo-4.4_2/+REQUIRED_BY:clamav-0.88.7_1 /var/db/pkg/zoo-2.10.1_2/+REQUIRED_BY:clamav-0.88_1 ←!リビジョンがおかしい marryrush#
この例であれば、 zoo-2.10.1_2 を一度消して再導入することで問題が解決する。
marryrush# pkg_delete zoo-2.10.1_2 marryrush# portversion -c [Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 139 packages found (-1 +0) (...) done] # # apache # needs updating (port has 2.2.3) # pkgs="$pkgs apache-2.2.0_7" : : if [ X"$pkgs" != X"" ]; then portupgrade "$@" $pkgs fi marryrush#
portversion コマンドが動作したので(多分)不整合は解決された。
marryrush# portinstall zoo ---> Installing 'zoo-2.10.1_2' from a port (archivers/zoo) ---> Building '/usr/ports/archivers/zoo' ===> Cleaning for zoo-2.10.1_2 ===> Vulnerability check disabled, database not found ===> Extracting for zoo-2.10.1_2 => MD5 Checksum OK for zoo-2.10pl1.tar.gz. => SHA256 Checksum OK for zoo-2.10pl1.tar.gz. ===> Patching for zoo-2.10.1_2 ===> Applying FreeBSD patches for zoo-2.10.1_2 ===> Configuring for zoo-2.10.1_2 ===> Building for zoo-2.10.1_2 : : ===> Checking if archivers/zoo already installed install -s -o root -g wheel -m 555 zoo fiz /usr/local/bin install -o root -g wheel -m 444 zoo.1 fiz.1 /usr/local/man/man1 ===> Compressing manual pages for zoo-2.10.1_2 ===> Registering installation for zoo-2.10.1_2 ===> Cleaning for zoo-2.10.1_2 marryrush#
zooの再インストールも無事終わる。