Gentoo Archives: gentoo-amd64

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-amd64@l.g.o
Subject: [gentoo-amd64] Re: revdep-rebuild, Firefox, Thunderbird, GCC
Date: Tue, 09 Jun 2009 17:26:28
Message-Id: pan.2009.06.09.17.26.07@cox.net
In Reply to: Re: [gentoo-amd64] Re: revdep-rebuild, Firefox, Thunderbird, GCC by "John P. Burkett"
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