Norbert Zeh said the following at 07/20/2012 05:34 PM :
pacman -Su
Not OK:
[root@shack n7dr]# pacman -Su :: Starting full system upgrade... resolving dependencies... looking for inter-conflicts...
Targets (1): glibc-2.16.0-2
Total Installed Size: 33.94 MiB Net Upgrade Size: 0.83 MiB
Proceed with installation? [Y/n] (1/1) checking package integrity [##########################################################################################] 100% (1/1) loading package files [##########################################################################################] 100% (1/1) checking for file conflicts [##########################################################################################] 100% error: failed to commit transaction (conflicting files) glibc: /lib exists in filesystem Errors occurred, no packages were upgraded.
I got the same error at that point. What this means is that you either have some unowned (by any package) files in /lib (/lib/modules/* is a good candidate) or you have some other packages (most likely from AUR) owning files under /lib. The wiki page explains well how to look for them. At least, I followed those instructions and managed to identify the packages that blocked the upgrade. The key here really seems to be to make sure that glibc is the only package which at this point owns anything under /lib. I think in my case it also helped to uninstall some packages and reinstall them after the glibc upgrade. Keep pushing, you're almost there ;)
The instructions (as so often) are not clear. ---- If after this the "pacman -Su" still has conflicts with /lib, this is likely because a package on your system other than glibc owns files in /lib. Such packages can be detected using: $ grep '^lib/' /var/lib/pacman/local/*/files ---- So this gives:
root@shack tmp]# grep '^lib/' /var/lib/pacman/local/*/files /var/lib/pacman/local/glibc-2.15-10/files:lib/ /var/lib/pacman/local/glibc-2.15-10/files:lib/ld-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/ld-linux.so.2 /var/lib/pacman/local/glibc-2.15-10/files:lib/libBrokenLocale-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libBrokenLocale.so.1 /var/lib/pacman/local/glibc-2.15-10/files:lib/libSegFault.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libanl-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libanl.so.1 /var/lib/pacman/local/glibc-2.15-10/files:lib/libc-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libc.so.6 /var/lib/pacman/local/glibc-2.15-10/files:lib/libcidn-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libcidn.so.1 /var/lib/pacman/local/glibc-2.15-10/files:lib/libcrypt-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libcrypt.so.1 /var/lib/pacman/local/glibc-2.15-10/files:lib/libdl-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libdl.so.2 /var/lib/pacman/local/glibc-2.15-10/files:lib/libm-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libm.so.6 /var/lib/pacman/local/glibc-2.15-10/files:lib/libmemusage.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libnsl-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libnsl.so.1 /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_compat-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_compat.so.2 /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_db-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_db.so.2 /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_dns-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_dns.so.2 /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_files-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_files.so.2 /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_hesiod-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_hesiod.so.2 /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_nis-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_nis.so.2 /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_nisplus-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libnss_nisplus.so.2 /var/lib/pacman/local/glibc-2.15-10/files:lib/libpcprofile.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libpthread-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libpthread.so.0 /var/lib/pacman/local/glibc-2.15-10/files:lib/libresolv-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libresolv.so.2 /var/lib/pacman/local/glibc-2.15-10/files:lib/librt-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/librt.so.1 /var/lib/pacman/local/glibc-2.15-10/files:lib/libthread_db-1.0.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libthread_db.so.1 /var/lib/pacman/local/glibc-2.15-10/files:lib/libutil-2.15.so /var/lib/pacman/local/glibc-2.15-10/files:lib/libutil.so.1 [root@shack tmp]#
I *think* that this means that in fact glibc owns all the files. So I don't understand what I'm supposed to do next. The wiki simply says that it is "most likely" that there are files that aren't owned by glibc. It doesn't seem to say what to do when glibc *does* own all the files. Maybe I'm missing an instruction somewhere, but I don't see it. Doc -- Web: http://www.sff.net/people/N7DR