I have been using PopOS for a while now (came installed with my S76 Lemp10), but now looking for a new distro (I want to try Linux Mint). I am looking for the easiest way to set up the new distro with most of my current applications installed.
My current plan on how to move my applications and settings:
- Get dotfiles to external repo (I am using stow)
- Use ansible-playbook to set up installation of all the apps I need
- Try the ansible setup on a docker container to ensure it works
- Then try the ansible setup on a PopOS VM to ensure things work
- Modify the ansible setup to use Linux Mint package manager (synaptic I believe)
- Then try the ansible setup on a Linux Mint VM
- Once everything works, copy the data, install new distro and run ansible script on the new OS
Is above the correct way to go about this, or is there anything better or easier available?
Edit: Thanks everyone for responses. The general consensus seems to be that that above is overkill (although doable and works) and copying home folder & dotfiles and trying out the distro fresh is easier, and install software as needed. Or, try NixOS :)
That sounds like overkill, is your system really that complex that you need to automate it’s installation? Usually when I reinstall my system I install the programs I remember and whenever I need something I install it.
My dotfiles are in a repo, but that only started when I started using i3 since the config is entirely a text file, before I just used the GUI to setup my system to look like I wanted it to.
I’d push this further: I install what I need now, and then install anything else when needed. Old installs get bloated because of shit we pull over time. A new one has to be fresh. When testing a new distro you wanna see it at its (default) best.
I just want it to get to a usable state pretty quick on a new distro, and also to go back quickly to pop-os if I don’t like the new stuff. That’s why trying out ansible for this.
You might be overcomplicating stuff, I always like to point to this https://xkcd.com/1319/ if it’s something that will take you 30 min once every couple of years when you decide to switch distros, it’s not worth the time to automate IMO.
I think what people are suggesting is doing all those steps will be more time and testing than just installing the os and adding apps.
Mint is an Ubuntu derivative like Pop, so the package manager is apt. Synaptic is a gui for apt.
If you want to learn and use ansible, go for it, but it might be a bit more than you need. If you are just wanting to install the apps you want, you can just write a quick bash script that installs all the apps you want.
The file structure should be the same in Mint as Pop, so restoring your dot files should be straight forward.
This. Go the Ansible way only if you are interested in gaining skills in that domain. It is a must have skill if you want to pivot to devOps
You COULD probably do it like this if you want to gain experience with ansible. Otherwise it’s total overkill. Just write down a list of must-have apps that you currently use and install them manually in the new system. It’s always a nice opportunity to start fresh and clean.
I wish you luck… but honestly, it sounds like a lot of painful steps to get the exact same thing that a solid config flake in NixOS would get you.
I use NixOS btw. ;)
As a NixOS user myself, I agree
If you like trying to take something simple and make it super complex for no real reason then might I suggest you don’t?
Nix os has a thing like that. Personally I use an arch distrobox. I have a backup of the distrobox image container that I can put on any computer and have all the apps and settings available.
Back up home and install the new distro from scratch.
Are you really comfortable with ansible? The only reason to use it for your case is that you want to learn it. Time you spend writing a playbook and testing it will be much longer than installing everything manually on a single machine. And it will be impossible to reuse it if you consider moving to not debian based distro later.
I feel if I’m switching things often, even trying out a distro and going back to PopOS, ansible should save time in the long run. Plus, I can make my ansible yaml configs install software depending on the distro and package manager, right? I’m learning ansible as I go.
My advice is to install a clean copy of the new distro and install new software as you need it. I do this to avoid the inevitable extra packages hanging around that I never use.
If you want to get real crazy you could switch your apt sources from pop to mint and tell apt to reinstall everything, but it will almost certainly fail at some point.
If you want to automate your system install Nix is a good one to look at, nowadays when I use a new system/wipe an existing one I can just install NixOS drop my config, sign into the things that need signing into and go
Obviously doesn’t work as well if you’re trying other distros but you can still use it on them
Do you know a good beginner friendly tutorial for NixOS, I could try it in a VM first.
They have a getting started guide on their wiki I believe
Once you install it it should generate a config file in /etc/nixos/configuration.nix, the way I did it was reading that and figuring it out from there. (That file is your universal source of truth for your entire system)
You can install packages/software by adding them to the systemPackages block in the file and running sudo nixos-rebuild switch and you can find pretty much anything you need on https://nixos.org/nixos/packages.html
Also the community is pretty friendly, can generally get your questions answered on lemmy/matrix
you can automate a lot of the basc profile stuff in your dotfiles with some automation such as https://github.com/anishathalye/dotbot to bootstrap a new install. it makes your new distro right at home, and if you combine this with github to store your dotfiles, you’ll also have a backup of your environment.
I would try the Distro on an external SSD first maybe?
PopOS is way more modern that Mint, so you may have negative effects from switching
Use Nix or Guix if there’s a lot of stuff that you want to move. What you’re doing is just pointless overkill.
I LOVE how portable flatpaks are, other than some lines from fstab i just want to set the rest of the system new anyway.
Thank fuck i don’t use anything super complicated, so switching is a breeze for me.
You could make a live distro image(s) of your choice and use em on a pendrive with ventoy installed. (It’s a bit tricky tho.)