perl 5.18.2 нормально работал в моей системе Ubuntu 14.04, пока мне не понадобился пакет из CPAN, который не существовал как пакет Ubuntu. Я установил его как root, и он не работал, но затем процесс установки изменил права доступа к чему-либо. Теперь я не могу запустить Perl как обычный пользователь.
Как обычный пользователь, "perl -v" работает. Но «perl -V» дает мне следующее:
$ perl -V
Can't locate Config.pm: Permission denied.
BEGIN failed--compilation aborted.
Если я запускаю его под sudo, то это работает:
$ sudo perl - V
...
@INC:
/etc/perl
/usr/local/lib/perl/5.18.2
/usr/local/share/perl/5.18.2
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.18
/usr/share/perl/5.18
/usr/local/lib/site_perl
.
Действительно, файл Config.pm существует в /usr/lib/perl/5.18, и его разрешения доступны для чтения обычным пользователям. Итак, что-то переключилось на root, и я не знаю, что произошло.
Кто-нибудь видел это раньше и знает, что я должен искать? В отчаянии я даже удалил Perl и переустановил его обратно. Не сработало Хотя что-то забавное ... после удаления у меня все еще был исполняемый файл / usr / bin / perl. Не уверен, что это связано ...
Любая помощь будет признательна!
Рэй
От некоторого гугления (см. здесь ) я понимаю, что, если один из каталогов в пути @INC недоступен, от поиска Config.pm (или любой модуль) отказываются. Так проверяют, не ли какой-либо из каталогов читаем "всеми".
Странно достаточно, несуществующее имя каталога в пути @INC не является никакой проблемой.
Можно попробовать установку local::lib
. Но необходимо будет, вероятно, переустановить некоторые модули Perl.
sudo apt-get install cpanminus
cpanm --local-lib=~/perl5 local::lib eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
echo "export PERL5LIB=\"$HOME/perl5/lib/perl5\"">>~/.bashrc && echo "export PERL_MB_OPT=\"--install_base '$HOME/perl5'\">>~/.bashrc && echo "export PERL_LOCAL_LIB_ROOT=$HOME/perl5">>~/.bashrc
Теперь, откройте новый терминал (или работайте source ~/.bashrc
), и попытайтесь установить некоторый модуль Perl.
Работы для меня! Надежда работает на Вас также! Иначе это означает, что Ваша установка CPAN повреждается. В этом случае используйте команду sudo dpkg --list | grep libcpan
, чтобы перечислить пакеты всего cpan, попробовать к пакетам обновления сначала.
, Если все еще не работает попытка удалить и переустановить всех их! После этого установите local::lib
снова повторение шагов выше.