'perlbrew list-modules' возвращает 'Perl' и ничего больше
У меня 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 ответ
Я вижу, что вы разместили несколько вопросов в одном абзаце. Я постараюсь ответить, что смог.
cpanm -fi XXX
не "вообще ничего не возвращает"
Я не уверен, что получил эту часть. Если XXX
не удалось установить, вероятно, на экране должны быть сообщения об ошибках. Дело в том, что perlbrew list-modules
ничего не печатает, кроме Perl
подразумевается, что, вероятно, ничего не установлено.
Может быть, что ваш cpanm
Executeble - это просто установка вещей для системного Perl. Вы можете убедиться в этом, проверив первую строку head =cpanm
, Если это не так #!/usr/bin/env perl
, это, вероятно, неправильно. Вы хотите тот, который установлен: perlbrew install-cpanm
судо перл
Интересно, у тебя PATH на самом деле правильно установлен - работает perl -V
после perlbrew use 5.8.7
может показать вам достаточно информации о версии и, следовательно, сказать, правильно ли работает perlbrew.
Вам, вероятно, также нужно sudo -E perl
вместо. sudo
сбросить env vars, если вы не попросите его (-E
вариант), и, вероятно, необходим PERL5LIB.