1 |
"John P. Burkett" <burkett@×××.edu> posted |
2 |
1244553079.25061.91.camel@microway, excerpted below, on Tue, 09 Jun 2009 |
3 |
09:11:19 -0400: |
4 |
|
5 |
> On Tue, 2009-06-09 at 07:03 +0000, Duncan wrote: |
6 |
>> |
7 |
>> Try gcc-config, then. |
8 |
>> |
9 |
> Thank you, Duncan. When I did "gcc-config -l" the response was as |
10 |
> follows: |
11 |
> * gcc-config: Active gcc profile is invalid! [1] |
12 |
> x86_64-pc-linux-gnu-4.3.2 |
13 |
|
14 |
Yes, that's what I expected at this point. Good, we're getting |
15 |
somewhere! =:^) |
16 |
|
17 |
> When I did "gcc-config 1" the response was |
18 |
> * Switching native-compiler to x86_64-pc-linux-gnu-4.3.2 ... |
19 |
> |
20 |
> * Your gcc has a bug with GCC_SPECS. |
21 |
> * Please re-emerge gcc. |
22 |
> * http://bugs.gentoo.org/68395 |
23 |
|
24 |
> Next I did "emerge gcc". That seems to have succeeded. The response |
25 |
> included the following: |
26 |
> * Messages for package sys-devel/gcc-4.3.2-r3: |
27 |
> |
28 |
> * If you have issues with packages unable to locate libstdc++.la, * |
29 |
> then try running 'fix_libtool_files.sh' on the old gcc versions. |
30 |
|
31 |
Now you see why I was initially trying to fix it with that. =:^) |
32 |
|
33 |
> Firefox and Thunderbird now work :-) |
34 |
|
35 |
Hallelujah! |
36 |
|
37 |
> However, some other applications are still not starting. When I try to |
38 |
> start R, the response is |
39 |
> /usr/lib64/R/bin/exec/R: error while loading shared libraries: |
40 |
> libgfortran.so.1: cannot open shared object file: No such file or |
41 |
> directory. |
42 |
> |
43 |
> Trying to start octave elicits the response octave: error while loading |
44 |
> shared libraries: libgfortran.so.1: cannot open shared object file: No |
45 |
> such file or directory |
46 |
> |
47 |
> The common theme is lack of libgfortran.so.1. Any suggestions about how |
48 |
> to fix that problem? |
49 |
|
50 |
Unfortunately, I don't happen to use anything needing fortran here, so I |
51 |
don't have the same level of experience troubleshooting it as I do with |
52 |
normal gcc/g++. Therefore, I can't offer specific help on it, but |
53 |
perhaps general Gentoo and library level help will do... or maybe not. I |
54 |
guess we'll see. |
55 |
|
56 |
I believe libfortran.so is to fortran what libstdc++ is to C++. As such, |
57 |
I believe it's related to gcc. Meanwhile, gcc has the USE=fortran USE |
58 |
flag. When you remerged gcc, was that flag on or off? If it was off, I |
59 |
think we have our problem and solution. |
60 |
|
61 |
If it was and is still on... that's a problem. |
62 |
|
63 |
Next, I'd try equery, again. equery belongs libfortran.so.1 . Also try |
64 |
libfortran.so (without the .1) and if it shows up, see where it's |
65 |
pointing. Double-check the filesystem and see if the files are there |
66 |
(no, I don't know specifically where "there" should be, as I don't use |
67 |
fortran, equery will tell you if it knows a package containing it, else |
68 |
I'm not sure), either to match what equery says, or possibly, orphan |
69 |
files if equery doesn't know about them. |
70 |
|
71 |
Again, since I don't need fortran, I'm not sure how it's handled, but |
72 |
there's a fair chance there's some fortran selector tool, eselect |
73 |
fortran, or fortran-config, or some such, that allows you to switch |
74 |
between fortran versions, just like gcc-config allows you to switch |
75 |
between gcc versions. If equery is showing files and the libfortran.so.1 |
76 |
file is indeed actually there, but the symlink from libfortran.so to |
77 |
libfortran.so.1 (or whatever) is missing, this is what I'd investigate |
78 |
next, trying to find out if there's some selector for it that needs reset |
79 |
to point at the new version. |
80 |
|
81 |
> Now when I do "equery list gcc" the response looks good: |
82 |
> [ Searching for package 'gcc' in all categories among: ] |
83 |
> * installed packages |
84 |
> [I--] [ ] sys-devel/gcc-4.3.2-r3 (4.3) |
85 |
> [I--] [ ] sys-devel/gcc-config-1.4.1 (0) |
86 |
> [I--] [ ] x11-misc/gccmakedep-1.0.2 (0) |
87 |
|
88 |
Yes, indeed, that looks reasonable. (FWIW, as I'm on ~amd64, I'm |
89 |
probably using a newer gentoolkit, with slightly different semantics, |
90 |
thus the lack of gcc-config, etc, in my listing. I know it used to list |
91 |
it, and it lists it if I say equery list gcc-config, but it doesn't list |
92 |
gcc-config under plain gcc any more. I was actually surprised when I |
93 |
didn't see it listed, when I posted earlier, but there were other more |
94 |
important things we were worried about. But anyway, don't worry about |
95 |
that inconsistency, as I have gcc-config too. Presumably gccmakedep is |
96 |
missing here for a similar reason, I don't have it installed, but that's |
97 |
likely because I'm running a newer xorg than you, or for other |
98 |
system-specific reasons.) |
99 |
|
100 |
> man is working again :-> |
101 |
|
102 |
Good! I was somewhat worried there for a bit. |
103 |
|
104 |
It was certainly fixable, whatever the problem, but if gcc-config and/or |
105 |
a gcc rebuild hadn't worked, the fixes would have started getting much |
106 |
more complex, the sort of thing one does NOT want to be trying to do |
107 |
remotely, and if man's broken, things are getting bad enough it maybe |
108 |
time to start looking at drastic solutions such as extracting a stage |
109 |
tarball to get to a known working state in ordered to properly fix the |
110 |
system. Glad it didn't get to that point! |
111 |
|
112 |
>> It's not going to be of much help at the moment, but FWIW, upgrades do |
113 |
>> tend to go much smoother if you don't stay away from them so long. |
114 |
>> Personally, I try to do them twice a week |
115 |
|
116 |
> My weekly routine has been to do |
117 |
> eix-sync |
118 |
> emerge -D -uav system |
119 |
> emerge -D -uav world |
120 |
> When the responses have suggested doing "revdep rebuild", I've done so. |
121 |
|
122 |
FWIW, I've never found eix particularly useful, here. I believe esearch |
123 |
is a less powerful (read less complex to work with as well, the reason I |
124 |
use it) replacement for part of it. Other functionality is provided by |
125 |
other tools. But if you find eix helpful and either know how to work it, |
126 |
or take advice from folks that find it helpful and know how to work it, |
127 |
great. Don't uninstall it there just because /I/ don't find it helpful |
128 |
here! |
129 |
|
130 |
But the general routine, sync, update system, update world, run revdep- |
131 |
rebuild, is a very solid one. |
132 |
|
133 |
> From now on I'll try to follow your good example of upgrading twice a |
134 |
> week. |
135 |
|
136 |
That's simply personal preference, because as I explained, it allows me |
137 |
to deal with things in smaller bites. Once a week is fine, as long as |
138 |
it's relatively consistent. But if you find the smaller bites of twice a |
139 |
week or even daily updates useful as I do, that's great too! |
140 |
|
141 |
> Whether I should add "emerge --depclean" to my upgrade routine is |
142 |
> not so clear to me. Perhaps it should only be used by people who know |
143 |
> more than I do. |
144 |
|
145 |
Depclean is interesting. Honestly, getting the system cleaned up if you |
146 |
haven't been doing it routinely will be difficult, and may result in a |
147 |
bit of breakage until you get what you need in world, so depclean isn't |
148 |
trying to remove it. For that reason I would not feel right forcing it |
149 |
on anyone. |
150 |
|
151 |
OTOH, once you get the system in a consistent state and are doing |
152 |
depcleans routinely, it becomes just another step in the process, and |
153 |
because there was nothing left in its list at the end of your last update |
154 |
session, any changes to that status are MUCH MUCH easier to deal with |
155 |
because they happen one at a time and it's often obvious what caused the |
156 |
change and why. |
157 |
|
158 |
So it's up to you. No question, there'll be some pain getting the system |
159 |
into a consistent state on the package-removal side (which is what |
160 |
depclean does) as well as the package addition and update side, and that |
161 |
pain isn't going to be worth the hassle for some. OTOH, for those who |
162 |
either do it from the beginning, or work thru that initial period of pain |
163 |
to the point of system consistency, and then keep it there, it /does/ |
164 |
result in a cleaner, more consistent and troublefree system. |
165 |
|
166 |
To depclean or not is thus really a question of system management and |
167 |
adminstration style, whether you mind extra cruft along for the ride, or |
168 |
not, and which you'd prefer to deal with, the pain of dealing with extra |
169 |
cruft as you get rid of it immediately, or the pain of carrying it along |
170 |
until at some point, bits of it cause other problems. |
171 |
|
172 |
Regardless, tho, you still have a problem or two on the package update |
173 |
and addition side to worry about, namely, that fortran problem, at least, |
174 |
before you can even properly think of trying to do anything about the |
175 |
package and cruft cleanup side. |
176 |
|
177 |
Another similar issue is the "to --deep (-D) or not to --deep" question. |
178 |
Here, it's personal policy to always use --deep, simply because I want |
179 |
the latest version of dependencies too, even at the additional expense of |
180 |
what would otherwise be not strictly necessary updates and perhaps revdep- |
181 |
rebuilds as well. My argument is that again it's a cruft issue. In |
182 |
addition to the benefits of the new versions, knowing I always have the |
183 |
latests versions at my stability level (~arch for me, stable for those |
184 |
that choose it) means less issues with older versions perhaps not as |
185 |
likely tested either upstream or by Gentoo devs (and for stable users, by |
186 |
~arch users before them). OTOH, this is at the acknowledged expense of |
187 |
having to merge perhaps four or five versions of various libraries, plus |
188 |
rebuilds of packages that depend on them if necessary (as caught by |
189 |
revdep-rebuild), for every single update a user NOT doing --deep might |
190 |
have. |
191 |
|
192 |
I prefer knowing the entire system, including deep dependencies, are on |
193 |
the latest version available, thus killing the cruft. Others may prefer |
194 |
the "if it works, don't fix it" approach, avoiding unnecessary package |
195 |
turnover for what's likely very little gain. Again, it's purely a system |
196 |
administration strategy issue, with benefits and negatives to either |
197 |
approach taken. It's your system so it's your choice. =:^) |
198 |
|
199 |
Finally, if you don't have it enabled, DO give some consideration to the |
200 |
FEATURES=buildpkg feature. Had you had it enabled when you merged that |
201 |
old gcc, when you removed it and things broke, you could have simply |
202 |
remerged it from binpkg temporarily, fixing whatever broke before trying |
203 |
to unmerge it again. Not having to recompile such big packages can be a |
204 |
REAL timesaver and even major system-saver when you suddenly find stuff |
205 |
like man breaking, and the system seems to be falling down around your |
206 |
ears! |
207 |
|
208 |
-- |
209 |
Duncan - List replies preferred. No HTML msgs. |
210 |
"Every nonfree program has a lord, a master -- |
211 |
and if you use the program, he is your master." Richard Stallman |