[centos-users 816] Re: CentOS を最新の状態に保つには?

Takuma Wabiko wabiko.takuma @ gmail.com
2008年 6月 28日 (土) 13:21:44 JST


我彦です。

解決できました。

2008/6/28 Masakazu Takahashi <emasaka @ gmail.com>:
>  /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/Util.so
> が見つからなくなっているのではないでしょうか。

Util.so はありましたが、 List/Util が rpm と cpan の両方で登録されていたため、
何らかの理由でエラーが発生していたようです。

cpan で入れたファイルをリネームしたところ、正常に動作するようになりました。
ありがとうございました。


以下、作業内容です。

エラーの原因の行↓

$ perl -e 'use Scalar::Util qw(weaken);'
Weak references are not implemented in the version of perl at -e line 1
BEGIN failed--compilation aborted at -e line 1.
$

高橋さんのコメントを参考に List/Util で検索。
rpm 管理でないファイルを発見。

# locate List/Util.pm | grep ^/usr/lib/perl5
/usr/lib/perl5/5.8.8/List/Util.pm
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/List/Util.pm
# rpm -qf /usr/lib/perl5/5.8.8/List/Util.pm
perl-5.8.8-10.el5_2.3
# rpm -qf /usr/lib/perl5/5.8.8/i386-linux-thread-multi/List/Util.pm
file /usr/lib/perl5/5.8.8/i386-linux-thread-multi/List/Util.pm is not
owned by any package
#

消すために make && make uninstall を実行。

# cd /root/.cpan/build/Scalar-List-Utils-1.19
# make
# make uninstall

Uninstall is unsafe and deprecated, the uninstallation was not performed.
We will show what would have been done.

unlink /usr/lib/perl5/5.8.8/i386-linux-thread-multi/List/Util.pm
unlink /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Scalar/Util.pm
unlink /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/Util.bs
unlink /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/Util.so
unlink /usr/share/man/man3/List::Util.3pm
unlink /usr/share/man/man3/Scalar::Util.3pm
unlink /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/.packlist

Uninstall is unsafe and deprecated, the uninstallation was not performed.
Please check the list above carefully, there may be errors.
Remove the appropriate files manually.
Sorry for the inconvenience.

#

手動で消す前にファイルが rpm で管理されていないことを確認。

$ rpm -qf /usr/lib/perl5/5.8.8/i386-linux-thread-multi/List/Util.pm
file /usr/lib/perl5/5.8.8/i386-linux-thread-multi/List/Util.pm is not
owned by any package
$ rpm -qf /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Scalar/Util.pm
file /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Scalar/Util.pm is
not owned by any package
$ rpm -qf /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/Util.bs
file /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/Util.bs
is not owned by any package
$ rpm -qf /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/Util.so
perl-5.8.8-10.el5_2.3
$ rpm -qf /usr/share/man/man3/List::Util.3pm
file /usr/share/man/man3/List::Util.3pm is not owned by any package
$ rpm -qf /usr/share/man/man3/Scalar::Util.3pm
file /usr/share/man/man3/Scalar::Util.3pm is not owned by any package
$ rpm -qf /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/.packlist
file /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/.packlist
is not owned by any package
$

パッケージ管理下の Util.so 以外を rename。

# mv -i /usr/lib/perl5/5.8.8/i386-linux-thread-multi/List/Util.pm{,_20080628}
# mv -i /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Scalar/Util.pm{,_20080628}
# mv -i /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/Util.bs{,_20080628}
# mv -i /usr/share/man/man3/List::Util.3pm{,_20080628}
# mv -i /usr/share/man/man3/Scalar::Util.3pm{,_20080628}
# mv -i /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/List/Util/.packlist{,_20080628}

エラーが発生しないことを確認。

$ perl -e 'use Scalar::Util qw(weaken)'
$

その後、無事スクリプトが動作することを確認できました。
みなさま、ありがとうございました。



centos-users メーリングリストの案内