'perlbrew list-modules' возвращает 'Perl' и ничего больше - PullRequest
0 голосов
/ 23 января 2019

У меня Ubuntu 16.04, и я установил Perl 5.8.7,5.18.2 как с активированными потоками, так и с 5.18.1 без потоков.Цель состояла в том, чтобы использовать версию Perl с потоками вместо разветвлений, поскольку у меня есть несколько сценариев, уже выполненных с threds, и разветвления не являются правильными многопоточными моделями (он просто разветвляет процессы).Первая проблема, которую я получаю, заключается в установке модулей с помощью команды cpanm -fi [name_of_module].На самом деле команда вообще ничего не возвращает!просто "Perl".Тот же самый факт случается, когда я пытаюсь установить модули, которые я хочу использовать в своих скриптах.Я думаю, что эта проблема связана с тем фактом, что я могу использовать «шаги» только тогда, когда я запускаю сценарии без sudo (например ,perper [name_of_the_script]), в то время как когда я запускаю его с помощью «sudo perl [name_of_the_script]» говорит «текущая версия Perl не поддерживает потоки!Это довольно странно.Параметры среды perlbrew установлены правильно, и когда я набираю '' perl '', система, как и ожидалось, подключается к каталогу новой версии.

Не знаю, как поступить

1 Ответ

0 голосов
/ 01 февраля 2019

Я вижу, что вы разместили несколько вопросов в одном абзаце.Я постараюсь ответить, что смогу.

cpanm -fi XXX не "вообще ничего не возвращает"

Я не уверен, что получил эту часть.Если XXX не удалось установить, вероятно, на экране должны появиться некоторые сообщения об ошибках.Тот факт, что perlbrew list-modules печатает ничего, кроме Perl, подразумевает, что, вероятно, ничего не установлено.

Возможно, ваш исполняемый файл cpanm - это просто установка вещей для системного perl.Вы можете убедиться в этом, проверив первую строку head =cpanm.Если это не #!/usr/bin/env perl, это, вероятно, неправильно.Вы хотите, чтобы тот установил: perlbrew install-cpanm

sudo perl

Интересно, правильно ли установлен ваш PATH - Запуск perl -V после perlbrew use 5.8.7 может показать вам достаточно информации о версии ипоэтому скажите вам, работает ли сам perlbrew правильно.

Возможно, вам также нужен sudo -E perl.sudo сбрасывайте переменные env, если только вы не попросите об этом (опция -E), и, вероятно, необходим PERL5LIB.

...