Since I am a lazy Debian user, I am not used to compiling things from source.  (sidenote: It is interesting to me how many people from other distributions are fairly used to mucking around in source code, spending hours working on getting a simple package installed)  But, clusterssh isn't available for cygwin as a package, and I think it might save me a lot of time, so wanted to try it out anyway on my laptop (rather than running it over X on my desktop - our desktop automatically goes to sleep so it seems silly to turn it on to run a program from the laptop - though arguably I could turn the laptop off and go sit on the desktop, but I prefer sitting on the couch with the laptop.  The obvious answer is to install Linux on my laptop, which I'll probably get to at some point).  Okay, enough with the sidenotes (I think).

To install clusterssh, the README helpfully gives you some tests to figure out if you have the correct dependencies.  Unfortunately, I didn't have either Tk or X11::Protocol.

It took me a minute to find the Tk package for cygwin, since I first looked under "Tk", and nothing was there.  Then I realized that I should be looking for "Tcl/Tk", and saw that it was already installed.  Finally, I remembered that I need the perl library for Tcl/Tk, so installed that.

Then I went looking for perl-X11-protocol, which took a bit, because it isn't in cygwin, and I haven't had to think about cpan packaging in a long time (once again, thanks to Debian) so forgot how to use cpan for a bit.

But, eventually got the correct "install X11::Protocol" syntax, and off I went.  One of the tests failed (which I was afraid of, as I had seen a cpan-testers report that made it look like X11::Protocol hasn't worked in a long time on cygwin.  But, fortunately, the only reason the test failed was that X wasn't started, which was easy to resolve with a ``.  (Note that I always use as opposed to just startxwin - years ago I had problems with the latter, and I never looked into what the difference was.  I saw someone run it recently without the .sh, so it probably isn't important any more, but old habits die hard.)

With the tests now passing, time to actually install clusterssh, and with the regular configure; make; make install magic combo, we're off to the races (note the executable is cssh, and not clusterssh).

I keep forgetting why anyone pays for software any more.

And lest you think I'm simply mooching off the system (which I am, since we no longer have any non-free software (at least in the "free as in beer" sense - we do have some non-free as in freedom stuff here and there - at I think I do - I have the non-free repository in apt, and I don't pay that much attention to what is what, which I probably should a little)) I am the only (everyone else disappeared?) developer of LifeType, and do put quite a bit of time into that software, and various other projects, submitting patches and bug reports, etc.

Posted by Jon Daley on February 23, 2009, 11:49 am | Read 47814 times
Category Reviews: [first] [previous] [next] [newest]

Wow. clusterssh is really great. Partly, it is just neat to watch multiple machines all responding to the command typed once.

But, it also saves a bunch of time, since I just have to type them once, rather than multiple times for each server.

And it isn't locked into everything having to being exactly the same (otherwise, you could just write a script), but you can (un)select any given machine at any time to check something or execute custom commands for certain servers. (of course you don't use the same passwords on each server, right?)

The example in the documentation was doing an apt-get, but I've never been thrilled with apt-get in terms of will it always do the right thing for dependencies, etc? I'd rather use aptitude and check everything carefully before running it. And, I'm happy to report that aptitude works nicely as well; I had one server already updated, so I took it out of the cluster early and continued with the other two.

And then when I checked in my configuration files (I keep all of /etc in subversion), I can just type the commands once - I've been meaning to make scripts to do:
svn add `svn stat | grep "^?" | awk '{print $2}'`
(and the analog for svn remove)
but I haven't gotten around to it. I don't really mind typing it once, but typing it in for each server gets annoying...

Posted by jondaley on February 23, 2009, 1:23 pm

I couldn't leave the question unanswered if I was using any non-free software, so I checked it out. I am pretty happy with the results.


(festlex is a package I recently installed to get caller-id/name announced audibly, and other than the fact that it causes all calls to hang when the computer is turned off, it's great...)

Posted by jondaley on February 23, 2009, 6:07 pm

Thank you for posting this; saved me quite a bit of time and headache.

Posted by JessD on June 29, 2012, 11:09 am
Add Comment
Add comment
E-mail me when comments occur on this article