该机器配有 NVIDIA GeForce 7350 LE 显卡,我意识到在设置 Arch Linux 机器时设置了错误的图形驱动程序。我在下载软件的过程中libgl
也选择了错误的版本。lib32-libgl
安装的软件包是:nvidia-libgl
、lib32-nvidia-libgl
和mesa
。
所需的包是:nvidia-304xx
和lib32-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 这样做更安全。