Проблемы с установкой новой версии 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/perlbrewperlbrew -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
,