Проблемы с установкой новой версии Perl с помощью Perlbrew

Таким образом, основываясь на инструкциях, которые мне давали по stackru, я пытался установить новую версию Perl на мою 64-битную виртуальную машину Solaris, используя perlbrew, чтобы в конечном итоге установить '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 в конец файла
  • выйти из корня
  • войдите в систему как root
  • Кроме того, вам может потребоваться вручную получить файл, введя: 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 ничего нет. Кто-нибудь знает, что может быть не так?

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,

Другие вопросы по тегам