On 08/07/12 23:36, Jan de Groot wrote:
On za, 2012-07-07 at 13:25 -0400, Dave Reisner wrote:
Hey all,
Allan pushed glib 2.16-2 into [testing] which removes /lib as a directory, replacing it with a symlink. A bit of advice...
- In the simplest case, the upgrade can be done as simply as:
pacman -Syu --ignore glibc && pacman -S glibc
- Since nothing is ever simple, if the above still fails on installation of glibc (with a somewhat cryptic "/lib exists" error), you'll need to figure out what's still in /lib that doesn't belong to glibc. Generally this will end up being modules/. pacman -Qo /lib/* will pinpoint what needs fixing/removing. Deal with anything that isn't owned explicitly by glibc and complete the installation.
It shouldn't need to be said, but I'll mention it anyways:
Do. Not. Use. (the) --force. Obi-wan approves of this.
I didn't need --force to fuck up my system. When I upgraded like above, I got file conflicts because of some depmod files in /lib/modules, combined with an old ancient udev-compat package. I removed udev-compat and the files, but there were still some empty directories in /lib. When running pacman -S glibc, pacman didn't detect any file conflicts, installed the new glibc, told me that it could not extract /lib and then left my system in a state that couldn't execute a single command anymore.
Thanks, that was a case I had missed in patching pacman to detect these conflicts early. These two patches should catch all issues noted so far during the conflict checking stage and prevent these rouge extractions: http://mailman.archlinux.org/pipermail/pacman-dev/2012-July/015678.html http://mailman.archlinux.org/pipermail/pacman-dev/2012-July/015679.html Allan