On Tue, 2009-06-09 at 07:03 +0000, Duncan wrote: > "John P. Burkett" <burk...@uri.edu> posted 4a2db2a9.80...@uri.edu, > excerpted below, on Mon, 08 Jun 2009 20:54:01 -0400: > > > Thank you, Duncan, for the explanation and suggestion. > > > > Doing "fix_libtool_files.sh 4.2.0" or "fix_libtool_files.sh 4.2" > > elicited the following response: > > > > * Scanning libtool files for hardcoded gcc library paths... gcc-config: > > error: could not run/locate 'gcc' :0: assertion failed: (gcc > > -dumpversion) | getline NEWVER) > > Eew, OK, you're problem's a bit deeper than that. FWIW, > fix_libtool_files.sh is normally required for compiling stuff. I guess I > didn't read so well and thus failed to notice the obvious, that you are > having trouble /running/ stuff too. That's a bit different and obviously > a more serious issue, tho hopefully as easily fixed. > > Try gcc-config, then. What I'm guessing happened is that you unmerged > the old gcc without gcc-config-ing to the new version, so now all the > pointers are pointed at nothing. > > gcc-config -l (--list-profiles) will give you a list of the versions it > thinks it has installed. You can then (as root) tell it to switch to one > of them using its number. For instance, here's what I have here: > > gcc-config -l > [1] x86_64-pc-linux-gnu-4.3.3 > [2] x86_64-pc-linux-gnu-4.4.0 * > 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
> The *-ed one, 4.4.0, is active. As root, I could switch to 4.3.3 using > it's position, as: > > gcc-config 1 > > or I could switch using the profile name (here switching back to 4.4): > > gcc-config x86_64-pc-linux-gnue-4.4.0 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 >>> Regenerating /etc/ld.so.cache... [ ok ] * If you intend to use the gcc from the new profile in an already * running shell, please remember to do: * # source /etc/profile 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. >>> Auto-cleaning packages... >>> No outdated packages were found on your system. * GNU info directory index is up-to-date. Firefox and Thunderbird now work :-) 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? > > > Since it's apparently screwed up ATM, you may have to do it using the -f > (--force) option, which regenerates all the files even if it thinks they > are fine. > > If that doesn't do it, you may need someone who really understands what's > going on to help, probably one of the gentoo/amd64 devs or ATs (arch- > testers). But hopefully that does it. > > > To check what newer version is installed, I did "emerge --search gcc". > > The response included the following lines: > > FWIW, --search just shows you the latest installed. For slotted packages > such as gcc, you may have more installed. If you have gentoolkit > installed, you can use equery to get the full list, using equery list > <pkgspec>, which lists the packages matching the parameter, as so: > > equery list gcc > * Searching for gcc ... > * installed packages: > [I--] [ ~] sys-devel/gcc-4.3.3-r2 (4.3) > [I--] [ ~] sys-devel/gcc-4.4.0 (4.4) 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) > > > FWIW, equery has other modes of operation as well. equery belongs <file> > tells you which package, if any, "owns" a particular file or directory. > (Note that with directories, a package "owns" it if it has files in it or > a subdir. Thus, a LOT of packages "own" /usr/, because they all have > files in various /usr/ subdirs.) > > equery files <pkgspec> lists the files belonging to a particular > package. equery depends <pkgspec> lists all the packages that depend on > the particular package in question (with USE conditional dependencies > listing the USE flag creating the dependency). equery depgraph <pkgspec> > lists the packages a particular package depends on -- multiple layers > deep, so sometimes the --depth=n parameter for it comes in handy to limit > the output. There's also equery hasuse and equery uses, as well. > > For equery list, the default (-i --installed) lists installed packages, > but there's also -p (--portage-tree) and -o (--overlay-tree) that can be > searched, if you provide the appropriate switch. Also, most of equery's > actions have a regex option, if you need a bit more flexibility > specifying the file/pkgspec. See the manpage (when you can) or --help > output, for more. > > > Doing "emerge --empty-tree world" evoked the following response: emerge: > > error: no such option: --empty-tree > > My fault. I typed without double-checking. It's --emptytree without the > hyphen between empty and tree. Sorry. But as Nikos mentions, -e is the > short form. > > > Trying to check the available options, I did "man emerge" but just got > > groff: /lib/libgcc_s.so.1: version `GCC_4.2.0' not found (required by > > /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/libstdc++.so.6) > > ... As I said, more serious than I originally thought. Hopefully gcc- > config can straighten it out. man is working again :-> > > FWIW, most commands support --help, which is shorter than the manpage, > normally limited to a single console terminal page if at all possible, > but that can often be enough. It wouldn't have helped here, however, as > that parameter's not used enough to put it in the short-form --help > output. > > > It looks as if the problem affecting Firefox and Thunderbird also > > affects man. > > 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 so there's never too huge a > list, and even when a kde upgrade comes out, while it might be a bunch of > packages, it's almost all /just/ kde, not gcc and baselayout and portage > and a whole bunch of other stuff all at once! However, that's admittedly > a bit obsessive/compulsive. Still, I'd recommend trying to upgrade every > month to avoid getting too far out of date, and certainly not going > longer than three months, as at that point, you're just making it much > much harder to upgrade when you do, because you're so far out. Gentoo > /does/ try to keep a workable upgrade out to at least a year, but > honestly, longer than three months, and there's few enough people doing > it that infrequently that it's not well tested, and you WILL thus run > into more problems than you will staying closer to the Gentoo > mainstream. Gentoo simply isn't the best choice for people that want to > upgrade once a year or less, and then forget about it. There are other > distributions that work better for that sort of installation. OTOH, > Gentoo is one of the best choices for "obsessive compulsive" types like > myself, that like its rolling update style, updating far more frequently > (best is once a month or more often, as I said) than the ordinary binary > distribution does. 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. >From now on I'll try to follow your good example of upgrading twice a week. 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. > > I do hope gcc-config does it for you. Otherwise, I'm getting a bit > worried, as if man is broken, it's reaching pretty far into your system. > Please post updates as you have them, because I /am/ a bit worried, now. > Thanks again for your help. Best regards, John