this post was submitted on 07 Jan 2024
30 points (89.5% liked)

Linux

48069 readers
1089 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 5 years ago
MODERATORS
 

this is going to be my personal experience of making custom ublue image. hopefully you will learn something from it.

so first of all you have to decide which Desktop Environment you want to use. I have chosen KDE but you can choose whichever DE you want. to see available DE you can go here. now copy the url of the image you want to modify. for my case it will be ghcr.io/ublue-os/kinoite-main:39.

create a file and name it Dockerfile. and add the following line to the Dockerfile

FROM ghcr.io/ublue-os/kinoite-main:39
# Install your favoutie program using rpm-ostree
RUN rpm-ostree install zsh fish neovim vim emacs kitty alacritty distrobox -y
# finally cleanup and commit the changes
RUN rpm-ostree cleanup -m && \
ostree container commit

save the file and run the following command in the current directory to build the image. (make sure you have docker installed on your system)

sudo docker build -t custom_image:latest .

you can now upload it to ghcr.io or rebase on it using rpm-ostree rebase command.

I hope this was useful. :)

top 7 comments
sorted by: hot top controversial new old
[–] beta_tester@lemmy.ml 3 points 10 months ago (3 children)

Thx for the write up. I'd be itnerested in the following.

For whom is it useful to write his custom image? Maintenance? Added value?

When is it useful to deviate from fedora and use a ublue version? You don't have a fedora signed distro anymore. You have to trust another party blindly not to inject malicious code. Risk of not being maintained anymore.

[–] d3Xt3r@lemmy.nz 4 points 10 months ago* (last edited 10 months ago)

It's useful for those who are interested in using an immutable OS. An immutable OS has several advantages over regular OSes, such as reliable and atomic updates, easy rollbacks, increased stability etc. However, a major drawback with immutable OSes is customisation - because certain key parts of the system are read-only, you may be limited in what you can change. Fedora Silverblue/Kinoite solves this to some extent by using ostree, and rpm-ostree to install packages in a layered fashion. The problem with that though is that it can significantly increase update times and also bloats up your system, which is a concern if you've got a lot of packages installed in that manner. Plus, there's also the issue of limited customisations - maybe you want to switch to a completely different DE for instance.

This is where making your own custom image comes in handy. When you fork the template, you can put in all your customisations on git, and your custom image gets built automatically.

You have to trust another party blindly not to inject malicious code

But you're doing that anyway with pretty much every piece of code/app/website that you use without auditing it yourself, so what makes this any different?

In any case, at least with uBlue you don't have to blindly trust anyone because everything in uBlue is fully open and transparent, you can see for yourself exactly what's being done - in plain text.

Risk of not being maintained anymore.

Not really an issue. This isn't a distro, it's literally just a script which builds your own distro using upstream code, which is pulled from Fedora. So the only real risk is if Fedora decides to shut shop or something. But even if they did, someone else would fork it, and you could just rebase to that fork and move on.

[–] bjoern_tantau@swg-empire.de 3 points 10 months ago

It's useful when you need something custom. Bazzite, an alternative OS for the Steam Deck and other handheld PCs, is built that way.

Or if you want one for your company.

[–] Guenther_Amanita@feddit.de 2 points 10 months ago* (last edited 10 months ago) (1 children)

For whom is it useful to write his custom image? Maintenance? Added value?

It's not good to layer too many packages on top of the normal atomic Fedora.

If you still need a special configuration, like for Nvidia ("silverblue-main-nvidia"), gaming setup ("bazzite"), non-supported DEs/ TWMs (e.g. "deepin-main") or special hardware (e.g. the Asus ROG or MS Surface), you can just download it and have everything in one go and working as a whole.

This is not only very convenient, but also more reliable, since your baked-in Nvidia driver for example/ config is the same as the one from thousands of other users, including the developers.
It prevents the "But it works on my PC"-problem and helps troubleshoot issues way faster and more precise.

Anecdotally, KDE has been a mess for me everytime after a few weeks for example.
This is due to package drift.
On my Kinoite install, it is actually usable and doesn't have nearly as many bugs as on the normal Fedora KDE variant. Just, because the install is the same.

When is it useful to deviate from fedora and use a ublue version? You don't have a fedora signed distro anymore. You have to trust another party blindly not to inject malicious code. Risk of not being maintained anymore.

Pretty much always imo.
Fedora isn't allowed to ship some stuff ootb, and uBlue tweaks it for you.
Also, you get more choice, as mentioned above.
uBlue isn't much derivated from the OG Fedora Atomic, and it has a large user base.

It doesn't need much maintenance, since it is mostly automated. That's the main pro point compared to forked distros like Nobara. Also, it's signed.

[–] beta_tester@lemmy.ml 1 points 9 months ago

I understand it much more clearly, thanks

[–] throwawayish@lemmy.ml 3 points 10 months ago

Thank you OP for that, but... why should we prefer this over uBlue's work on streamlining this process?

[–] Guenther_Amanita@feddit.de 2 points 10 months ago

Wow! Is it really this easy? Awesome, I'll look into it, thanks!