无法从源代码安装现代Perl

时间:2011-07-15 20:58:58

标签: perl install

Fedora 14

$ uname -a
Linux giles 2.6.35.13-92.fc14.i686 #1 SMP Sat May 21 17:39:42 UTC 2011 i686 i686 i386 
GNU/Linux

尝试从源代码安装现代Perl(大于5.12.0的任何东西对我来说都有这个问题)失败。这是我尝试的:

wget http://search.cpan.org/CPAN/authors/id/J/JE/JESSE/perl-5.14.1.tar.gz
tar -zxvf perl-5.14.1.tar.gz
cd perl-5.14.1
sh Configure -d
make

我总是(根据版本略有不同)在一段时间后会出现这样的错误消息:

Running Makefile.PL in ext/attributes
../../miniperl -I../../lib Makefile.PL INSTALLDIRS=perl INSTALLMAN1DIR=none   
INSTALLMAN3DIR=none PERL_CORE=1 LIBPERL_A=libperl.a
Writing Makefile for attributes
Writing MYMETA.yml
make[1]: Entering directory `/tmp/perl-5.14.1/ext/attributes'
make[1]: Leaving directory `/tmp/perl-5.14.1/ext/attributes'
Making all in ext/attributes
make all PERL_CORE=1 LIBPERL_A=libperl.a
make[1]: Entering directory `/tmp/perl-5.14.1/ext/attributes'
cp attributes.pm ../../lib/attributes.pm
make[1]: *** No rule to make target `ExtUtils/xsubpp', needed by `attributes.c'.  Stop.
make[1]: Leaving directory `/tmp/perl-5.14.1/ext/attributes'
Unsuccessful make(ext/attributes): code=512 at make_ext.pl line 463.
make: *** [ext/attributes/pm_to_blib] Error 25

有关如何解决这个问题的任何想法?我试过perlbrew,它以同样的方式失败了。我的系统安装了5.12.3所以我知道它必须是可能的,我可以安装5.8.X而没有问题(手工和perlbrew)。

更新 这是我的完整配置输出:http://pastebin.com/4R8rpq8M

这是我的完整输出:http://pastebin.com/NJdd7X21

4 个答案:

答案 0 :(得分:1)

感谢P5P,我能够跟踪它到我的环境。我的.bashrc文件中有以下行

export GREP_OPTIONS="--exclude-from ~/.grep_excludes --color"

似乎在构建过程中排除了事物,而颜色选项却抛弃了其他东西。删除修复问题并完成构建。它确实在t/porting/exec-bit.t中有一次测试失败,但这似乎是安全的。

答案 1 :(得分:0)

我在http://forums.gentoo.org/viewtopic-t-873787-start-0.html看到了:

  

解决 - 腐败/ usr / bin / ls

     

链接到/ bin / ls并且所有内置的确定

如果这实际上是问题所在,我想了解更多有关不起作用的信息。

答案 2 :(得分:0)

xsubpp附带了源代码分发版 - 您可以在dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp中找到它。也许解决方法是将自己复制到lib/ExtUtils/xsubpp并继续运行make

答案 3 :(得分:0)

在这里找到解决方案: http://www.techsutram.com/2011/02/opensuse-113-and-compiling-perl-5123.html

我试图编译perl v5.24.2并且有完全相同的错误 ODBM_File.xs:153:错误:函数âdbmclose的参数太少 make [1]:*** [ODBM_File.o]错误1

我在第153行编辑了文件/ext/ODBM_File/ODBM_File.xs并替换了dbmclose(); ==> dbmclose(分贝);

在此更改之后,make test运行没有任何问题,100%的测试成功,make install也随后工作。

此错误似乎取决于系统,因为我在另一个系统上构建完全相同的版本而没有任何问题。