"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 * 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 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) 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. 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. 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. -- 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