重建旧的 Perl 模块

重建旧的 Perl 模块

我刚刚在 Arch Linux ( ) 上进行了系统更新,pacman -Syu并看到了有关旧 Perl 模块的警告:

WARNING: '/usr/lib/perl5/site_perl' contains data from at least 2 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: '/usr/lib/perl5/vendor_perl' contains data from at least 8 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'

运行推荐的命令会产生以下结果:

$ pacman -Qqo '/usr/lib/perl5/site_perl'
gscan2pdf
perl-filesys-df
$ pacman -Qqo '/usr/lib/perl5/vendor_perl'
perl-config-general
perl-data-uuid
perl-goo-canvas
perl-gtk2-ex-simple-list
perl-gtk2-imageview
perl-pdf-api2
perl-sane
perl-set-intspan

我之前在Perl版本更新的时候也遇到过类似的情况。如果我没记错的话,那些 Perl 包需要重建;然而,我不记得在哪里找到了这样做的咒语。请注意,我完全没有使用 Perl 的经验。这些模块仅由以下人员使用gscan2pdf我通过 AUR 安装的。如何重建这些 Perl 模块?

答案1

重建我使用的perlAURpacmanager亚乌尔特

yaourt -S --asdeps perl-gnome2-gconf glade-perl perl-crypt-blowfish perl-gnome2-vte perl-expect perl-crypt-rijndael perl-gtk2-ex-simple-list perl-io-stty perl-io-tty perl-net-arp perl-yaml perl-crypt-cbc perl-gtk2-unique perl-socket6 uuid

所以只需将库替换为给您的库即可pacman

yaourt -S --asdeps gscan2pdf perl-filesys-df perl-config-general perl-data-uuid perl-goo-canvas perl-gtk2-ex-simple-list perl-gtk2-imageview perl-pdf-api2 perl-sane perl-set-intspan

更新2018年附加

Arch 中的更新perl 5.28意味着您必须再次重建所有不受支持的软件包。修复依赖错误的解决方案是消除冒犯者尿素尿率 perl应用程序然后删除孤立perl库并更新您的系统:

sudo pacman -Rns $(pacman -Qtdq)
sudo pacman -Syu

最后重新安装尿素尿率 perl应用。

更新2019年附加

现在更新后perl 5.30.0pacman发出有关旧库的警告perl。这次我有一个大更新,需要执行以下操作:

sudo pacman -R $conflicting_perl_mod_&_app
sudo pacman -Syu
# pacman now generates a warning for unused perl libs
pacman -R $(pacman -Qqo '/usr/lib/perl5/5.28')
pacman -S $perl_app
# optional remove orphaned packages
sudo pacman -Rns $(pacman -Qtdq)
sudo pacman -Syu

答案2

添加到 Stuart Cardall 的答案中,制作一个 .sh 脚本来重建列出的 perl 模块,然后您可以在更新 perl 时运行该脚本并收到该警告:

#!/bin/bash    
yaourt -S --asdeps --noconfirm $(pacman -Qqo '/usr/lib/perl5/vendor_perl')
yaourt -S --asdeps --noconfirm $(pacman -Qqo '/usr/lib/perl5/site_perl')

相关内容