在 Ubuntu 12.04,SE 上安装 libwww-perl

在 Ubuntu 12.04,SE 上安装 libwww-perl

我有一个 Ubuntu 12.04 服务器版本,我通过 ssh 进入。

我正在此服务器上运行 Perl 脚本,但加载时失败

'use LWP::UserAgent;' with error message:
Can't locate LWP/UserAgent.pm in @INC (@INC contains: /home/hermann/scripts/modules/ /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at 1_standalone line 5.
BEGIN failed--compilation aborted at 1_standalone line 5.

因此,为了解决这个问题,我尝试安装 LWP::UserAgent,我被告知方法是:sudo apt-get install libwww-perl

但是当我运行该命令时出现以下错误:

Failed to fetch http://is.archive.ubuntu.com/ubuntu/pool/main/libf/libfont-afm-perl/libfont-afm-perl_1.20-1_all.deb  Size mismatch
Failed to fetch http://is.archive.ubuntu.com/ubuntu/pool/main/libh/libhtml-tagset-perl/libhtml-tagset-perl_3.20-2_all.deb  Size mismatch
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

现在我尝试执行 sudo apt-get update,它似乎运行良好但没有任何变化。我还执行了“sudo apt-get install libwww-perl --fix-missing”,但也失败了。

如何安装 libwww-perl?

答案1

首先,我强烈建议不要直接使用“perl 方式”安装,这只会让事情变得更糟。在 Ubuntu 中你不需要这些。libwww-perl 是标准的 Ubuntu 软件包。

因为这样不管用。你应该先清理一下似乎有问题的安装。首先,尝试像这样清理你的软件包安装:

sudo apt-get install -f
sudo apt-get update --fix-missing

并且只有当您没有收到错误时,才继续安装 libwwww-perl,使用:

sudo apt-get install libwww-perl

还:

您似乎有一个非常不寻常的(非标准)perl 搜索库的目录列表。例如,在寻找库的地方不应该有 /etc/perl,而在 Ubuntu 上您不需要以 /usr/local 开头的任何内容。

要检查包是否已安装,您可以检查以下输出:

dpkg-query -S libwww-perl

检查你的环境是否存在错误的强制 perl 路径:

env | grep PERL

如果这给出任何输出,我会在运行 perl 之前将其从环境中删除:查看您的启动文件(〜/ .bashrc 特别是结束注释这些非标准设置)

祝你好运!

答案2

尝试更换下载服务器。 软件源 -> Ubuntu 软件 -> 下载自:从列表中选择最近的地理位置。

或者

尝试 Perl 安装方式

perl -MCPAN -e 'install Bundle::LWP'

或者

wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/libwww-perl-6.04.tar.gz
tar xzf libwww-perl-6.04.tar.gz
cd libwww-perl-6.04
perl Makefile.PL
make
sudo make install

(我的下载源选择了一个印度服务器来下载文件http://perlmirror.indialinks.com/authors/id/G/GA/GAAS/libwww-perl-6.04.tar.gz

如果你正在主目录中下载 LWP 模块,那么不要忘记将路径添加到你的 perl@INC

相关内容