The Linux Ship of Theseus

Crossposted from: https://lemmy.ml/post/27387345

  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.

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.
  • Dran@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

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