让吃豆人处理依赖问题

让吃豆人处理依赖问题

该机器配有 NVIDIA GeForce 7350 LE 显卡,我意识到在设置 Arch Linux 机器时设置了错误的图形驱动程序。我在下载软件的过程中libgl也选择了错误的版本。lib32-libgl

安装的软件包是:nvidia-libgllib32-nvidia-libglmesa

所需的包是:nvidia-304xxlib32-nvidia-304xx-libgl

问题是:如何安全地卸载前一个软件包并安装后者而不弄乱依赖项?系统上的许多软件包都依赖于前 3 个软件包。我对 Arch Linux 中的软件包管理完全陌生。

更新:我下载了 XFCE 桌面环境和 LXDM 显示管理器。此时,计算机在启动过程中在显示“到达目标图形界面”后挂起。我可以切换到另一个 tty 并登录,但它不断地将我切换回 tty1(它似乎被冻结),并且很难执行任何操作。我认为问题与图形驱动程序有关。任何帮助,将不胜感激。

答案1

吃豆人处理依赖问题

我假设您尝试使用简单地安装所需的软件包(您可能还想传递--asdeps吃豆人):

pacman -S nvidia-304xx lib32-nvidia-304xx-libgl

吃豆人应该通知您出现的冲突,并询问您是否要删除冲突的软件包:只需回答“是”。

考虑首先更改为救援模式,以防万一,通过发出:

systemctl isolate rescue.target

或者追加systemd.unit=rescue.target到内核参数中添加启动时间。

现在假设这不起作用:尝试下一个解决方案。

从实时媒体 chroot 到您的安装

使用实时介质启动,然后挂载根分区并将 /dev /sys /proc 绑定到刚刚挂载的根目录中:

mount /dev/sd<X><n> /mnt
mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys
mount -o bind /proc /mnt/proc

chroot进入你的 archlinux 安装:

chroot /mnt

并删除不需要的包(-dd告诉吃豆人跳过所有依赖项检查):

pacman -Rdd nvidia-libgl lib32-nvidia-libgl mesa

安装您真正想要的软件包(您可能还想传递--asdeps吃豆人):

pacman -S nvidia-304xx lib32-nvidia-304xx-libgl

希望安装这些软件包后,依赖关系能够再次得到满足。

退出 chroot:

exit
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt

交叉手指并重新启动。

您实际上可以尝试pacman -Rdd启动并运行到您的安装中 - 但我认为从实时媒体进行 chroot 这样做更安全。

相关内容