I’ve got two computers that I use on a weekly basis:
- an iMac sat on my desk at home, which I use on a daily basis for work
- a Macbook which I take into the office, and occasionally use on the sofa and/or out and about
Both of these are working pretty well, but suffer from the issue of becoming desynchronised from one another. That is, the software and settings one one of them doesn’t exactly match that of the other.
My question is this: what techniques are people employing to solve this problem?
In my travels around the web I’ve found three potential solutions:
This is an opinionated bash script which the good folk at thoughtbot use to quickly onboard new members of staff with the software they need. It’s possible to be run multiple times on the same machine without screwing things up (allowing for updates, etc…)
This is fine I guess, if you’re working for thoughtbot (or use a lot of their tools, such as I do), but even with the ability to add customisation via a
~/.laptop.local file, it’s a little dense and unfriendly, and doesn’t really solve the issue of keeping settings in sync with each other.
Like laptop above, this is a bash-based solution to that of setting up a mac with required software. It’s a bit more complex than laptop, but that offers a lot more power for customisation, by providing a config template which you can clone and change as required.
Similar to laptop, you’re able to run it multiple times, so again, in theory, it could be used to keep a laptop up to date with the latest versions of software (i.e. doing all updates via the config template, and running it on both machines).
I’ve not tried this one yet, but I have a feeling it’s a little closer to a solution to my problem than laptop.
Now I’d not heard of this before yesterday (and haven’t used it), and in truth, this is the source of this post. It appears to be some type of remote management tool, wherein you install a client on a device, and that manages everything for you. I like the idea of this in theory, but I’m not sure if I like the idea of giving that sort of control over an external entity (at least the two above can only do anything when I choose to run them, and they’re both open source).
Unlike the two above, this suggests it should be able to keep your config in sync as well, although I’m not sure how keep this goes (for example, I doubt it’s able to set-up RubyMine to work in exactly the way that I like).
Anyway, these are a few potential options I’ve found to solve the problem, and I’ll be looking to employ at least one of them (probably mac_os), but before I do, I’d like to hear what options solutions for this might exist.