1 |
William Hubbs posted on Sat, 10 Oct 2015 17:48:15 -0500 as excerpted: |
2 |
|
3 |
> All, |
4 |
> |
5 |
> fhs 3.0 was approved in June this year [1] [2]. |
6 |
> |
7 |
> The piece of it that I want to bring up is the lib and libxx |
8 |
> directories, both in / and /usr. The way I read the fhs, /lib and |
9 |
> /usr/lib should hold the files for the default abi and /libxx and |
10 |
> /usr/libxx should hold the files for the alternate abis. In earlier fhs, |
11 |
> there was an exception for amd64 which stated that the default libraries |
12 |
> should be in /lib64 and /usr/lib64. However, that exception is now gone. |
13 |
> |
14 |
> I know there was discussion/work in the past on removing the lib->lib64 |
15 |
> symlinks on amd64, but I don't remember what happened to that |
16 |
> discussion. So, I would like to bring it up again and get the info. |
17 |
> |
18 |
> What would it take for us to remove the lib->lib64 links? |
19 |
> |
20 |
> What would it take for us to do this migration on live systems? |
21 |
> |
22 |
> William |
23 |
> |
24 |
> [1] https://wiki.linuxfoundation.org/en/FHS [2] |
25 |
> http://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html |
26 |
|
27 |
I don't know what the current status is, but years ago, I used to run |
28 |
portage with FEATURES=multilib-strict. There weren't many violations in |
29 |
my installed base at the time, and when there were I filed bugs. |
30 |
|
31 |
This biggest problems didn't have to do with installing to the wrong |
32 |
place, but rather, with configuration paths, etc, not being corrected, |
33 |
resulting in runtime errors if lib and lib64 were not in fact the same |
34 |
directory, via symlink or whatever. IIRC, openrc itself, or at least |
35 |
some openrc initscripts, possibly owned by other packages, was quite a |
36 |
headache in that regard. |
37 |
|
38 |
However, I killed multilib-strict some years ago when I went no-multilib, |
39 |
and after experiencing problems when lib and lib64 weren't in fact the |
40 |
same dir, I've not touched those symlinks in years, plus I run systemd |
41 |
now so wouldn't know about openrc's status even if I was aware of the |
42 |
general status, so I've no idea what the current status is. |
43 |
|
44 |
But multilib-strict in fact checks that packages use lib64 for 64-bit elf |
45 |
libs (tho I think it might actually get the specifics from the profile, |
46 |
the amd64 or portage folks should be able to say for sure), failing the |
47 |
install if lib is used instead, so if in fact FHS 3.0 reverses that, we'd |
48 |
either have to reverse its check, or possibly configure a test to some |
49 |
third directory, and then do a test run to catch anything that's |
50 |
installing to either location, hard-coded. |
51 |
|
52 |
Tho as I said, the actual installed installation isn't the entire |
53 |
problem. Multilib-strict doesn't catch it when a binary is installed to |
54 |
the right place, but some configuration hard-coding isn't corrected and |
55 |
still points elsewhere, so if the two locations aren't symlinked or |
56 |
otherwise actually the same location, things break. That's somewhat |
57 |
harder to find, and in my experience, the worse headache to try to deal |
58 |
with, since it's often only caught at runtime, and even then, may only be |
59 |
caught in specific corner-cases when something doesn't load or isn't |
60 |
found that you know is installed and should be found and load. |
61 |
|
62 |
-- |
63 |
Duncan - List replies preferred. No HTML msgs. |
64 |
"Every nonfree program has a lord, a master -- |
65 |
and if you use the program, he is your master." Richard Stallman |