Post a Comment
When dealing with a heterogenous environment (a mixture of Linux, BSD, Solaris, HP/UX, Macs, Windows), the easist way to make your life simpler is to just install the GNU command-line utilities on all of them (via Cygwin for Windows). The GNU stuff can coexist with the native tools, and then you don't have to remember slight variations in command-line switches for each system.
I tend to create my own environment like this too, with a bunch of aliases and functions on every machine I use for all the regular things I do.
But the downside of that having someone ask me how to do something when I'm at their machine. Then I stand there trying to remember what my aliases really stand for. It makes me look like a fish out of water--which I am at that point.
I maintain a tool trying to solve this problem and more:
http://reductivelabs.com/projects/puppet
Puppet's lowest layer is a library that abstracts the differences in users, groups, filesystem mounts, or just about anything else; it's easy to add new types, and easy to add new backends for existing types (someone today just sent in support for up2date as a backend to packaging, in about 30 minutes of work with no prior experience).
In addition to the library, though, I've got a client/server architecture that makes it simple to manage a large number of machines using the same configuration (with a flexible configuration language that allows you to deal with all of the heterogeneity in your environment).






