Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am looking for a tool that would "make all my (linux) systems look the same". What I mean by this, is that I use many programs that put some kind of global config file in my local home folder. Say ~/.vimrc for Vim. I am used to my settings and I get extremely annoyed when my configs differ (say on host A and B). For Vim, I have a git repository which takes care of it, but it would be cumbersome to create a repository for each program, and it would probably break if I had ALL configs in the same repository (for instance, the ~/.synergy.conf must be slightly different on different hosts, but very similar on most).

So, before I start designing and writing something like this, I was wondering if somebody knows a tool that is flexible enough to specify how a configuration file can be adapted automatically for different systems (my low-end approach would be some Makefiles and a git repository, but there must be something more sophisticated, right?).

From the top of my head, some examples could be: Vim (.vim/+.vimrc), Git (.gitconfig), Opera (.opera/???), List of installed packages, OpenSSH (.ssh/config) but the list goes on endlessly.

share|improve this question
By "list of installed packages" do you mean you want applictions that are installed to be installed to all devices automatically? – Paul Oct 19 '11 at 4:11
@Paul: Ideally it would somehow ask, or simply point out which are missing. I realise this needs superuser privileges, which I only have on some machines (but not all). Again, what I want is flexibility (for example, when setting up the synch tool for a host, I could tell it to either automatically install missing packages or to ignore them). – bitmask Oct 19 '11 at 4:31
Well the config parts are relatively easy using rsync. Are all the machines running the same distribution - which one? For the machines I have that are permanently on the same network, I just use a shared /home over nfs. – Paul Oct 19 '11 at 4:51
Your approach does not work for laptops (which may be without network/internet access), also sharing one /home is way too strict for my taste. Besides, I do not own all machines, and on some my user name is different and I have not root access. As I said, the data isn't exactly the same, but it is quite similar. I'm probably going to tailor something with Makefiles and a bunch of scripts, but I wanted to check that I'm not reinventing the wheel (I hate that). – bitmask Oct 19 '11 at 5:08

As for config files I use dropbox and soft links.

I have a dropbox dir called config and I move there all the files I want to keep in sync. In my computers I remove all those config files, and I just link to the copy in Dropbox/config.

ie, if I want to have always the same .vimrc:

In the computer I know I have the good one:

$ mv ~/.vimrc ~/Dropbox/config/vimrc
$ ln -s ~/Dropbox/config/vimrc ~/.vimrc

In all the other computers:

$ rm ~/.vimrc
$ ln -s ~/Dropbox/config/vimrc .vimrc

Notice I like to store the hidden files without the initial dot in Dropbox.

In addition you could put the dropbox config dir in git if you want to keep version control.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .