"John P. Burkett" <burk...@uri.edu> posted 1244553079.25061.91.ca...@microway, excerpted below, on Tue, 09 Jun 2009 09:11:19 -0400:
> On Tue, 2009-06-09 at 07:03 +0000, Duncan wrote: >> >> Try gcc-config, then. >> > Thank you, Duncan. When I did "gcc-config -l" the response was as > follows: > * gcc-config: Active gcc profile is invalid! [1] > x86_64-pc-linux-gnu-4.3.2 Yes, that's what I expected at this point. Good, we're getting somewhere! =:^) > When I did "gcc-config 1" the response was > * Switching native-compiler to x86_64-pc-linux-gnu-4.3.2 ... > > * Your gcc has a bug with GCC_SPECS. > * Please re-emerge gcc. > * http://bugs.gentoo.org/68395 > Next I did "emerge gcc". That seems to have succeeded. The response > included the following: > * Messages for package sys-devel/gcc-4.3.2-r3: > > * If you have issues with packages unable to locate libstdc++.la, * > then try running 'fix_libtool_files.sh' on the old gcc versions. Now you see why I was initially trying to fix it with that. =:^) > Firefox and Thunderbird now work :-) Hallelujah! > However, some other applications are still not starting. When I try to > start R, the response is > /usr/lib64/R/bin/exec/R: error while loading shared libraries: > libgfortran.so.1: cannot open shared object file: No such file or > directory. > > Trying to start octave elicits the response octave: error while loading > shared libraries: libgfortran.so.1: cannot open shared object file: No > such file or directory > > The common theme is lack of libgfortran.so.1. Any suggestions about how > to fix that problem? Unfortunately, I don't happen to use anything needing fortran here, so I don't have the same level of experience troubleshooting it as I do with normal gcc/g++. Therefore, I can't offer specific help on it, but perhaps general Gentoo and library level help will do... or maybe not. I guess we'll see. I believe libfortran.so is to fortran what libstdc++ is to C++. As such, I believe it's related to gcc. Meanwhile, gcc has the USE=fortran USE flag. When you remerged gcc, was that flag on or off? If it was off, I think we have our problem and solution. If it was and is still on... that's a problem. Next, I'd try equery, again. equery belongs libfortran.so.1 . Also try libfortran.so (without the .1) and if it shows up, see where it's pointing. Double-check the filesystem and see if the files are there (no, I don't know specifically where "there" should be, as I don't use fortran, equery will tell you if it knows a package containing it, else I'm not sure), either to match what equery says, or possibly, orphan files if equery doesn't know about them. Again, since I don't need fortran, I'm not sure how it's handled, but there's a fair chance there's some fortran selector tool, eselect fortran, or fortran-config, or some such, that allows you to switch between fortran versions, just like gcc-config allows you to switch between gcc versions. If equery is showing files and the libfortran.so.1 file is indeed actually there, but the symlink from libfortran.so to libfortran.so.1 (or whatever) is missing, this is what I'd investigate next, trying to find out if there's some selector for it that needs reset to point at the new version. > Now when I do "equery list gcc" the response looks good: > [ Searching for package 'gcc' in all categories among: ] > * installed packages > [I--] [ ] sys-devel/gcc-4.3.2-r3 (4.3) > [I--] [ ] sys-devel/gcc-config-1.4.1 (0) > [I--] [ ] x11-misc/gccmakedep-1.0.2 (0) Yes, indeed, that looks reasonable. (FWIW, as I'm on ~amd64, I'm probably using a newer gentoolkit, with slightly different semantics, thus the lack of gcc-config, etc, in my listing. I know it used to list it, and it lists it if I say equery list gcc-config, but it doesn't list gcc-config under plain gcc any more. I was actually surprised when I didn't see it listed, when I posted earlier, but there were other more important things we were worried about. But anyway, don't worry about that inconsistency, as I have gcc-config too. Presumably gccmakedep is missing here for a similar reason, I don't have it installed, but that's likely because I'm running a newer xorg than you, or for other system-specific reasons.) > man is working again :-> Good! I was somewhat worried there for a bit. It was certainly fixable, whatever the problem, but if gcc-config and/or a gcc rebuild hadn't worked, the fixes would have started getting much more complex, the sort of thing one does NOT want to be trying to do remotely, and if man's broken, things are getting bad enough it maybe time to start looking at drastic solutions such as extracting a stage tarball to get to a known working state in ordered to properly fix the system. Glad it didn't get to that point! >> It's not going to be of much help at the moment, but FWIW, upgrades do >> tend to go much smoother if you don't stay away from them so long. >> Personally, I try to do them twice a week > My weekly routine has been to do > eix-sync > emerge -D -uav system > emerge -D -uav world > When the responses have suggested doing "revdep rebuild", I've done so. FWIW, I've never found eix particularly useful, here. I believe esearch is a less powerful (read less complex to work with as well, the reason I use it) replacement for part of it. Other functionality is provided by other tools. But if you find eix helpful and either know how to work it, or take advice from folks that find it helpful and know how to work it, great. Don't uninstall it there just because /I/ don't find it helpful here! But the general routine, sync, update system, update world, run revdep- rebuild, is a very solid one. > From now on I'll try to follow your good example of upgrading twice a > week. That's simply personal preference, because as I explained, it allows me to deal with things in smaller bites. Once a week is fine, as long as it's relatively consistent. But if you find the smaller bites of twice a week or even daily updates useful as I do, that's great too! > Whether I should add "emerge --depclean" to my upgrade routine is > not so clear to me. Perhaps it should only be used by people who know > more than I do. Depclean is interesting. Honestly, getting the system cleaned up if you haven't been doing it routinely will be difficult, and may result in a bit of breakage until you get what you need in world, so depclean isn't trying to remove it. For that reason I would not feel right forcing it on anyone. OTOH, once you get the system in a consistent state and are doing depcleans routinely, it becomes just another step in the process, and because there was nothing left in its list at the end of your last update session, any changes to that status are MUCH MUCH easier to deal with because they happen one at a time and it's often obvious what caused the change and why. So it's up to you. No question, there'll be some pain getting the system into a consistent state on the package-removal side (which is what depclean does) as well as the package addition and update side, and that pain isn't going to be worth the hassle for some. OTOH, for those who either do it from the beginning, or work thru that initial period of pain to the point of system consistency, and then keep it there, it /does/ result in a cleaner, more consistent and troublefree system. To depclean or not is thus really a question of system management and adminstration style, whether you mind extra cruft along for the ride, or not, and which you'd prefer to deal with, the pain of dealing with extra cruft as you get rid of it immediately, or the pain of carrying it along until at some point, bits of it cause other problems. Regardless, tho, you still have a problem or two on the package update and addition side to worry about, namely, that fortran problem, at least, before you can even properly think of trying to do anything about the package and cruft cleanup side. Another similar issue is the "to --deep (-D) or not to --deep" question. Here, it's personal policy to always use --deep, simply because I want the latest version of dependencies too, even at the additional expense of what would otherwise be not strictly necessary updates and perhaps revdep- rebuilds as well. My argument is that again it's a cruft issue. In addition to the benefits of the new versions, knowing I always have the latests versions at my stability level (~arch for me, stable for those that choose it) means less issues with older versions perhaps not as likely tested either upstream or by Gentoo devs (and for stable users, by ~arch users before them). OTOH, this is at the acknowledged expense of having to merge perhaps four or five versions of various libraries, plus rebuilds of packages that depend on them if necessary (as caught by revdep-rebuild), for every single update a user NOT doing --deep might have. I prefer knowing the entire system, including deep dependencies, are on the latest version available, thus killing the cruft. Others may prefer the "if it works, don't fix it" approach, avoiding unnecessary package turnover for what's likely very little gain. Again, it's purely a system administration strategy issue, with benefits and negatives to either approach taken. It's your system so it's your choice. =:^) Finally, if you don't have it enabled, DO give some consideration to the FEATURES=buildpkg feature. Had you had it enabled when you merged that old gcc, when you removed it and things broke, you could have simply remerged it from binpkg temporarily, fixing whatever broke before trying to unmerge it again. Not having to recompile such big packages can be a REAL timesaver and even major system-saver when you suddenly find stuff like man breaking, and the system seems to be falling down around your ears! -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman