Кажется, ваш perl и ваш Config.pm имеют разные представления об архитектуре, на которой они работают.
Я пытаюсь установить программу на основе Perl, используя мою систему Perl и local::lib. У программы есть несколько зависимостей, которые я хочу установить с помощью apt, например:libalien-wxwidgets-perl
, ,libgraphics-gnuplotif-perl
и т. д. Я установил local::lib с помощью cpan и добавил строку в свой ~/.zshrc, но кажется, что она не работает. Когда я запускаю, он говорит, что у меня нет разрешений и мне нужно запуститьsudo perl -I. Build.PL
.
В данном случае это ошибка, но я также получу другие ошибки, связанные с разрешениями. Поскольку каталог не находится ниже~/perl5
, я думаю, это потому, чтоlocal::lib
не работает:
Can't create '_build/runtime_params': Permission denied at /usr/local/share/perl/5.34.0/Module/Build/Notes.pm line 110.
Perl также не может найти эти пакеты, установленные apt. В новой системе с установленным вручную local::lib:perl -I. Build.PL
работает без sudo, и Perl находит, например,libwx-perl
.
поэтому я попытался установить local::lib вручную:
wget https://cpan.metacpan.org/authors/id/H/HA/HAARG/local-lib-2.000029.tar.gz
tar xvf local-lib-2.000029.tar.gz
cd local-lib-2.000029
perl Makefile.PL --bootstrap
но я получаю эту ошибку:
Have /usr/lib/x86_64-linux-gnu/perl-base
Want /usr/lib/x86_64-linux-gnu/perl/5.34
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [perl-base]
Config says: [x86_64-linux-gnu-thread-multi]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.
Generating a Unix-style Makefile
Writing Makefile for local::lib
Writing MYMETA.yml and MYMETA.json
Я думаю, это как-то связано с тем, почему perl не может найти пакеты, установленные apt, а также с тем, почему local::lib не работает. Что означает «Ваш perl и ваш Config.pm, похоже, имеют разные представления об архитектуре, на которой они работают»? Может ли это быть связано с тем, что я обновился с Ubuntu 20.04 до 22.04 (вместо новой переустановки)?
По этому вопросу я удалил всеPERL5LIB
строки из моего ~/.zshrc, но ошибка все равно появляется.
Вот Perl -V:
%ENV:
PERL5LIB="/home/joseph/perl5/lib/perl5"
PERL_LOCAL_LIB_ROOT="/home/user/perl5"
PERL_MB_OPT="--install_base "/home/user/perl5""
PERL_MM_OPT="INSTALL_BASE=/home/user/perl5"
@INC:
/home/user/perl5/lib/perl5/5.34.0/x86_64-linux-gnu-thread-multi
/home/user/perl5/lib/perl5/5.34.0
/home/user/perl5/lib/perl5/x86_64-linux-gnu-thread-multi
/home/user/perl5/lib/perl5
/etc/perl
/usr/local/lib/x86_64-linux-gnu/perl/5.34.0
/usr/local/share/perl/5.34.0
/usr/lib/x86_64-linux-gnu/perl5/5.34
/usr/share/perl5
/usr/lib/x86_64-linux-gnu/perl-base
/usr/lib/x86_64-linux-gnu/perl/5.34
/usr/share/perl/5.34
/usr/local/lib/site_perl
Я пытаюсь сделать так, чтобы моя системная установка Perl 5.34 могла работать безsudo
и могу найти зависимости, которые я установил с помощью apt.