The Linux Ship of Theseus
-
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.
EDIT: Some clarification on some of the clever tools brought up here:
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.
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.
May, I introduce you to bedrock
Ummm you go first.
This is what I was doing with my server. I’ve learned there’s no better feeling than starting from scratch.
The compiled distros should be easy instead of nightmare tbh
Love the idea of the challenge, my issue would be lack of a validator tool to confirm I’d completed the challenge - any suggestions?
Theoretically one could also prohibit rebooting.
IIRC
kexec
is pivot_root but for the kernel.So, any distro to any other distro?
- Installs Fedora Silverblue
- Rebases to Bazzite
Jobs done chief!
installs ubuntu, converts to mint. bam.
The beauty of this exercise is you can make it as easy or challenging as you want just by changing the targets, and finding different combinations can keep things interesting.
kid named nixos-infect:
I think it would be very interesting to convert e.g. a regular Fedora installation into a (so-called “immutable”) Fedora Silverblue installation or vice-versa.
debootstrap makes this easy, and familiarity with that process introduces chroot skills.
This goes against the spirit of the challenge, but as its a singleplayer game (unless you bring friends and SSH!) you can definitely choose to allow dd, chroot, and similar tools
it is pretty terrifying to debootstrap over ssh. constantly checking that you’re on the correct system, and using the chrooted terminal. it’s like a high wire act. at least the first few times.
Oh I totally believe that. I can imagine how stressful that is.
Shouldn’t everyone that installed Arch the right way be able to do it on most distros, simply after installing Pacman?
Though I think changing (shrink, create new, migrate, delete old) the partition layout would count as installing another distro on top…
Want a challange? Start with something like Silverblue.
Arch already has apt in the repo, so I’d imagine it’s not super hard to build your own Debian from there.
I “broke” linux mint just by trying to pop KDE on, had to timeshift because it messed up my keyboard layout and a whole bunch of other things with my display.
I don’t know how people do these crazy changes without pain, and have a feeling the answer is simply “there’s pain” 😂
I am not educated enough about this, but don’t these kind of games unnecesarrily strain all the servers that host the packages for people that really need them for download and most of these people run these servers for free in good will and faith that they will serve meaningful needs with positive impact? I am sorry for spoiling the fun, but I felt like I had to point this out.
As other commenters have said, its about as strenuous as doing two normal installs.
However, if you want to do this challenge but feel guilty about the consumed resources, consider donating to the two distros you are performing this with to cover any additional service costs. In all likelihood it’ll only cost them fractions of pennies, but any reason to donate to FOSS is always appreciated.
No? It’s the same amount of “strain” as doing two full OS installs of the different distros.
You are kind of right. I should have thought about that before commenting.
How is this any less meaningful than any other use case? Is downloading a distro to play video games ok? To shitpost on social media? To watch clickbait videos on youtube? Why is this in particular a bad use of resources?
New Game+: speedrun it
I have seen dozens of systems migrated from Gentoo to CentOS by live swapping the userspace and eventually rebooting into the new kernel. A hair raising experience to be sure.