Debian のアップグレードが失敗し、Perl の問題が発生する

Debian のアップグレードが失敗し、Perl の問題が発生する

そこで、debian のアップグレード、upgrade と dist-upgrade の両方を詰め込みました。私は yum に慣れていますが、それは言い訳にはなりません。

状況がおかしくなってきました。ほとんどのことはうまくいきましたが、bugzilla のインストールが失敗しました。bugzilla をロードすると 500 エラーが発生し、error.log に記録されます。

[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] Can't locate Email/Address.pm in @INC (@INC contains: . /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl) at Bugzilla/Mailer.pm line 48.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] BEGIN failed--compilation aborted at Bugzilla/Mailer.pm line 48.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] Compilation failed in require at Bugzilla/Token.pm line 35.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] BEGIN failed--compilation aborted at Bugzilla/Token.pm line 35.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] Compilation failed in require at Bugzilla/Auth/Persist/Cookie.pm line 37.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] BEGIN failed--compilation aborted at Bugzilla/Auth/Persist/Cookie.pm line 37.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] Compilation failed in require at Bugzilla/Auth.pm line 37.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] BEGIN failed--compilation aborted at Bugzilla/Auth.pm line 37.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] Compilation failed in require at Bugzilla.pm line 31.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] BEGIN failed--compilation aborted at Bugzilla.pm line 31.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] Compilation failed in require at /var/www/bugzilla/index.cgi line 34.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] BEGIN failed--compilation aborted at /var/www/bugzilla/index.cgi line 34.
[Fri Jun 05 12:34:16 2009] [error] [client 172.20.0.160] Premature end of script headers: index.cgi

また、Bugzilla から checksetup.pl を実行すると、途中で終了してしまうようです。

Checking user setup ...
Removing existing compiled templates ...
Precompiling templates ...
Not a subroutine reference at /usr/share/perl5/Bugzilla/Template.pm line 59.
Compilation failed in require at /usr/share/bugzilla/lib/checksetup.pl line 1291

perl と perl-base の両方を再インストールしました。

apt-get install --reinstall perl-base
apt-get install --reinstall perl

そして成功しなかった。

ご協力いただければ幸いです。

また、このサイトは私のようなシステム初心者にとって救世主となりつつあり、私は受けたすべての援助に本当に感謝しています。

キリスト教徒

答え1

CPAN シェルですでにこの問題を解決されているようですが、Debian パッケージを使用してインストールする方がよいでしょう。そうすれば、アップグレードなどをチェックする場所が 1 つだけになります。実際、最初から Debian Bugzilla パッケージを使用していれば、この問題に遭遇することはなかったはずです。

apt-get install libemail-address-perl

一般的なケース:

apt-cache search Email::Address 

次のような出力が得られます (ただし、パッケージが複数になる場合もあります)。

libemail-address-perl - RFC 2822 Address Parsing and Creation

次に、オプションでこれを使用して、パッケージが正しいものであることを確認できます。

apt-cache show libemail-address-perl

そして最後に、最初に始めた apt-get install です。

答え2

Bugzilla の新しいバージョンを使用する代わりに、Perl 5.8 を別のディレクトリに (再) インストールすることを検討してください。OS を上書きしないでください。

過去に、OS バージョンと Perl のアプリ バージョンを別のディレクトリに保存することがいかに重要かを学びました。OS に Perl バージョン要件を管理/満たさせ、別のディレクトリでアプリの要件を満たすようにしてください。

答え3

  perl -MCPAN -e shell 
  install Email::Address

たぶん?私は Perl の人間ではないので...

答え4

apt-get -f install を実行してみてください。壊れたパッケージが修復される可能性があります。

関連情報