The Linux Ship of Theseus

  1. pick any distro and install it.

  2. 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.

    • antsu
      link
      fedilink
      5325 days ago

      But the rules say the system must be usable.

  • @[email protected]
    link
    fedilink
    1225 days ago

    I once switched from Debian i386 to amd64 in-place. That was MUCH harder than you would expect, I guess somewhere between medium and hard in your list. That server is still running that install btw, so in the end it all worked out.

    • ☂️-
      link
      fedilink
      1
      edit-2
      23 days ago

      i did a bit of back and forth with a couple of debian based distros in the past but it always ended up buggy and weird. it was a desktop install though, i imagine servers would be simpler.

    • Jonathan
      link
      fedilink
      224 days ago

      I had forgotten about doing that myself. I did that on a couple servers once the distros had full 64 bit builds. Does that technically count as an architecture swap in-place as well?

    • slazer2au
      link
      fedilink
      English
      124 days ago

      Why does that sound familiar.

      Did they load an OS into ram to run ssh then rebuild the machine, also some VPS that the provider was dragging their feet on remote hands.

      • @[email protected]
        link
        fedilink
        223 days ago

        I can’t find it now but basically something like that yeah. VPS provider only gave them SSH on linux so couldn’t run the openbsd installer any normal way either

  • Jonathan
    link
    fedilink
    2525 days ago

    “Medium: Same as easy but go from the derivative to the base.”

    I can’t quite recall, but I think I did exactly that with Ubuntu -> Debian once upon a time. I think Ubuntu was only a year or so old though, so there wasn’t a huge amount of divergence back then. As a bonus anecdote I also attempted a semi-successful build of Gentoo on a PPC Mac around the same time (nothing before or after that has compared in its level of nightmare).

    • @[email protected]
      link
      fedilink
      English
      625 days ago

      I also attempted a semi-successful build of Gentoo on a PPC Mac around the same time (nothing before or after that has compared in its level of nightmare).

      Amen!

    • @[email protected]
      link
      fedilink
      1125 days ago

      Reminds me of MattKC, a guy on YouTube who does similar stuff. He ported the .Net framework to win95. very interesting videos, if think this challenge would be exactly his type.

    • @[email protected]
      link
      fedilink
      English
      121 days ago

      Not quite the same but you might like the Linux from Nothing series, building out a Linux install from first principles.

      Obviously lots of linux youtubers have done videos on linux from scratch too but the step by step nature is pretty enjoyable to watch.

  • @[email protected]
    link
    fedilink
    English
    8
    edit-2
    25 days ago

    So, any distro to any other distro?

    • Installs Fedora Silverblue
    • Rebases to Bazzite

    Jobs done chief!

    • Norah (pup/it/she)
      link
      fedilink
      English
      123 days ago

      Bazzite on GNOME? Rebasing from GNOME to KDE causes so many headaches. Ask me how I know (yes I’m aware they tell you not too).

      • SemperverusOP
        link
        fedilink
        English
        725 days ago

        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.

  • @[email protected]
    link
    fedilink
    1425 days ago

    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.

  • Go-On-A-Steam-Train
    link
    fedilink
    1725 days ago

    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” 😂

    • ☂️-
      link
      fedilink
      2
      edit-2
      23 days ago

      theres pain but its also very satisfying to pull this kind of stuff off. im more of a stable system kind of guy these days tho.

    • @[email protected]
      link
      fedilink
      English
      424 days ago

      Reminds me of trying NsCDE… it changed a ton of settings and no other desktop looked right after that. I ended just blowing away my home folder and restoring my files

  • Shimitar
    link
    fedilink
    English
    625 days ago

    Linux From Scratch rulez!

    Migrate from Nix to Linux From Scratch!