В доступе запрещен запуск Perl

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. Не уверен, что это связано ...

Любая помощь будет признательна!

Рэй

1
задан 30 June 2014 в 15:08

2 ответа

От некоторого гугления (см. здесь ) я понимаю, что, если один из каталогов в пути @INC недоступен, от поиска Config.pm (или любой модуль) отказываются. Так проверяют, не ли какой-либо из каталогов читаем "всеми".
Странно достаточно, несуществующее имя каталога в пути @INC не является никакой проблемой.

1
ответ дан 30 June 2014 в 15:08

Можно попробовать установку local::lib. Но необходимо будет, вероятно, переустановить некоторые модули Perl.

  1. sudo apt-get install cpanminus

  2. cpanm --local-lib=~/perl5 local::lib eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)

  3. 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 снова повторение шагов выше.

1
ответ дан 30 June 2014 в 15:08

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

Похожие вопросы: