I’ve been dual-booting since the early-oughts, but I’m only just now preparing to delete my Windows partition for good.
What with all the repartitioning in my future, I figure it’s a good time to just make a clean start - reinstall from scratch. …but I have about a decade’s worth of tools and dotfile tweaks accumulated, including things like updates to xorg.conf to support my old (but awesome) mouse.
So… What’s your favored toolset to get your machine back to the way you like it?
I’ve done this all manually many a time, backing up my home dir, writing scripts to install software, copy important config files into place, etc.
How do you like to go about reinstalling your programs, restoring .dotfiles and config?
My entire .dotfiles is in GitHub. Anything I want to keep common across machines is stored there and either inserted in PATH or symlinked as needed.
Second this, just be mindful not to sync anything sensitive in there.
@Jamie
Using a dotfiles manager makes it a little easier to avoid, even if it’s just GNU Stow.
@muddybulldogStow is good and I’d recommend it for someone starting out. By the time I found about it I had already written a silly amount of code from scratch to accomplish effectively the same thing.
@muddybulldog
After using a small install script of my own for a while, I switched to yadm. It’s nice because it’s a shell script, so no need to compile on different architectures/UNIXen.Thanks for this. Someone else has mentioned this a while back and I completely forgot what it was called. Which is ironic given what the acronym stands for. I’ll give it a second look.
What a novel use for a git repo… I like it.
I use
chezmoi
for tracking dotfiles and used to use a fancy Ansible setup. Now, I just occasionally backup a list of explicitly installed packages and track the major changes made to the system in a simple Markdown file.@andybug
I’ve been working on using Guix. Theoretically, I love the idea, but there’s definitely some learning curve.
@swordsmanluke
I just tar up /home and /etc, install the new system, untar my backup to a directory inside my home directory, and then copy only the stuff I wanted to keep.
I see a fresh install as an opportunity for a new start.
I’m a /home on separate drive/partition kind of guy. I like it just following my installs. Though seeing some using guix/nixos to create a config for my desktop has got me wanting to spend a weekend trying that out.
That’s been my approach too, but I’ve reached ten plus years of God knows what in my dotfiles. It’s time for a clean reinstall. 😁
I’ve been using
chezmoi
for dotfile management and have been really happy with it. You can directly import existing files to get started and template out any differences between systems.
The rest, ansible for any sufficiently complex enough setup at the moment. Good for integration work with LDAP, etc if your using that. Again may play around with guix on that front.
I was just thinking yesterday when looking at how NixOS works. The config file seems to be quite reminiscent of an Ansible Playbook. I mean maybe I’m way off the mark, I haven’t really dug into Nix much yet.
Guix/nix seem very powerful. The reproducibility is something ansible just isn’t built to same level robustness for, which makes them seem very promising to me.
there’s like a million ways. ansible, copy /home with btrfs, just make a shell script that rsyncs everything, bare git repo, gnu stow, use nix os, etc.
personally, i just use a shell script to restore everything from an encrypted rclone local backup (although i also backup to a server). i do this because writing the shell script was so easy because my data is very well organized.
that’s probably the best advice i can give you – if your data is well-organized and free of junk (duplicates, broken files, useless files, etc) then that goes a long way towards streamlining any restore scheme.
Unfortunately, as always, the best solution does not exist. Everything has its advantages and disadvantages.
For example, I like Chezmoi for managing configuration files. But the tool is only for the configuration files in /home.
Ansible, on the other hand, can be used for / and /home. But already the basic functions are more complex which requires some training time.
The best way is to use nix 🤙🏻