Here's an exercise in extreme masochism:
-
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.
This challenge is meant to be a bit different though, it's supposed to be more of a "Linux Ship of Theseus." Chroot, debootstrap, and dd are all very efficient ways to get the job done, but they're basically just dropping a new ship in the harbor and tugging the old one out.
-
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.
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.
kid named nixos-infect:
-
-
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 though about that before commenting.
-
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.
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.
So, any distro to any other distro?
- Installs Fedora Silverblue
- Rebases to Bazzite
Jobs done chief!
-
-
So, any distro to any other distro?
- Installs Fedora Silverblue
- Rebases to Bazzite
Jobs done chief!
wrote on last edited by [email protected].
-
I am not enough educated 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 resulty? I know I am 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 be fractions of pennies, but any reason to donate to FOSS is always appreciated.
-
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.
-
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.
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?
-
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.
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.
Theoretically one could also prohibit rebooting.
IIRC
kexec
is pivot_root but for the kernel. -
-
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.
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.
Love the idea of the challenge, my issue would be lack of a validator tool to confirm I'd completed the challenge - any suggestions?
-
-
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"
-
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.
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.
The compiled distros should be easy instead of nightmare tbh
-
-
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.
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.
This is what I was doing with my server. I've learned there's no better feeling than starting from scratch.
-
-
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.
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.
Ummm you go first.
-
-
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.
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.
-
-
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?
Absolutely, that's basically the same thing
-
Love the idea of the challenge, my issue would be lack of a validator tool to confirm I'd completed the challenge - any suggestions?
You use the new franken system to do an update to the new version of that distro's flavour without bricking the system.
-
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.
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.
Okay i'll cheat with Guix then
-
-
Love the idea of the challenge, my issue would be lack of a validator tool to confirm I'd completed the challenge - any suggestions?
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 itm
-
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.
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.
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 theinitramfs
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 byalpine-base
andlinux-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, replaceabuild
with a bespokemybuild
andapk
withtar -x
, grapple with signed binaries, reflect on your own identity and authenticity, then take a tour throughgentoo
and find yourself missing the$HOME
you left and its familiar comforts. -