Проблема с расположением модуля Perl

Я использую Ubuntu 20.04 LTS.

Я выполнил следующие команды, чтобы попытаться подключиться к моей базе данных PostgreSQL:

sudo -i -u postgres
postgres@{username}:~$ psql

Это вызвало следующую ошибку:

Can't locate warnings.pm:   /usr/local/lib/x86_64-linux-gnu/perl/5.30.0/warnings.pm: Permission denied at /usr/bin/psql line 19.

Что я впоследствии обнаружено, что каталог '/ usr / local / lib / x86_64-linux-gnu' не существует, поэтому, конечно, '/usr/local/lib/x86_64-linux-gnu/perl/5.30.0/warnings.pm 'не может быть обнаружен. Выполнение команды perl -e 'print "@INC";' | tr "" "\ n" дал мне следующие результаты:

/etc/perl
/usr/local/lib/x86_64-linux-gnu/perl/5.30.0
/usr/local/share/perl/5.30.0
/usr/lib/x86_64-linux-gnu/perl5/5.30
/usr/share/perl5
/usr/lib/x86_64-linux-gnu/perl/5.30
/usr/share/perl/5.30
/usr/local/lib/site_perl
/usr/lib/x86_64-linux-gnu/perl-base

Кажется, это раскрывает проблему, поскольку ни один из путей, начинающихся с '/ usr / local', на самом деле не существует (другие делают, однако). Можно ли решить эту проблему, изменив пути perl с помощью .bashrc? Если да, то что именно я пишу? (Я просмотрел это, но запутался.) И может ли кто-нибудь объяснить, почему это произошло?

0
задан 14 November 2020 в 03:24

1 ответ

Решение этой проблемы оказалось именно таким, как я и подозревал: мне просто нужно было отредактировать мой путь PERL5LIB так, чтобы пути, не содержащие '/local/', были первыми. Я изменил свой .bashrc на export PERL5LIB=/usr/share/perl/5.30:/etc/perl:/usr/lib/x86_64-linux-gnu/perl5/5.30:/usr/share/perl5:/ usr/lib/x86_64-linux-gnu/perl/5.30:/usr/lib/x86_64-linux-gnu/perl-base. Тем не менее, я все еще немного озадачен тем, как это произошло - почему эти пути не указывают ни на что.

0
ответ дан 15 November 2020 в 01:50

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

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