You are not logged in.

#1 2012-07-14 14:47:45

brain0
Developer
From: Aachen - Germany
Registered: 2005-01-03
Posts: 1,382

News: The /lib directory becomes a symlink

Offline

#2 2012-07-14 16:07:07

litemotiv
Forum Fellow
Registered: 2008-08-01
Posts: 5,026

Re: News: The /lib directory becomes a symlink

*grabs popcorn*


ᶘ ᵒᴥᵒᶅ

Offline

#3 2012-07-14 16:08:03

vabc3
Member
Registered: 2009-06-29
Posts: 4

Re: News: The /lib directory becomes a symlink

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

#4 2012-07-14 16:11:11

falconindy
Developer
From: New York, USA
Registered: 2009-10-22
Posts: 4,092
Website

Re: News: The /lib directory becomes a symlink

vabc3 wrote:

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

#5 2012-07-14 18:09:14

indianahorst
Member
Registered: 2008-08-23
Posts: 72

Re: News: The /lib directory becomes a symlink

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

#6 2012-07-14 18:24:56

krum
Member
From: Grenoble - FR
Registered: 2008-04-10
Posts: 32

Re: News: The /lib directory becomes a symlink

indianahorst wrote:

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

#7 2012-07-14 18:26:38

xstyle
Member
Registered: 2012-07-14
Posts: 1

Re: News: The /lib directory becomes a symlink

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

#8 2012-07-14 18:30:47

krum
Member
From: Grenoble - FR
Registered: 2008-04-10
Posts: 32

Re: News: The /lib directory becomes a symlink

xstyle wrote:

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

#9 2012-07-14 18:32:03

Hspasta
Member
Registered: 2011-12-24
Posts: 187
Website

Re: News: The /lib directory becomes a symlink

indianahorst wrote:

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. smile

Offline

#10 2012-07-14 18:36:58

PReP
Member
From: Sweden/Sala
Registered: 2010-06-13
Posts: 347
Website

Re: News: The /lib directory becomes a symlink

http://mailman.archlinux.org/pipermail/ … 23200.html <-- Start there, and backtrack even further if needed. smile

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 smile

Kudos to the devs and maintainers for trying their hardest to make rough changes as smooth as possible atleast smile


#1 Main: Intel Core i5 2500k (Sandy) @ 3.9 Ghz, 8 GB DDR2-XMP RAM @ 1600 Mhz, Geforce GTX 570 (Gainward Phantom) - Arch Linux 64-Bit
#2 Server: Intel C2D E8400 @ 3.6 Ghz, 3 GB DDR2-RAM @ 802mhz, XFX GF GTX260 XT -ArchLinux 64-bit.

<- Server Homepage: http://prep.mine.nu ->

Offline

#11 2012-07-14 18:37:47

Allan
Developer
From: Brisbane, AU
Registered: 2007-06-09
Posts: 10,396
Website

Re: News: The /lib directory becomes a symlink

krum wrote:

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, ...

Offline

#12 2012-07-14 19:01:51

dhave
Arch Linux f@h Team Member
From: Outside the matrix.
Registered: 2005-05-15
Posts: 1,110

Re: News: The /lib directory becomes a symlink

krum wrote:

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.  smile


Donate to Arch!

Tired? There's a nap for that. --anonymous

Offline

#13 2012-07-14 19:28:20

ratcheer
Member
Registered: 2011-10-09
Posts: 506

Re: News: The /lib directory becomes a symlink

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

#14 2012-07-14 19:33:15

scrawler
Member
Registered: 2005-06-07
Posts: 312

Re: News: The /lib directory becomes a symlink

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

#15 2012-07-14 19:44:32

progandy
Member
Registered: 2012-05-17
Posts: 2,146

Re: News: The /lib directory becomes a symlink

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?

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)

Offline

#16 2012-07-14 19:44:44

hunger
Member
Registered: 2012-07-14
Posts: 1

Re: News: The /lib directory becomes a symlink

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

#17 2012-07-14 20:31:52

dhave
Arch Linux f@h Team Member
From: Outside the matrix.
Registered: 2005-05-15
Posts: 1,110

Re: News: The /lib directory becomes a symlink

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.)

Last edited by dhave (2012-07-14 20:36:32)


Donate to Arch!

Tired? There's a nap for that. --anonymous

Offline

#18 2012-07-14 20:45:27

jasonwryan
Forum & Wiki Admin
From: .nz
Registered: 2009-05-09
Posts: 18,563
Website

Re: News: The /lib directory becomes a symlink

Thanks for making this a painless process: the instructions on the Wiki were clear and detailed. Nice job.


Arch + dwm   •   Mercurial repos  •   Github

Registered Linux User #482438

Offline

#19 2012-07-14 20:57:11

dhave
Arch Linux f@h Team Member
From: Outside the matrix.
Registered: 2005-05-15
Posts: 1,110

Re: News: The /lib directory becomes a symlink

jasonwryan wrote:

Thanks for making this a painless process: the instructions on the Wiki were clear and detailed. Nice job.

+1


Donate to Arch!

Tired? There's a nap for that. --anonymous

Offline

#20 2012-07-14 21:29:09

scrawler
Member
Registered: 2005-06-07
Posts: 312

Re: News: The /lib directory becomes a symlink

dhave wrote:

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

#21 2012-07-14 21:53:59

ichi-no-eda
Member
Registered: 2011-08-28
Posts: 33

Re: News: The /lib directory becomes a symlink

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

#22 2012-07-14 22:09:22

fatboy
Member
From: India
Registered: 2012-03-17
Posts: 73

Re: News: The /lib directory becomes a symlink

Try looking at

ichi-no-eda wrote:
/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

#23 2012-07-14 22:09:56

dvdhrm
Member
From: Germany
Registered: 2011-01-22
Posts: 23

Re: News: The /lib directory becomes a symlink

ichi-no-eda wrote:

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?

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 wink

Regards
David

Offline

#24 2012-07-14 22:29:48

89c51
Member
Registered: 2012-06-05
Posts: 648

Re: News: The /lib directory becomes a symlink

dhave wrote:
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. wink big_smile

Offline

#25 2012-07-14 22:48:53

tomegun
Developer
From: France
Registered: 2010-05-28
Posts: 661

Re: News: The /lib directory becomes a symlink

xstyle wrote:

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

Board footer

Powered by FluxBB