1

What are the some solutions to manage synchronizing your $HOME profile files (.profile, .gdbrc, .vimrc, etc...) across several machines that are not necessarily the same distrib/OS (Debian, RedHat, BSD, MacOS, etc...), the same version of distribs (stable, old-stable, etc...), or even not even have the same packages/tools installed ?

Some files can test the current OS it's on within the script itself (ie: shell scripts like .profile), but many can't.

Other files like ".forward" will depend on the hostname/network.

I've looked into puppet to do this, but puppet isn't installed everywhere.

I've thought about some configure/make script with m4 to generate the correct profile files depending on distrib and packages available.

Although this is a subjective question, I'ld like to know how you manage to handle this problem.

2 Answers 2

1

I have a dot_file bare GIT repo on a NAS, I clone it under my homedir and symlink all files in it into the homedir like this:

.vimrc -> dot_files/.vimrc

I have per distribution/version GIT branches as needed, I just need to switch the repo to the appropriate branch.

Obtaining the repo content for a branch can be done manually or using tools like the ones you mention. Personally I went for the manual method. Once a branch is updated on one machine I push it back to the bare repo and simply pull it on the others.

Doesn't address per-hostname/network aspect, tho. But you can always have some of the dot files addressed by a different method.

0

I use DropBox for this and symlink to my home directory. The reason I use DropBox and not git (or any repo) is that I don't want to push/pull changes. I can just update a .somefile and they are automatically pushed to all machines.

Granted, I typically keep scripts simple and don't do a lot of OS-specific configs.

You must log in to answer this question.

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