Арх Линукс Перл. (дампер данных) неопределенный символ Perl_xs_apiversion_bootcheck

После недавнего обновления Perl не может выполнить большинство сценариев в моей системе Arch Linux.

В большинстве случаев он дает сбой из-за неопределенного символа в модуле Data::Dumper. В других случаях это происходит из-за Parser.so с тем же неопределенным символом Perl_xs_apiversion_bootcheck

Perl v5.22.0 Data::Dumper обновлен (2.154).

Полная ошибка:

/usr/bin/perl: symbol lookup error: perl5/lib/perl5/x86_64-linux-thread-multi/auto/Data/Dumper/Dumper.so: undefined symbol: Perl_xs_apiversion_bootcheck

Модули уже пробовал переустанавливать, не помогло.

Я нашел эту тему: Ошибка запуска Perl-скрипта на двух разных компьютерах

Они говорят о проблемах разных версий perl, которых здесь, похоже, нет.

Любые другие идеи? (Переустановите perl, так как отсюда все выглядит невозможным...)

Спасибо


person mnzl    schedule 09.07.2015    source источник
comment
Вы сами обновляли Perl или он был частью вашего дистрибутива Linux? Я помню случай, когда в openSUSE вставили сломанный Data::Dumper.   -  person simbabque    schedule 09.07.2015
comment
Произошло обновление: archlinux.org/packages/   -  person simbabque    schedule 09.07.2015
comment
Но у них есть последняя версия, выпущенная в конце 2014 года... metacpan.org/changes/distribution /Дампер данных. Значит, это должно быть что-то другое.   -  person simbabque    schedule 09.07.2015
comment
Perl является частью Arch Linux. Неделю назад все работало, даже DataDumper. Я не могу сказать, какое обновление вызывает проблему, так как всегда была куча обновлений perl (archlinux.org/packages/?sort=-last_update&q=perl)   -  person mnzl    schedule 09.07.2015
comment
Хорошая связанная проблема: я не могу обновить все модули с помощью cpan, потому что при обновлении возникает та же проблема... -.-   -  person mnzl    schedule 09.07.2015


Ответы (1)


Arch Linux недавно обновился с Perl 5.20 до Perl 5.22. Они не совместимы с ABI, поэтому любые модули XS, установленные для Perl 5.20, необходимо пересобрать, иначе вы получите ошибки, подобные той, которую вы описываете.

Пакет Arch perl-5.22.0-1 включает Data::Dumper 2.158. Поскольку вы говорите, что у вас 2.154, вы должны вручную установить обновление до Data::Dumper для Perl 5.20. Вам нужно удалить эту (ныне устаревшую) версию.

pacman -Qi perl-data-dumper что-нибудь сообщает? Если это так, вы можете попробовать pacman -R perl-data-dumper.

Обновление: похоже, вы устанавливали модули в системные каталоги Perl, используя cpan. Это приводит к смешиванию файлов, установленных pacman, и файлов, установленных cpan, поэтому это не рекомендуется.

Вам следует рассмотреть возможность установки CPANPLUS::Dist::Arch и вместо этого использовать cpanp. Вы можете сделать это с помощью:

sudo pacman -S perl-cpanplus-dist-arch
setupdistarch

После этого установка модулей с помощью cpanp создаст файл пакета и установит его с помощью pacman. Затем вы можете использовать pacman для их удаления.

person cjm    schedule 09.07.2015
comment
ошибка: пакет «perl-data-dumper» не найден. Я установил все через cpan. Я постараюсь удалить эту версию. Это должно исправить мою ошибку. - person mnzl; 10.07.2015
comment
Я мог вручную удалить модуль Dumper. После обновления cpan все заработало - person mnzl; 10.07.2015