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.

    • merthyr1831@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      12 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.

  • Jonathan@lemmy.world
    link
    fedilink
    arrow-up
    16
    ·
    16 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).

  • Go-On-A-Steam-Train@lemmy.ml
    link
    fedilink
    arrow-up
    13
    ·
    16 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” 😂

    • BJ_and_the_bear@lemm.ee
      link
      fedilink
      English
      arrow-up
      3
      ·
      15 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

    • ☂️-@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      14 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.

  • villainy@lemmy.world
    link
    fedilink
    arrow-up
    11
    ·
    16 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.

  • steeznson@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    16 days ago

    It is quite easy to go slackware -> gentoo from what I remember but minimalist distros might be cheating

  • BeardedGingerWonder@feddit.uk
    link
    fedilink
    English
    arrow-up
    5
    ·
    15 days ago

    Love the idea of the challenge, my issue would be lack of a validator tool to confirm I’d completed the challenge - any suggestions?

    • Madagaskar_sky@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      15 days ago

      You use the new franken system to do an update to the new version of that distro’s flavour without bricking the system.

    • Semperverus@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      15 days ago

      After completing the challenge and making sure your system is usable and can survive a reboot:

      If you’ve kept the old package manager, search for installed packages and make sure that the package manager itself is the only thing left. Then delete it.

  • NicolaHaskell@lemmy.ml
    link
    fedilink
    English
    arrow-up
    4
    ·
    14 days ago

    without installing another distro over the top of it … [replace] package managers

    The package manager is the distro, though.

    $ pacman -S apk-tools
    $ apk add alpine-base linux-lts
    

    Then kexec to alpine’s kernel and the initramfs generated by its installation (which would incidentally “replace” PID 1 with the new /sbin/init). For clean up you could take a diff of “tar -t” for all the installed packages from both distros then delete the files only in the old distro’s packages.

    Make a self-compiled distro your target.

    Replace the first step with a compilation of apk, abuild everything required by alpine-base and linux-lts (git clone aports to bootstrap that work), then add the package directory to /etc/apk/repositories before the second step. Next, begin to worry that you haven’t fully broken free yet, replace abuild with a bespoke mybuild and apk with tar -x, grapple with signed binaries, reflect on your own identity and authenticity, then take a tour through gentoo and find yourself missing the $HOME you left and its familiar comforts.

  • sntx@lemm.ee
    link
    fedilink
    arrow-up
    2
    ·
    16 days ago

    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.

    • swab148@lemm.ee
      link
      fedilink
      arrow-up
      5
      ·
      16 days ago

      Arch already has apt in the repo, so I’d imagine it’s not super hard to build your own Debian from there.