解决"Perl 5.26依赖关系错误:无法在Arch Linux中准备事务(无法满足依赖项)"

时间:2020-03-21 11:47:16  来源:igfitidea点击:

今天,我试图更新我的Arch Linux桌面,并结束了Perl依赖问题。
但是,我从未直接安装过破坏的Perl包。
我以为是由于Pacman问题。
经过一点搜索Arch Linux论坛,我发现它与Pacman无关,而是Aur。
这是我试图更新我的ARCH系统时获得的错误消息。

$sudo pacman -Syu

示例输出:

:: Synchronizing package databases...
 core 124.1 KiB 131K/s 00:01 [----------------------] 100%
 extra 1667.6 KiB 221K/s 00:08 [----------------------] 100%
 community 3.8 MiB 375K/s 00:10 [----------------------] 100%
 multilib 176.6 KiB 189K/s 00:01 [----------------------] 100%
 archlinuxfr is up to date
 :: Starting full system upgrade...
 :: Replace wxgtk with extra/wxgtk2? [Y/n]
 resolving dependencies...
 looking for conflicting packages...
 error: failed to prepare transaction (could not satisfy dependencies)
 :: gnome-perl: installing perl (5.26.0-1) breaks dependency 'perl<5.25'
 :: gnome-vfs-perl: installing perl (5.26.0-1) breaks dependency 'perl<5.25'
 :: gnomecanvas-perl: installing perl (5.26.0-1) breaks dependency 'perl<5.25'
 :: perl-gnome2-wnck: installing perl (5.26.0-1) breaks dependency 'perl<5.25'
 :: perl-goo-canvas: installing perl (5.26.0-1) breaks dependency 'perl<5.25'
 :: perl-gtk2-imageview: installing perl (5.26.0-1) breaks dependency 'perl<5.25'
 :: perl-gtk2-unique: installing perl (5.26.0-1) breaks dependency 'perl<5.25'

上面的软件包是快门 Screen截图工具的依赖性。
这个Perl依赖问题的实际原因是快门的开发人员已经两三年前停止了开发。
它利用了很多依赖性,这使得非常难以维持。

要解决此问题,或者要卸载快门,或者用于另一个替代方案,或者只是删除快门和所有依赖项,然后再次重新安装。

要删除快门,请运行:

$sudo pacman -R shutter

删除快门后,我们需要使用命令删除所有未使用的依赖项:

$sudo pacman -Rns $(pacman -Qtdq)

或者,我们只能使用如下所示除去有问题的依赖关系。
这样做请小心。
只需确保删除正确的问题Perl包。

$sudo pacman -R perl-gtk2-unique perl-gtk2-imageview perl-goo-canvas perl-gnome2-wnck gnomecanvas-perl gnome-vfs-perl gnome-perl

这次我没有任何问题更新了我的Arch Linux盒子。
更新系统后,我们可以找到快门的任何替代工具,也可以使用Yaourt或者packer重新安装它。

yaourt -S shutter

或者,

packer -S shutter

重新安装Shutter可以再次带来此Perl依赖项问题。