'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.

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