You are not logged in.
Just a heads-up for everyone: https://www.archlinux.org/news/the-lib- … a-symlink/
Offline
*grabs popcorn*
ᶘ ᵒᴥᵒᶅ
Offline
If I have an /usr on a sperated disk/partition, once it brokens, ...
The /lib is just for the maintance mode and for those who sometimes don't have /usr, don't konw why it should be a link to a dir under /usr
Offline
If I have an /usr on a sperated disk/partition, once it brokens, ...
The /lib is just for the maintance mode and for those who sometimes don't have /usr, don't konw why it should be a link to a dir under /usr
This setup has been "broken" on Arch for quite some time.
Offline
Thank you for breaking my system...
$ find /lib -exec pacman -Qo -- {} +
error: cannot determine ownership of directory '/lib'
/lib/libnsl-2.16.so is owned by glibc 2.16.0-1
/lib/libanl.so.1 is owned by glibc 2.16.0-1
/lib/libnss_compat-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_nis-2.16.so is owned by glibc 2.16.0-1
/lib/libpcprofile.so is owned by glibc 2.16.0-1
/lib/libnss_dns-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_files-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_hesiod.so.2 is owned by glibc 2.16.0-1
/lib/libutil-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_files.so.2 is owned by glibc 2.16.0-1
/lib/libnss_dns.so.2 is owned by glibc 2.16.0-1
/lib/libc.so.6 is owned by glibc 2.16.0-1
/lib/ld-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_nisplus-2.16.so is owned by glibc 2.16.0-1
/lib/libutil.so.1 is owned by glibc 2.16.0-1
/lib/libnss_hesiod-2.16.so is owned by glibc 2.16.0-1
/lib/libthread_db.so.1 is owned by glibc 2.16.0-1
/lib/libresolv.so.2 is owned by glibc 2.16.0-1
/lib/libSegFault.so is owned by glibc 2.16.0-1
/lib/libnss_nisplus.so.2 is owned by glibc 2.16.0-1
/lib/libm.so.6 is owned by glibc 2.16.0-1
/lib/libcidn.so.1 is owned by glibc 2.16.0-1
/lib/librt.so.1 is owned by glibc 2.16.0-1
/lib/libm-2.16.so is owned by glibc 2.16.0-1
/lib/libnsl.so.1 is owned by glibc 2.16.0-1
/lib/libpthread.so.0 is owned by glibc 2.16.0-1
/lib/libthread_db-1.0.so is owned by glibc 2.16.0-1
/lib/libmemusage.so is owned by glibc 2.16.0-1
/lib/libBrokenLocale-2.16.so is owned by glibc 2.16.0-1
/lib/libcrypt-2.16.so is owned by glibc 2.16.0-1
error: cannot determine ownership of directory '/lib/modules'
error: cannot determine ownership of directory '/lib/modules/3.3.3-1-ARCH'
error: cannot determine ownership of directory '/lib/modules/3.3.3-1-ARCH/misc'
error: No package owns /lib/modules/3.3.3-1-ARCH/misc/vboxdrv.ko
error: No package owns /lib/modules/3.3.3-1-ARCH/misc/vboxnetflt.ko
error: No package owns /lib/modules/3.3.3-1-ARCH/misc/vboxnetadp.ko
/lib/libcrypt.so.1 is owned by glibc 2.16.0-1
/lib/libpthread-2.16.so is owned by glibc 2.16.0-1
/lib/libresolv-2.16.so is owned by glibc 2.16.0-1
/lib/ld-linux-x86-64.so.2 is owned by glibc 2.16.0-1
/lib/libanl-2.16.so is owned by glibc 2.16.0-1
/lib/librt-2.16.so is owned by glibc 2.16.0-1
/lib/libBrokenLocale.so.1 is owned by glibc 2.16.0-1
/lib/libnss_db-2.16.so is owned by glibc 2.16.0-1
/lib/libc-2.16.so is owned by glibc 2.16.0-1
/lib/libdl-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_nis.so.2 is owned by glibc 2.16.0-1
/lib/libcidn-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_db.so.2 is owned by glibc 2.16.0-1
/lib/libnss_compat.so.2 is owned by glibc 2.16.0-1
/lib/libdl.so.2 is owned by glibc 2.16.0-1
What to do if I get "error: cannot determine ownership"? This isn't described in the wiki.
Last edited by indianahorst (2012-07-14 18:10:28)
Offline
Thank you for breaking my system...
What to do if I get "error: cannot determine ownership"? This isn't described in the wiki.
Just do a rm -fr /lib/modules, then a pacman -Suy
Last edited by krum (2012-07-14 18:28:06)
Offline
What about the Filesystem Hierarchy Standard? The reason /lib and /usr/lib are separate is because /lib should contain the system-essential libraries, kernel modules and the like that are needed to boot the system. On the other hand /usr/lib should contain non-essential libraries. For one this is good because you know what's what but on the other hand if you have /usr on a separate partition (even though it's considered broken) it would mean your system would be unable to boot and to work around that you'd have to mount it from the initrd. I don't see any big advantages to this change. Seeing what other distributions (such as Fedora) are doing with merging /bin and /sbin into their /usr counterparts as well which may, quite frankly, further add to the confusion what is essential to booting a system and what is not.
Honestly, why not just make a /Linux/System32 directory and just put everything in there?
Anyone care to explain the reasoning behind this change?
Offline
What about the Filesystem Hierarchy Standard? The reason /lib and /usr/lib are separate is because /lib should contain the system-essential libraries, kernel modules and the like that are needed to boot the system. On the other hand /usr/lib should contain non-essential libraries. For one this is good because you know what's what but on the other hand if you have /usr on a separate partition (even though it's considered broken) it would mean your system would be unable to boot and to work around that you'd have to mount it from the initrd. I don't see any big advantages to this change. Seeing what other distributions (such as Fedora) are doing with merging /bin and /sbin into their /usr counterparts as well which may, quite frankly, further add to the confusion what is essential to booting a system and what is not.
Honestly, why not just make a /Linux/System32 directory and just put everything in there?
Anyone care to explain the reasoning behind this change?
Because Redhat decided to do this way and because redhat leads a lot of core projects, everybody blindly follow RH.
That's why, /bin and /sbin will be soon a symlink to /usr/bin, and systemd is becoming the "de facto" linux init.
Last edited by krum (2012-07-14 18:32:28)
Offline
Thank you for breaking my system...
$ find /lib -exec pacman -Qo -- {} + error: cannot determine ownership of directory '/lib' /lib/libnsl-2.16.so is owned by glibc 2.16.0-1 /lib/libanl.so.1 is owned by glibc 2.16.0-1 /lib/libnss_compat-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_nis-2.16.so is owned by glibc 2.16.0-1 /lib/libpcprofile.so is owned by glibc 2.16.0-1 /lib/libnss_dns-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_files-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_hesiod.so.2 is owned by glibc 2.16.0-1 /lib/libutil-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_files.so.2 is owned by glibc 2.16.0-1 /lib/libnss_dns.so.2 is owned by glibc 2.16.0-1 /lib/libc.so.6 is owned by glibc 2.16.0-1 /lib/ld-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_nisplus-2.16.so is owned by glibc 2.16.0-1 /lib/libutil.so.1 is owned by glibc 2.16.0-1 /lib/libnss_hesiod-2.16.so is owned by glibc 2.16.0-1 /lib/libthread_db.so.1 is owned by glibc 2.16.0-1 /lib/libresolv.so.2 is owned by glibc 2.16.0-1 /lib/libSegFault.so is owned by glibc 2.16.0-1 /lib/libnss_nisplus.so.2 is owned by glibc 2.16.0-1 /lib/libm.so.6 is owned by glibc 2.16.0-1 /lib/libcidn.so.1 is owned by glibc 2.16.0-1 /lib/librt.so.1 is owned by glibc 2.16.0-1 /lib/libm-2.16.so is owned by glibc 2.16.0-1 /lib/libnsl.so.1 is owned by glibc 2.16.0-1 /lib/libpthread.so.0 is owned by glibc 2.16.0-1 /lib/libthread_db-1.0.so is owned by glibc 2.16.0-1 /lib/libmemusage.so is owned by glibc 2.16.0-1 /lib/libBrokenLocale-2.16.so is owned by glibc 2.16.0-1 /lib/libcrypt-2.16.so is owned by glibc 2.16.0-1 error: cannot determine ownership of directory '/lib/modules' error: cannot determine ownership of directory '/lib/modules/3.3.3-1-ARCH' error: cannot determine ownership of directory '/lib/modules/3.3.3-1-ARCH/misc' error: No package owns /lib/modules/3.3.3-1-ARCH/misc/vboxdrv.ko error: No package owns /lib/modules/3.3.3-1-ARCH/misc/vboxnetflt.ko error: No package owns /lib/modules/3.3.3-1-ARCH/misc/vboxnetadp.ko /lib/libcrypt.so.1 is owned by glibc 2.16.0-1 /lib/libpthread-2.16.so is owned by glibc 2.16.0-1 /lib/libresolv-2.16.so is owned by glibc 2.16.0-1 /lib/ld-linux-x86-64.so.2 is owned by glibc 2.16.0-1 /lib/libanl-2.16.so is owned by glibc 2.16.0-1 /lib/librt-2.16.so is owned by glibc 2.16.0-1 /lib/libBrokenLocale.so.1 is owned by glibc 2.16.0-1 /lib/libnss_db-2.16.so is owned by glibc 2.16.0-1 /lib/libc-2.16.so is owned by glibc 2.16.0-1 /lib/libdl-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_nis.so.2 is owned by glibc 2.16.0-1 /lib/libcidn-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_db.so.2 is owned by glibc 2.16.0-1 /lib/libnss_compat.so.2 is owned by glibc 2.16.0-1 /lib/libdl.so.2 is owned by glibc 2.16.0-1
What to do if I get "error: cannot determine ownership"? This isn't described in the wiki.
You're system is not broken. It actually is stated what to do in the wiki; I suppose it is not as explicit as you expected. Following krum's instructions should work fine. Since you don't have any other package that owns something in /lib, you have it easy.
Offline
http://mailman.archlinux.org/pipermail/ … 23200.html <-- Start there, and backtrack even further if needed.
It was a bit "spooky", but my upgrade went well by following the news-post on the main-page.
I mainly had kernel-update leftovers in /lib, and virtualbox-stuff (i removed the package anyways since i don't use it no more),
as well as some old OSS-stuff.
I looked over what was placed in /usr/lib/modules after updating all stuff besides glibc, and used some decision making as to what seemed to be covered in /usr/lib already and what was not needed.
There has been quite a bit of manual fiddling these past months, but then again
- that is what to be expected when choosing to run arch
Kudos to the devs and maintainers for trying their hardest to make rough changes as smooth as possible atleast
. Main: Intel Core i5 6600k @ 4.4 Ghz, 16 GB DDR4 XMP, Gefore GTX 970 (Gainward Phantom) - Arch Linux 64-Bit
. Server: Intel Core i5 2500k @ 3.9 Ghz, 8 GB DDR2-XMP RAM @ 1600 Mhz, Geforce GTX 570 (Gainward Phantom) - Arch Linux 64-Bit
. Body: Estrogen @ 90%, Testestorone @ 10% (Not scientific just out-of-my-guesstimate-brain)
Offline
Because Redhat decided to do this way and because redhat leads a lot of core projects, everybody blindly follow RH.
Which is also why we release every six months, have a graphical boot screen, install a full GNOME desktop by default, ...
Online
Because Redhat decided to do this way and because redhat leads a lot of core projects, everybody blindly follow RH.
That's why, /bin and /sbin will be soon a symlink to /usr/bin, and systemd is becoming the "de facto" linux init.
Before we know it, /boot will link to \Windows\System32.
Offline
I got through the change without too much trouble. I followed the instructions for cleaning up /lib/modules, but I still couldn't complete the /lib upgrade. Then I removed the catalyst driver and the upgrade did complete. Then I reinstalled catalyst, rebooted, and everything seems okay.
Not too bad, all in all.
Tim
Offline
Um, I'm embarrassed to admit to some legendary stupidity, but here goes:
I deleted /lib/
yep, the whole thing. I knew it was The Wrong Thing to Do but I did it anyway.
any suggestions? Snickering?
Offline
Um, I'm embarrassed to admit to some legendary stupidity, but here goes:
I deleted /lib/
yep, the whole thing. I knew it was The Wrong Thing to Do but I did it anyway.
any suggestions? Snickering?
Boot an arch setup cd, and mount your arch root (e.g. as /mnt/arch). Then extract /lib from your pacman cache (example for x86_64). This should at least restore basic commands. If your kernel had files in /lib/, then you'll have to get them from the respective package, too.
cd /mnt/arch
tar -xvJf var/cache/pacman/pkg/glibc-2.16.0-1-x86_64.pkg.tar.xz lib
Last edited by progandy (2012-07-14 19:46:25)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
Nice! When will /bin and /sbin get symlinked to their counterparts in /usr? When will those legacy symlinks get removed?
To all the people complaining: The idea of having a minimal system outside /usr that has everything that is needed to mount/repair other partitions is great. That minimal environment is called initrd nowadays:-)
Offline
Um, I'm embarrassed to admit to some legendary stupidity, but here goes:
I deleted /lib/
yep, the whole thing. I knew it was The Wrong Thing to Do but I did it anyway.
any suggestions? Snickering?
I'm somehow reassured that another long-time user is capable of such things. I thought I was alone.
I'm thinking of starting a fork of Arch Linux called Fartch Linux, especially designed for Old Fartchers.
(Then again, scrawler, you may have started using Arch when you were 12, which would make you about 19 now.)
Last edited by dhave (2012-07-14 20:36:32)
Offline
Thanks for making this a painless process: the instructions on the Wiki were clear and detailed. Nice job.
Offline
Thanks for making this a painless process: the instructions on the Wiki were clear and detailed. Nice job.
+1
Offline
I'm somehow reassured that another long-time user is capable of such things. I thought I was alone.
I'm thinking of starting a fork of Arch Linux called Fartch Linux, especially designed for Old Fartchers.
(Then again, scrawler, you may have started using Arch when you were 12, which would make you about 19 now.)
Nope, not 19. Old enough to know better. :-)
I tried extracting glibc as suggested, but now I 'm getting a kernel panic.
I have a backup about a week old that I also tried to copy over, but no luck.
oh well.
I'd be adding my own +1 had I not first gone all clackity on the enter key.
Offline
I'm somehow stuck.
I could do
pacman -Syu --ignore glibc
But am not able to perform
pacman -Su
find /lib -exec pacman -Qo -- {} +
gives:
error: cannot determine ownership of directory '/lib'
/lib/libnss_hesiod.so.2 is owned by glibc 2.16.0-1
/lib/libpcprofile.so is owned by glibc 2.16.0-1
/lib/libm.so.6 is owned by glibc 2.16.0-1
/lib/libanl.so.1 is owned by glibc 2.16.0-1
/lib/libnss_dns-2.16.so is owned by glibc 2.16.0-1
/lib/libnsl.so.1 is owned by glibc 2.16.0-1
/lib/libpthread.so.0 is owned by glibc 2.16.0-1
/lib/libm-2.16.so is owned by glibc 2.16.0-1
/lib/ld-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_db-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_nisplus-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_nisplus.so.2 is owned by glibc 2.16.0-1
/lib/libcidn.so.1 is owned by glibc 2.16.0-1
/lib/libnss_files-2.16.so is owned by glibc 2.16.0-1
/lib/libBrokenLocale-2.16.so is owned by glibc 2.16.0-1
/lib/ld-linux-x86-64.so.2 is owned by glibc 2.16.0-1
/lib/libnss_nis.so.2 is owned by glibc 2.16.0-1
/lib/libSegFault.so is owned by glibc 2.16.0-1
/lib/libutil.so.1 is owned by glibc 2.16.0-1
/lib/libresolv-2.16.so is owned by glibc 2.16.0-1
/lib/libanl-2.16.so is owned by glibc 2.16.0-1
/lib/libmemusage.so is owned by glibc 2.16.0-1
/lib/libdl-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_hesiod-2.16.so is owned by glibc 2.16.0-1
/lib/libnsl-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_nis-2.16.so is owned by glibc 2.16.0-1
/lib/libdl.so.2 is owned by glibc 2.16.0-1
/lib/libutil-2.16.so is owned by glibc 2.16.0-1
/lib/libcrypt.so.1 is owned by glibc 2.16.0-1
/lib/libBrokenLocale.so.1 is owned by glibc 2.16.0-1
/lib/libnss_compat-2.16.so is owned by glibc 2.16.0-1
/lib/libpthread-2.16.so is owned by glibc 2.16.0-1
/lib/libcidn-2.16.so is owned by glibc 2.16.0-1
/lib/libresolv.so.2 is owned by glibc 2.16.0-1
/lib/libnss_files.so.2 is owned by glibc 2.16.0-1
/lib/libc.so.6 is owned by glibc 2.16.0-1
/lib/libc-2.16.so is owned by glibc 2.16.0-1
/lib/libthread_db-1.0.so is owned by glibc 2.16.0-1
/lib/librt-2.16.so is owned by glibc 2.16.0-1
/lib/libcrypt-2.16.so is owned by glibc 2.16.0-1
/lib/libnss_db.so.2 is owned by glibc 2.16.0-1
/lib/librt.so.1 is owned by glibc 2.16.0-1
/lib/libthread_db.so.1 is owned by glibc 2.16.0-1
/lib/libnss_compat.so.2 is owned by glibc 2.16.0-1
/lib/libnss_dns.so.2 is owned by glibc 2.16.0-1
and
grep '^lib/' /var/lib/pacman/local/*/files
gives:
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/ld-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/ld-linux-x86-64.so.2
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libBrokenLocale-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libBrokenLocale.so.1
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libSegFault.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libanl-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libanl.so.1
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libc-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libc.so.6
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcidn-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcidn.so.1
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcrypt-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcrypt.so.1
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libdl-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libdl.so.2
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libm-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libm.so.6
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libmemusage.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnsl-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnsl.so.1
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_compat-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_compat.so.2
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_db-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_db.so.2
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_dns-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_dns.so.2
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_files-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_files.so.2
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_hesiod-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_hesiod.so.2
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nis-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nis.so.2
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nisplus-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nisplus.so.2
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libpcprofile.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libpthread-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libpthread.so.0
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libresolv-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libresolv.so.2
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/librt-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/librt.so.1
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libthread_db-1.0.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libthread_db.so.1
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libutil-2.16.so
/var/lib/pacman/local/glibc-2.16.0-1/files:lib/libutil.so.1
/var/lib/pacman/local/ld-lsb-3-3/files:lib/
/var/lib/pacman/local/ld-lsb-3-3/files:lib/ld-lsb.so.3
I'm at a loss what to do next. Any suggestions?
Offline
Try looking at
/var/lib/pacman/local/ld-lsb-3-3/files:lib/ /var/lib/pacman/local/ld-lsb-3-3/files:lib/ld-lsb.so.3
EDIT: Is the package needed, or can it be removed for now and reinstalled later etc.
Last edited by fatboy (2012-07-14 22:12:34)
Offline
I'm somehow stuck.
I could do
pacman -Syu --ignore glibcBut am not able to perform
pacman -Sufind /lib -exec pacman -Qo -- {} +
gives:error: cannot determine ownership of directory '/lib' /lib/libnss_hesiod.so.2 is owned by glibc 2.16.0-1 /lib/libpcprofile.so is owned by glibc 2.16.0-1 /lib/libm.so.6 is owned by glibc 2.16.0-1 /lib/libanl.so.1 is owned by glibc 2.16.0-1 /lib/libnss_dns-2.16.so is owned by glibc 2.16.0-1 /lib/libnsl.so.1 is owned by glibc 2.16.0-1 /lib/libpthread.so.0 is owned by glibc 2.16.0-1 /lib/libm-2.16.so is owned by glibc 2.16.0-1 /lib/ld-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_db-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_nisplus-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_nisplus.so.2 is owned by glibc 2.16.0-1 /lib/libcidn.so.1 is owned by glibc 2.16.0-1 /lib/libnss_files-2.16.so is owned by glibc 2.16.0-1 /lib/libBrokenLocale-2.16.so is owned by glibc 2.16.0-1 /lib/ld-linux-x86-64.so.2 is owned by glibc 2.16.0-1 /lib/libnss_nis.so.2 is owned by glibc 2.16.0-1 /lib/libSegFault.so is owned by glibc 2.16.0-1 /lib/libutil.so.1 is owned by glibc 2.16.0-1 /lib/libresolv-2.16.so is owned by glibc 2.16.0-1 /lib/libanl-2.16.so is owned by glibc 2.16.0-1 /lib/libmemusage.so is owned by glibc 2.16.0-1 /lib/libdl-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_hesiod-2.16.so is owned by glibc 2.16.0-1 /lib/libnsl-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_nis-2.16.so is owned by glibc 2.16.0-1 /lib/libdl.so.2 is owned by glibc 2.16.0-1 /lib/libutil-2.16.so is owned by glibc 2.16.0-1 /lib/libcrypt.so.1 is owned by glibc 2.16.0-1 /lib/libBrokenLocale.so.1 is owned by glibc 2.16.0-1 /lib/libnss_compat-2.16.so is owned by glibc 2.16.0-1 /lib/libpthread-2.16.so is owned by glibc 2.16.0-1 /lib/libcidn-2.16.so is owned by glibc 2.16.0-1 /lib/libresolv.so.2 is owned by glibc 2.16.0-1 /lib/libnss_files.so.2 is owned by glibc 2.16.0-1 /lib/libc.so.6 is owned by glibc 2.16.0-1 /lib/libc-2.16.so is owned by glibc 2.16.0-1 /lib/libthread_db-1.0.so is owned by glibc 2.16.0-1 /lib/librt-2.16.so is owned by glibc 2.16.0-1 /lib/libcrypt-2.16.so is owned by glibc 2.16.0-1 /lib/libnss_db.so.2 is owned by glibc 2.16.0-1 /lib/librt.so.1 is owned by glibc 2.16.0-1 /lib/libthread_db.so.1 is owned by glibc 2.16.0-1 /lib/libnss_compat.so.2 is owned by glibc 2.16.0-1 /lib/libnss_dns.so.2 is owned by glibc 2.16.0-1
and
grep '^lib/' /var/lib/pacman/local/*/files
gives:/var/lib/pacman/local/glibc-2.16.0-1/files:lib/ /var/lib/pacman/local/glibc-2.16.0-1/files:lib/ld-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/ld-linux-x86-64.so.2 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libBrokenLocale-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libBrokenLocale.so.1 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libSegFault.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libanl-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libanl.so.1 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libc-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libc.so.6 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcidn-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcidn.so.1 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcrypt-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libcrypt.so.1 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libdl-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libdl.so.2 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libm-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libm.so.6 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libmemusage.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnsl-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnsl.so.1 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_compat-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_compat.so.2 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_db-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_db.so.2 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_dns-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_dns.so.2 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_files-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_files.so.2 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_hesiod-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_hesiod.so.2 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nis-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nis.so.2 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nisplus-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libnss_nisplus.so.2 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libpcprofile.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libpthread-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libpthread.so.0 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libresolv-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libresolv.so.2 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/librt-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/librt.so.1 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libthread_db-1.0.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libthread_db.so.1 /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libutil-2.16.so /var/lib/pacman/local/glibc-2.16.0-1/files:lib/libutil.so.1 /var/lib/pacman/local/ld-lsb-3-3/files:lib/ /var/lib/pacman/local/ld-lsb-3-3/files:lib/ld-lsb.so.3
I'm at a loss what to do next. Any suggestions?
Having the same problem here... Don't know how to resolve this gracefully. Anyway, I just did:
mv -i /lib/* /usr/lib
The "-i" is just for being sure nothing is overwritten. Then I did:
/usr/lib/ld-2.16.so /bin/rmdir /lib
This uses the /usr/lib linker to run "rmdir" and removing /lib. Then run
/usr/lib/ld-2.16.so /usr/bin/pacman -S glibc
This tries updating glibc which will fail with missing /lib. Make sure this _just_ reports _libraries_ in /lib. If it does you can use:
/usr/lib/ld-2.16.so /usr/bin/pacman -S --force glibc
However, do not use --force if there are _directory_ conflicts. I actually don't know whether this is the nicest way to do it. It worked on my machine, though. Still looking for a clean solution to this...
I am also not sure whether this procedure can break anything so no guarantee on this
Regards
David
Offline
scrawler wrote:Um, I'm embarrassed to admit to some legendary stupidity, but here goes:
I deleted /lib/
yep, the whole thing. I knew it was The Wrong Thing to Do but I did it anyway.
any suggestions? Snickering?I'm somehow reassured that another long-time user is capable of such things. I thought I was alone.
I'm thinking of starting a fork of Arch Linux called Fartch Linux, especially designed for Old Fartchers.
(Then again, scrawler, you may have started using Arch when you were 12, which would make you about 19 now.)
Don't you sometimes wish the command line had an undo command. I must not be the only one.
Offline
What about the Filesystem Hierarchy Standard? The reason /lib and /usr/lib are separate is because /lib should contain the system-essential libraries, kernel modules and the like that are needed to boot the system. On the other hand /usr/lib should contain non-essential libraries. For one this is good because you know what's what but on the other hand if you have /usr on a separate partition (even though it's considered broken) it would mean your system would be unable to boot and to work around that you'd have to mount it from the initrd. I don't see any big advantages to this change. Seeing what other distributions (such as Fedora) are doing with merging /bin and /sbin into their /usr counterparts as well which may, quite frankly, further add to the confusion what is essential to booting a system and what is not.
Honestly, why not just make a /Linux/System32 directory and just put everything in there?
Anyone care to explain the reasoning behind this change?
This has been discussed ad nauseaum on various mailinglists (including arch-dev-public and arch-general), so all the answers should be out there.
A few things:
We don't care about FHS. It is outdated, irrelevant and dead. What matters is what distro's are able to agree on and what makes sense in practice, not what some committee decided years ago.
What is essential to system boot on one system, is not on a different one, and furthermore, what is important changes over time. In practice the /lib /usr/lib split never worked properly (i.e. it worked fine in most cases, and since most people don't have a separate /usr, the percentage of people with problems was quite low, but conceptually it has been broken for as far back as I know).
Our default initrd has support for mounting a separate /usr, so there is no need for being able to boot with it unmounted (lots of common software breaks in subtle way if you boot with an empty /usr, regardless of where the libs are stored).
We want to eventually only have one dir for libraries (/usr/lib) and one for binaries (/usr/bin). There used to be a reason for having separate categories of libraries/binaries, but those original reasons no longer apply, so we do the KISS thing and drop the distinction.
We have not known the distinction between stuff that is needed for boot and stuff that is not for a long time, even though the existence of /lib and /usr/lib might have given that impression.
Offline