this post was submitted on 19 Mar 2025
1 points (100.0% liked)

Linux

65485 readers
570 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 7 years ago
MODERATORS
 

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.

all 16 comments
sorted by: hot top controversial new old
[–] arality@programming.dev 1 points 1 year ago (1 children)
[–] Digit@lemmy.wtf 1 points 6 months ago

Yup. Too easy. Cheat codes.

spoilerbrl fetch <newdistro> ; brl remove -d <olddistro>

[–] steeznson@lemmy.world 1 points 1 year ago

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

[–] mariusafa@lemmy.sdf.org 1 points 1 year ago

Okay i'll cheat with Guix then

[–] NicolaHaskell@lemmy.ml 1 points 1 year 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.

[–] ArsonButCute@lemmy.dbzer0.com 1 points 1 year ago (1 children)

I've got a blank macbook air at home waiting for a project.

I've never undergone a project like this without cheating by using bedrock linux as an intermediary then "Unbedrocking" my install (officially impossible, unofficially insane) with another PM as my default to convert from debian to arch years ago.

This is gonna be fun, or hellish, idk I'll find out.

[–] Digit@lemmy.wtf 2 points 6 months ago

I've done the impossible/insane on the other side... manually imported a live system from usb into bedrock.

If I then did an unbedrocking... that's a fun double janky way to install a live ISO to "exactly" like it is on the live system.

... I'd never do that though. If I did, I'd just re-hijack it again, back to bedrock.

[–] EarlGrey@discuss.tchncs.de 0 points 1 year ago* (last edited 1 year ago) (1 children)

So, any distro to any other distro?

  • Installs Fedora Silverblue
  • Rebases to Bazzite

Jobs done chief!

[–] Overspark@feddit.nl 0 points 1 year ago (1 children)

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.

[–] GoOnASteamTrain@lemmy.ml 0 points 1 year ago (1 children)

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

[–] FrameXX@discuss.tchncs.de 0 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] communism@lemmy.ml 0 points 1 year ago (1 children)

No? It's the same amount of "strain" as doing two full OS installs of the different distros.

[–] FrameXX@discuss.tchncs.de 1 points 1 year ago* (last edited 1 year ago)

You are kind of right. I should have thought about that before commenting.