Replies: 9 comments 1 reply
-
While I would agree it is definitely worth explaining things in more detail, I wouldn't expect the traditional Linux user, or rather, a typical user for that matter, would want to maintain a custom image of their own in the first place. Ideally official images or ones made by the community should cover that faucet effectively enough So then, I guess, how far should explaining things go outside of getting people up and running? I can understand the need for better documentation, but it seems like (at least from what I'm reading here) there's a disconnect between the need to explain the new things that are brought to the table and how to work with those things versus going in depth on tooling that has been explained a thousand times before in better detail either by that tools own man pages or resources abundantly available on the internet There isn't actually much (as an end user) that you yourself are expected to do or understand that would require going repo to repo and knowing the infrastructure here like the backside of your hand. In sum, if someone wants a functioning system, download the Universal Blue ISO like you would for any other project and install it the same way. Ideally, as a user, you don't have to worry about breakages nearly as often, things going downhill, packages not being available, and you certainly shouldn't have to think very much about the technologies underlying the OS you're using User friendliness of a vanilla UB installation is actually much better than what you get with a lot of traditional Linux distros where it is pretty much required that you are familiar with their specific packaging system... And I think current expectations for development are actually rather reasonable. Now, I will say, explaining these technologies and how they work in a way that benefits the end user would be a great step forward But yes, I can honestly see the need for better documentation of the project itself that maybe leans a bit into the tooling but not so far that it dismantles, for instance, everything git is capable of on its own |
Beta Was this translation helpful? Give feedback.
-
Just to set your expectations you're asking a ton of questions that no one knows the answer to, and you might be the first person asking them .. if we knew the answers we would have put them in the documentation. 😄 |
Beta Was this translation helpful? Give feedback.
-
It seems like you are asking how to write to |
Beta Was this translation helpful? Give feedback.
-
I expect to know how to modify the root filesystem. I'm not holding this on you guys because the real problem is Silverblue's documentation, which doesn't tell you how to do this at all. A hack I came up with but haven't tested in package a custom RPM with the files I want to change and layer that package with rpm-ostree, but if there was a less labor intense way of doing this, I think the vast majority of users would appreciate it. And if I'm being honest, I know plenty of other people online have asked this questions about the parent project, Fedora's image-based spins, and everyone seems to be in the dark about how to changes outside of package layering and Flatpaks. Make it clear to normal people that these guides aren't written to them, because right now, if you look at YouTube, Reddit (well what's left of it), and other online forums, not being able to tangibly modify the base image easily is a big deal breaker. I'm onboard with the whole "rebooting after installing" thing, but it concerning that one of the first things I would do, such as hardening the Linux kernel (which is about as niche as niche gets and probably the only thing in Fedora/image-based that I need to do tbh). That being said, I will attempt my hack layering solution and report back. As a feedback path, this is what I did:
|
Beta Was this translation helpful? Give feedback.
-
Modifying the root filesystem kind of defeats the point of running an immutable system and isn't entirely possible in the sense that a normal user cannot not modify anything in the /usr directory to begin with. If they were able to, the system would no longer be immutable in the sense that the part of the filesystem storing critical system packages and resources can all off a sudden be changed. There is no way to do what you are asking outside of layering and I wouldn't recommend that as a solution You can't open a terminal and all of a sudden make the filesystem mutable and then immutable again. That's counter to the entire point of having a verifiable chain of images. You can still modify things outside of /usr though as you would on any other system You're going to want to make your own image if modifying the root filesystem is your end goal: https://ublue.it/making-your-own/ There's no way around that however, there is an effort to make this process easier for people |
Beta Was this translation helpful? Give feedback.
-
Understood, but again, to set expectations, this software is alpha and currently in the process of being built, in many cases we are tracking and enabling features as they land. Fedora doesn't consider this feature ready for mass consumption yet, it is marked as Beta. One of this project's goals is to act as an opt-in project for people who want to move faster:
|
Beta Was this translation helpful? Give feedback.
-
I stand by my other points, but this is interesting. This was replicated in Silverblue, Kinoite, and Sericea's documentation, but under "tips and tricks:" https://docs.fedoraproject.org/en-US/fedora-sericea/tips-and-tricks/#_working_with_ostreerpm_ostree So the answer to the question is aside from writing an image, it's on the onus of the user? I did attempt this once by changing /etc/hosts/, but it got reset when I updated. Seems to work this time when I tried some things in /etc/ and did survive a reboot. But I can't be crazy to have looked in the dead middle of "tips and tricks..." There are some issues with custom /opt packages, like Chrome (I think this was fixed) and Portmaster but I will be testing some of my own. Most of what I need can run out of a container anyway. It's up to you guys if you want this to be closed vs leave it open for comment later. |
Beta Was this translation helpful? Give feedback.
-
There's a good deal of value in the discussion already so if anything we've got more information for the next set of folks, so I'll just move this to discussions. |
Beta Was this translation helpful? Give feedback.
-
@trafotin I’d be happy to go over your confusions one-by-one and turn those into documentation if you laid them out below in seperate short comments that could be discussed as reply-chains. One thing that the Make Your Own documentation could state more clearly, that it is just a setup guide and not a customization guide (just a shallow introduction). Most instructions regarding customizing your own image lay in the startingpoint repository’s README, and are not always applicable to images made using other templates. The issue of setup becomes pretty easy when you use a automatic setup tool like the one I built (which requires just a little bit more testing for me to add it to the docs). Regarding what you need to know how to use, a very shallow understanding of git and being able to commit and push is required when using automatic setup, while manual setup requires a bit more. Syncing your repo and merging with the Github UI is also useful, but not strictly necessary when you don’t want to keep up with upstream changes (which can be breaking as we’re still pre-release). You do not need to know Podman or Cosign at all, they are the tools that are used to make your image, but all that is set up in the repo. Only adding the signing secrets is needed, which also becomes easier with automatic setup. For further customization, you do need to know some of how the OCI Containerfile is written, but by following by example it should be pretty easy. (if you need to add files in directories other than /usr/, there’s already some COPY statements you can see in startingpoint’s Containerfile) For running scripts at build time, the scripts directory has the documentation for that. Everything in the template is intended for you to browse around and grow to understand, but you do not need to do that. For most people, editing recipe.yml and adding config files in /usr/etc/ should be just enough. What is important here is that this is for ”tinkerers”, people who want to customize their OS like their used to doing on Arch etc. This is not for ”normal people” because 1. those don’t really exist 2. statistically the average person does not even use or care about Linux. |
Beta Was this translation helpful? Give feedback.
-
Documentation page in question
How is a normal person, who doesn't understand things like git, podman, and signing their image build their own image? The "tinkerer's guide" asks a lot out of its readers and should be rewritten in such a way to help "mere mortals" or more lay users:
/etc/hosts
? These questions need to be answered, I'd imagine they would be common questions for people building their own images./etc/lightdm/lightdm.conf
with their favorite wallpaper. Provide an example of what this looks like.Thank for reading my college essay. This is probably a lot to ask for and I'd willing to be the test dummy, but if provided the "idiot's guide," I will volunteer myself as the first in line to test it.
Beta Was this translation helpful? Give feedback.
All reactions