【问题标题】:Trouble Installing New Version of Perl Using Perlbrew使用 Perlbrew 安装新版本的 Perl 时遇到问题
【发布时间】:2012-06-11 16:39:05
【问题描述】:

因此,根据我在 stackoverflow 上获得的说明,我尝试使用 perlbrew 在我的 64 位 Solaris 虚拟机上安装新版本的 Perl,以便最终安装“cpanm”并安装 CGI 和 DBI 模块,如以及 DBD::Oracle 驱动程序。这些是我遵循的步骤:

1) 打开终端窗口并以 root 用户身份登录。然后安装以下包...

  • pkg install system/header
  • pkg install gcc-45
  • pkg install developer/build/gnu-make
  • pkg install archiver/gnu-tar

2) 安装 perlbrew...

  • curl -kL http://install.perlbrew.pl | bash

3) 接下来,打开 ~/.bash_profile 或 ~/.profile 并附加以下代码行..

  • vi ~/.bash_profile 或 vi ~/.profile
  • 在文件末尾追加source ~/perl5/perlbrew/etc/bashrc
  • 退出根
  • 重新登录到根目录
  • 此外,如果接下来的几个步骤似乎不起作用,您可能必须通过输入:source ~/perl5/perlbrew/etc/bashrc 手动获取文件。

4) 开始安装新的 Perl。

  • echo $PERLBREW_ROOT --> 这应该等于 /home/oracle/perl5/perlbrew
  • perlbrew -v install perl-5.16.0 -Dcc=gcc

    安装输出:

Test Summary Report
    -------------------
    ../cpan/CGI/t/tmpdir.t                                          (Wstat: 0 Tests: 9 Failed: 0)
      TODO passed:   3, 6, 8
    ../cpan/Socket/t/getnameinfo.t                                  (Wstat: 256 Tests: 14 Failed: 1)
      Failed test:  10
      Non-zero exit status: 1
    Files=2334, Tests=522101, 1212 wallclock secs (90.50 usr 58.34 sys + 533.70 cusr 288.26 csys = 970.80 CPU)
    Result: FAIL
    *** Error code 1
    make: Fatal error: Command failed for target `test_harness'
    Installed /home/oracle/perl5/perlbrew/build/perl-5.16.0 as perl-5.16.0 successfully. Run the following command to switch to it.

      perlbrew switch perl-5.16.0
  • perlbrew switch perl-5.16.0

但是,当我尝试切换到新的 perl 时,它显示:perl-5.16.0 is not installed。

所以我做了一个ls $PERLBREW_ROOT,发现它包含一个bin、build、build.log、Config.pm、dists等和perls目录。因此我认为新的 Perl 应该安装在 perls 目录中,但是执行ls $PERLBREW_ROOT/perls 表明 perls 目录中没有任何内容。有谁知道可能出了什么问题?

【问题讨论】:

    标签: perl gcc solaris cpan perlbrew


    【解决方案1】:

    当它由于测试失败而失败时,它会误报它正在安装。如果您认为测试失败是可以接受的,您可以跳过测试再次运行它:

    perlbrew -v install perl-5.16.0 --notest -Dcc=gcc
                                    ^^^^^^^^
    

    这是失败的测试:

    my $expect_host = gethostbyaddr( inet_aton( "127.0.0.1" ), AF_INET );
    defined $expect_host or $expect_host = "127.0.0.1";
    ( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICSERV );
    is( $host, $expect_host, "\$host is $expect_host for NS" );
    

    如果您在日志输出中向上滚动,您将看到您实际获得的 $host 和 $expect_host 的值。

    【讨论】:

    • 所以这似乎确实有效,并且现在 perls 目录中似乎确实有一个 perl-5.16.0。但是,当我使用 cpanm -v DBI 安装 DBI 模块时,它仍然失败。我将输出放在 OP 中。
    • 为了更好的结果,开始一个新问题
    • 你的问题会得到更多的曝光,弄清楚什么是对什么的回答会更简单。
    • 您需要提供比您发布的信息更多的信息。我们不知道哪些测试失败以及失败的原因,因此我们无法帮助您解决失败问题。
    • “安装 DBI 失败。有关详细信息,请参阅 /home/oracle/.cpanm/build.log。”
    猜你喜欢
    • 1970-01-01
    • 2023-02-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    相关资源
    最近更新 更多