Кажется, ваш 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.

0 ответов

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