You are here: Home » Справка и подсказки » Решение проблемы «Warn about old perl modules» - предупреждение о старых модулях Perl

Решение проблемы «Warn about old perl modules» - предупреждение о старых модулях Perl

Теперь пакет perl использует в путях номер версии для скомпилированных модулей. Это означает, что модули, собранные для не соответствующей версии perl не будут больше загружаться и должны быть пересобраны.

pacman предупреждает об устаревших модулях, которые располагаются в неположенных папках примерно следующими сообщениями:

(1/4) Warn about old perl modules
WARNING: '/usr/lib/perl5/core_perl' contains data from at least 1 packages which will NOT be used by the installed perl interpreter.
 -> Run the following command to get a list of affected packages: pacman -Qqo '/usr/lib/perl5/core_perl'
WARNING: 1 file(s) in /usr/lib/perl5/core_perl are not tracked by pacman and need to be rebuilt.
 -> These were most likely installed directly by cpan or a similar tool.
    Run the following command to get a list of these files:
    LC_ALL=C find "/usr/lib/perl5/core_perl" -type f -exec pacman -Qqo {} + |& sed -n 's/^error: No package owns \(.*\)$/\1/p'
WARNING: '/usr/lib/perl5/site_perl' contains data from at least 1 packages which will NOT be used by the installed perl interpreter.
 -> Run the following command to get a list of affected packages: pacman -Qqo '/usr/lib/perl5/site_perl'
WARNING: 51 file(s) in /usr/lib/perl5/site_perl are not tracked by pacman and need to be rebuilt.
 -> These were most likely installed directly by cpan or a similar tool.
    Run the following command to get a list of these files:
    LC_ALL=C find "/usr/lib/perl5/site_perl" -type f -exec pacman -Qqo {} + |& sed -n 's/^error: No package owns \(.*\)$/\1/p'
WARNING: '/usr/lib/perl5/vendor_perl' contains data from at least 7 packages which will NOT be used by the installed perl interpreter.
 -> Run the following command to get a list of affected packages: pacman -Qqo '/usr/lib/perl5/vendor_perl'

Если резюмировать все эти сообщения, то они означают, что в папках /usr/lib/perl5/site_perl/, /usr/lib/perl5/vendor_perl/ и /usr/lib/perl5/core_perl/ расположены модули, которые не могут быть использованы и никогда не будут автоматически обновлены. На данный момент, модули размещаются в папке /usr/lib/perl5/5.26/.

Перед тем, как вы можете их использовать, вы должны пересобрать все затронутые пакеты под новый пакет perl. Это изменение также затрагивает модули, установленные непосредственно через CPAN. Пересборка также понадобиться с последующими мажорными обновлениями perl, такими как 5.28 и 5.30.

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

Чтобы избавиться от этих предупреждений об устаревших модулях и осиротевших файлах, вы можете удалить директории с устаревшими файлами:

sudo rm -rf /usr/lib/perl5/site_perl/
sudo rm -rf /usr/lib/perl5/vendor_perl/
sudo rm -rf /usr/lib/perl5/core_perl/

Предупреждение не исчезнет, пока вы вручную не удалите эти файлы. Пересборка означает, что рабочая версия будет установлена в корректную директорию /usr/lib/perl5/5.26/site_perl/.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *