替換不正確的依賴包
這台機器有一個 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(它似乎被凍結),而且做很多事情都相當困難。我認為問題與圖形驅動程序有關。任何幫助,將不勝感激。
讓pacman處理依賴問題
我假設您已嘗試使用(您可能還想傳遞
--asdeps
給pacman)簡單地安裝所需的軟體包:pacman -S nvidia-304xx lib32-nvidia-304xx-libgl
pacman應該通知您有關發生的衝突並詢問您是否要刪除衝突的軟體包:只需回答“是”。
考慮首先更改為救援模式,以防萬一,通過發出:
systemctl isolate rescue.target
或附加
systemd.unit=rescue.target
到核心參數添加啟動時間。現在假設這不起作用:嘗試下一個解決方案。
從現場媒體 chroot 進入您的安裝
使用 live 媒體啟動,然後掛載你的根分區並將 /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跳過所有依賴項檢查):pacman -Rdd nvidia-libgl lib32-nvidia-libgl mesa
安裝你真正想要的包(你可能還想傳遞
--asdeps
給pacman):pacman -S nvidia-304xx lib32-nvidia-304xx-libgl
希望在安裝這些軟體包後,依賴關係再次得到滿足。
退出 chroot:
exit umount /mnt/dev umount /mnt/proc umount /mnt/sys umount /mnt
交叉手指並重新啟動。
您實際上可以嘗試
pacman -Rdd
啟動並執行到您的安裝中——但我認為從實時媒體中進行 chroot 這樣做更安全。