- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
The Linux Ship of Theseus
Crossposted from: https://lemmy.ml/post/27387345
- pick any distro and install it.
- Then, without installing another distro over the top of it, slowly convert it into another distro by replacing package managers, installed packages, and configurations.
- System must be usable and fully native to the new distro (all old packages replaced with new ones).
- No flatpaks, avoid snaps where physically possible, native packages only.
Difficulties:
- Easy: pick two similar distros, such as Ubuntu and Debian or Manjaro and Arch and go from the base to the derivative.
- Medium: Same as easy but go from the derivative to the base.
- Hard: Pick two disparate distros like Debian and Artix and go from one to the other.
- Nightmare: Make a self-compiled distro your target.
Clarifications
- chroot,- dd,- debootstrap, and partition editors that allow you to install the new system in an empty container or blanket-overwrite the old system go against the spirit of this challenge.
- These are very useful and valid tools under a normal context and I strongly recommend learning them.
- You can use them if you prefer, but The ship of Theseus was replaced one board at a time. We are trying to avoid dropping a new ship in the harbor and tugging the old one out.
- It may however be a good idea to use them to test out the target system in a safe environment as you perform the migration back in the real root, so you have a reference to go by.
- Once I planned to do just this, converting my Ubuntu into Debian (or maybe it was the other way round). I assumed it would just be a matter of changing the repos and then - apt full-upgradeand boom! new distro. Still, I decided to do some research first - you know, just in case. Whatever I learned made me abandon the idea in a hurry. Perhaps I’ll try again but this time skip the boring research step.
- My current system was installed as manjaro, but i immediately started having AUR issues, so I just changed all the repos out to the official arch ones and over time everything manjaro specific has been updated or removed. - The first lines in my - /var/log/pacman.logare from early 2015, and ive fully rebuilt my computer since then, including swapping hard drives (- dd’ to clone old drive onto new drive). So at this point my PC is a hardware and software ship of theseus.
- Very cool idea and a fun project if you have a masochistic streak or a unique use case. - Also … would running the other distro inside a docker container qualify because the processes are actually running on the same kernel albeit side-by-side with the native OS, or is this disqualified like using - chroot?
- When I started learning Linux at work, the game I played with myself was i’d install Debian stable minimal on my primary workstation and I would not reinstall it ever. No matter what happened, I would always fix it. - I learned to install the basic subsystems to get a GUI and audio, learned the fun of Nvidia drivers to get xinerama and hw decoding working. In retrospect it seems trivial but as a new learner it was challenging and rewarding. - At one point I was trying to do something, and a guide online suggested installing some repo and installing newer libraries. I did so, and a week later I did a dist-upgrade (because I didn’t know any better) and when I rebooted I was presented with a splash screen for “crunchbang” linux. - Figuring out how to get back to Debian without breaking everything probably taught me more about packages, package managers, filesystems, system config files, init (systemd wasn’t really a thing yet) than everything else I had done combined. - For anyone wondering: 12 years into the project I had a drive from the mdadm mirror die, and while mdadm was copying to another mirror, the other drive died. I considered that a win but y’all can be the judge (no files were lost, 12yr into my Linux journey I had long since figured out automating NFS and rsync). 
- My main system was installed as RedHat 4.2 over quarter of a century ago. At some point I migrated it to rawhide one package at a time. Then some years later I installed portage and started building gentoo packages until eventually my system was fully converted to gentoo. The hardware was fully replaced a few times over as well. Sometime one component at a time, sometime wholesale. The system is still chugging along just fine. 


