On 06/26/2012 10:51 AM, Mark Knecht wrote: > On Sun, Jun 24, 2012 at 3:18 PM, walt <w41...@gmail.com> wrote: >> On 06/24/2012 11:27 AM, Mark Knecht wrote: >>> Hi, >>> One of my machines is giving an undesired response in eselect: >>> >>> c2stable ~ # eselect binutils list >>> !!! Error: Pattern does not match any installed version of binutils! >>> exiting >> >> I would start by comparing /usr/share/eselect/* between the bad machine and >> one of the good ones. I'd probably use scp -r to copy the bad machine's >> directory to /tmp on the good machine and use diff -r to do the comparison. >> (I just discovered sftp, which is another easy way to copy things.) >> >> I love to hear a better suggestion about how to compare two different >> machines, though. You could set up an nfs mount of one machine on the >> other, but that's too complicated for my very limited needs. >> >> >> >> > > Hi Walt, > It isn't anything like fsck, etc. The machine is healthy in all > other respects (that I know of and have tested) and everything is > actually working. It's only the list option that's failing. eselect > actually knows that binutils is set correctly. It just won't like it. > > c2stable ~ # eselect binutils show > x86_64-pc-linux-gnu-2.21.1 > c2stable ~ # eselect binutils set x86_64-pc-linux-gnu-2.21.1 > !!! Error: Profile "x86_64-pc-linux-gnu-2.21.1" is already active! > exiting > c2stable ~ # eselect binutils list > !!! Error: Pattern does not match any installed version of binutils! > exiting > c2stable ~ # > > Actually, I don't think it's that hard to compare files or > directories that are supposed to be consistent on various machines. > That's what rsync does to decide what to sync. The trick is getting > the options correct which is usually my downfall. > > Anyway, in this case I compare the /usr/share/eselect/modules > directory on my local (failing) machine with one of the other machines > here in the house. In the first compare I look at the binutils file > specifically which passes. In the second compare I look at everything > in the modules directory which shows one mismatch which in this case > is that the remote machine doesn't actually have a wxwidgets.eselect > file. I cannot tell that until I log into the remote machine to > determine the difference. > > mark@c2stable ~ $ rsync --dry-run -crv > /usr/share/eselect/modules/binutils.eselect > mark@k2:/usr/share/eselect/modules/binutils.eselect > Password: > sending incremental file list > > sent 55 bytes received 12 bytes 19.14 bytes/sec > total size is 7796 speedup is 116.36 (DRY RUN) > mark@c2stable ~ $ rsync --dry-run -crv /usr/share/eselect/modules/* > mark@k2:/usr/share/eselect/modules Password: > sending incremental file list > wxwidgets.eselect > > sent 1095 bytes received 15 bytes 246.67 bytes/sec > total size is 147613 speedup is 132.98 (DRY RUN) > mark@c2stable ~ $ > > A little bit of Google suggests you can diff the files themselves > using something like: > > diff <(ssh -n me@testserver cat /home/me/source/worksforme.php) <(ssh > -n me@clientserver cat /home/me/source/worksforme.php) > > I have not tested this but suspect it probably works fine once you get > everything right.
I'd never have thought of those two ideas. Thanks for the tip. /usr/bin/eselect is just a shellscript, so adding the line 'set -x' near the top of the script may give you a clue about what part of 'list' it doesn't understand :)