[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 メーリングリストの案内