3

The machine has a NVIDIA GeForce 7350 LE graphics card, and I realised that I set up the wrong graphics driver when setting up an Arch Linux machine. I also chose the wrong versions of libgl and lib32-libgl in the course of downloading software.

The installed packages are: nvidia-libgl, lib32-nvidia-libgl, and mesa.

The needed packages are: nvidia-304xx and lib32-nvidia-304xx-libgl.

The question is: how can I safely uninstall the former packages and install the latter without messing up dependencies? Many packages on the system rely on those first 3. I am completely new to package management in Arch Linux.

Update: I downloaded the XFCE desktop environment and the LXDM display manager. At this point the computer hangs during boot after saying "reached target graphical interface". I can switch to another tty and log in, but it constantly switches me back to tty1 (where it appears to be frozen) and it's rather difficult to do much of anything. I think the problem has to do with the graphics drivers. Any help would be appreciated.

  • assuming you don't have a lot of configuration you'd need back, you could reinstall X11 and then install your packages, the uninstall of X11 should catch your display drivers as well, but might also clobber graphical programs you have installed. An alternative would be to output the dependency tree to a file and make sure you reinstall them after. – Centimane Nov 25 '15 at 19:04
3
+100

Let pacman handle dependency issues

I assume you have tried to simply install the wanted packages using (you might also want to pass --asdeps to pacman):

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

pacman should inform you about arising conflicts and ask you whether you want to remove conflicting packages: simply answer "Yes".

Consider changing to a rescue mode first, just in case, by issuing:

systemctl isolate rescue.target

or append systemd.unit=rescue.target to the kernel parameters add boot time.

Now assuming that did not work: try the next solution.

chroot into your installation from a live medium

Boot using a live medium, then mount you root partition and bind /dev /sys /proc into the just mounted root directory:

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 into your archlinux installation:

chroot /mnt

And remove the unwanted packages (-dd tells pacman to skip all dependency checks):

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

Install the package you actually wanted (you might also want to pass --asdeps to pacman):

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

Hopefully after installing these packages the dependencies are fulfilled again.

Exit the chroot:

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

Cross your fingers and reboot.

You could actually try and run pacman -Rdd booted into your installation – but I consider doing so safer chrooted from a live medium.

  • 1
    I suppose you meant to say pacman -Rdd nvidia-libgl lib32-nvidia-libgl mesa? – Dmitry Grigoryev Nov 27 '15 at 8:53
  • @DmitryGrigoryev You are correct; thanks for catching that. – Felix Dietrich Nov 27 '15 at 9:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy