|
I'll try the forking option, thanks! And yeah it's set up as a user service
|
# ? Jun 30, 2023 09:36 |
|
|
# ? May 28, 2024 11:13 |
|
I'm here to once again spread the world of immutable Linux. Today I'm test driving uBlue, which is a small layer on top of immutable Fedora to add conveniences such as pre-installed hardware acceleration packages, distrobox, and other small packages. The beauty of it is that you just need a simple code:
Apparently they have this uBlue Beyond project which is a thin layer on top of stock GNOME by Cassidy James Blaede, the previous lead dev of ElementaryOS, to make is a little less opinionated, so comes with dash-to-dock and other little niceties out of the box: https://github.com/ublue-os/beyond Man, immutable Linux is like living 5 years in the future.
|
# ? Jun 30, 2023 11:00 |
|
Son of Thunderbeast posted:
Can you show us what cli-app --help lists? For me it feels that 'cli-app --service --config configfile.json' would be the correct syntax.
|
# ? Jun 30, 2023 13:50 |
Lifroc posted:I'm here to once again spread the world of immutable Linux. Today I'm test driving uBlue, which is a small layer on top of immutable Fedora to add conveniences such as pre-installed hardware acceleration packages, distrobox, and other small packages. Make sure to follow the instructions to reset ostree reset first since if you have any overrides and the new image doesn't have those applications anyway I think it can bork things.
|
|
# ? Jun 30, 2023 14:13 |
|
Son of Thunderbeast posted:I'll try the forking option, thanks! And yeah it's set up as a user service Just write a shell script that invokes it correctly and have systemd call that instead e.g. in /home/thunderbeast/bin/launch_cli-app code:
Test running the service with /home/thunderbeast/bin/launch_cli-app to make sure it works Then in your systemd service: code:
|
# ? Jun 30, 2023 14:34 |
|
Lifroc posted:I'm here to once again spread the world of immutable Linux. So one question I have about immutable stuff is, how do you do system level config changes? Like, I made a .rules file in /etc/udev/rules.d/ to stop my mouse from waking up the PC when it's asleep. How do immutable systems handle that, is there a separate location for config that's layered over the top? That would be kinda cool actually. Here's all the stuff I've done to configure the system in one place, easy for backups and troubleshooting if something I did before is now bad.
|
# ? Jun 30, 2023 17:23 |
Immutable works for kiosk systems, not for personal computers.
|
|
# ? Jun 30, 2023 17:37 |
|
BlankSystemDaemon posted:Immutable works for kiosk systems, not for personal computers. Tell that to apple, which I believe has made macOS mostly immutable?
|
# ? Jun 30, 2023 17:41 |
Klyith posted:So one question I have about immutable stuff is, how do you do system level config changes? /etc and /var (and /temp of course) are mutable in ostree. It's still shipped in the image, but it will overlay any changes you make to it on top of and overwrite the standard files. It also keeps track of the changes you made to it compared to the defaults so if you run code:
Here's a more detailed article on the directory structure https://ostreedev.github.io/ostree/adapting-existing/ Edit and this is a more regular english version: https://docs.fedoraproject.org/en-US/fedora-silverblue/technical-information/ BlankSystemDaemon posted:Immutable works for kiosk systems, not for personal computers. Remarkable how wrong one person can be. Nitrousoxide fucked around with this message at 17:44 on Jun 30, 2023 |
|
# ? Jun 30, 2023 17:41 |
Last Chance posted:Tell that to apple, which I believe has made macOS mostly immutable?
|
|
# ? Jun 30, 2023 17:42 |
|
Last Chance posted:Tell that to apple, which I believe has made macOS mostly immutable? And Valve with the Steam Deck.
|
# ? Jun 30, 2023 17:50 |
|
This is dumb, but: how do you rm and mv files using variables in bash? I use Music on Console, which I really like. But when I modify a playlist, I have to add the song, save the new playlist with a garbage name (e.g: aa.m3u), then cd to my Music directory and delete the old playlist and replace it with aa.m3u. I'd like to use a bash script to automate this somewhat but my test script that uses rm ${name}.m3u mv aa.m3u ${name}.m3u doesn't work.
|
# ? Jun 30, 2023 18:00 |
|
Nitrousoxide posted:
Yes, BlankSystemDaemon is obviously wrong. It's not only kiosk systems, but also appliances. Single purpose systems. Such as, as we can see, Steam Deck. The immutable OS makes perfect sense there, there is absolutely no reason why it wouldn't be. Chromebook would be another one as well (no idea if they're immutable, but it would fit). For a workstation that I would want to actually, you know, use? That's, of course, laughable.
|
# ? Jun 30, 2023 18:02 |
|
Though on the other hand, making a FreeBSD system where the base system is immutable (except select parts of etc and var), but the packages are free to clobber each other, would make a lot of sense. Boot environment based upgrades are already most of the way there, you'd just need to mount select parts RO at boot.
|
# ? Jun 30, 2023 18:12 |
|
F_Shit_Fitzgerald posted:This is dumb, but: how do you rm and mv files using variables in bash? Put quotation marks around file names, i.e. code:
|
# ? Jun 30, 2023 18:25 |
Volguus posted:Yes, BlankSystemDaemon is obviously wrong. It's not only kiosk systems, but also appliances. Single purpose systems. Such as, as we can see, Steam Deck. The immutable OS makes perfect sense there, there is absolutely no reason why it wouldn't be. Chromebook would be another one as well (no idea if they're immutable, but it would fit). ChromeOS also fit the definition of appliance systems, and the same is true for OrbisOS and XBoxOS. Computer viking posted:Though on the other hand, making a FreeBSD system where the base system is immutable (except select parts of etc and var), but the packages are free to clobber each other, would make a lot of sense. Boot environment based upgrades are already most of the way there, you'd just need to mount select parts RO at boot.
|
|
# ? Jun 30, 2023 18:41 |
|
BlankSystemDaemon posted:If select parts of a system aren't immutable, how is the system immutable? How far do we want to go with that? If the whole system has to be immutable, including configuration, how do users work? e: not a callout or anything, but I think it could be a good point of discussion. How far does an "immutable" system have to go to be considered "immutable"?
|
# ? Jun 30, 2023 18:43 |
BlankSystemDaemon posted:If select parts of a system aren't immutable, how is the system immutable? Yeah! How dare someone call a distro/OS immutable if something like /temp or /var is mutable. The system should only be able to read the image and do nothing with it whatsoever.
|
|
# ? Jun 30, 2023 18:45 |
Kibner posted:How far do we want to go with that? If the whole system has to be immutable, including configuration, how do users work? NanoBSD is another example, though it's perhaps less well-known. Configuration data is kept on /cfg, which is then copied to /etc at boot-up, with that and /var being md(4) devices. Nitrousoxide posted:Yeah! How dare someone call a distro/OS immutable if something like /temp or /var is mutable. The system should only be able to read the image and do nothing with it whatsoever.
|
|
# ? Jun 30, 2023 18:48 |
|
Nitrousoxide posted:Yeah! How dare someone call a distro/OS immutable if something like /temp or /var is mutable. The system should only be able to read the image and do nothing with it whatsoever. Well, appliances are not made for work, so "just reading the image" makes perfect sense. Of course, you can allow the user to write things, let's say in /tmp, which are lost upon reboot. Perfect for a public facing appliance. Let's just expand the definition of immutable to /var as well, since you do want logs (for support & diagnose things), and maybe could have /var/etc/ with overridden configuration changes (to the extend you let the user change their configuration). Anything outside of that is, forbidden. IMO such a system can still be considered immutable. Beyond that, no.
|
# ? Jun 30, 2023 18:52 |
|
Volguus posted:Well, appliances are not made for work, so "just reading the image" makes perfect sense. Of course, you can allow the user to write things, let's say in /tmp, which are lost upon reboot. Perfect for a public facing appliance. Let's just expand the definition of immutable to /var as well, since you do want logs (for support & diagnose things), and maybe could have /var/etc/ with overridden configuration changes (to the extend you let the user change their configuration). Does the Steam Deck not count, in this case, because it allows for multiple users and install Flatpaks into their personal /home/{user} directories, which all persist across reboots?
|
# ? Jun 30, 2023 18:59 |
|
"Immutable" distros (and I use one) would be more accurately described as "version-controlled". You still write poo poo into /etc and install or upgrade packages, the difference is your mutations get captured into an atomic, reversible commit. But "immutable" seems to have become the accepted slang term, however imprecise. NihilCredo fucked around with this message at 19:06 on Jun 30, 2023 |
# ? Jun 30, 2023 19:03 |
Volguus posted:Well, appliances are not made for work, so "just reading the image" makes perfect sense. Of course, you can allow the user to write things, let's say in /tmp, which are lost upon reboot. Perfect for a public facing appliance. Let's just expand the definition of immutable to /var as well, since you do want logs (for support & diagnose things), and maybe could have /var/etc/ with overridden configuration changes (to the extend you let the user change their configuration). Neat, that's what OSTree does, mostly. Etc isn't symlinked to /var/etc though the original /etc is in /usr/etc/ so it can be restored any time.
|
|
# ? Jun 30, 2023 19:04 |
|
NihilCredo posted:"Immutable" distros (and I use one) would be more accurately described as "version-controlled". Thank you. I've been unclear on what "immutable" really meant, what collection of properties it referred to, and this clarifies things ... some.
|
# ? Jun 30, 2023 19:11 |
|
Yeah, it seems like the term got sort of expanded to mean things that it doesn't actually mean. When people talk about an immutable desktop OS, they're talking more about something like ChromeOS, where the base system is immutable, and then you overlay changes on top. OSTree is a slightly different take on it that, to me at least, feels even further away from "immutable". But if we use the term "DJ" for someone who hits play on an iPod, and also for a soup-to-nuts music composer, producer, and performer; then we may as well let immutable mean all these things.
|
# ? Jun 30, 2023 19:30 |
Computer viking posted:Though on the other hand, making a FreeBSD system where the base system is immutable (except select parts of etc and var), but the packages are free to clobber each other, would make a lot of sense. Boot environment based upgrades are already most of the way there, you'd just need to mount select parts RO at boot. FreeBSD is already "immutable" in the sense that pkg(8) doesn't touch any of the base system.
|
|
# ? Jun 30, 2023 20:05 |
|
Kibner posted:Does the Steam Deck not count, in this case, because it allows for multiple users and install Flatpaks into their personal /home/{user} directories, which all persist across reboots? We can call mickey mouse immutable if we want.
|
# ? Jun 30, 2023 20:09 |
|
I feel like the sense that the system is immutable is "even if you have root you can't alter any OS files". Not "the machine runs off a SD card with the slider set to read-only".
|
# ? Jun 30, 2023 20:18 |
|
BlankSystemDaemon posted:Also, minor nit, but I just remembered that I forgot to mention this. Well yes, that's why I think making the base system read-only outside logs and config overrides would be a fairly simple thing to do - if you want to update the base system, write to a new boot environment and reboot into that instead of changing the existing files. It doesn't seem against the spirit of Boot Environments, and at the same time it fits the "making updates atomic checkpoints" description of an immutable system from NihilCredo. Apart from the packages. But it seems like you could do the same thing to /usr/local if you really wanted - clone it, update the clone, reboot with the clone at /usr/local. You'd have to do some work with /usr/local/etc and with packages that expect to write to some sort of data folder outside the user's home directory, but in a way that's work already done by nanoBSD. Computer viking fucked around with this message at 21:06 on Jun 30, 2023 |
# ? Jun 30, 2023 21:02 |
|
Volguus posted:Chromebook would be another one as well (no idea if they're immutable, but it would fit).
|
# ? Jun 30, 2023 21:27 |
|
Lifroc posted:Man, immutable Linux is like living 5 years in the future.
|
# ? Jun 30, 2023 21:32 |
|
Voodoo Cafe posted:Just write a shell script that invokes it correctly and have systemd call that instead The other key was learning about the journalctl command. By running journalctl --user -xeu cliappservice -b I was able to see what the actual error was preceding the help output, and learned that it was failing a stat /path/configfile.json which led me to checking permissions on all involved files, as well as the entire directory tree. Added read capability to the all users group for /home/thunderbeast/ which didn't have it. THEN, for some reason, the error started saying it couldn't stat the configfile in a directory I didn't even specify anywhere (one level up from where it actually is and where I was pointing at). After trying to wrestle with that for a bit, I said gently caress it and moved configfile.json into /home/thunderbeast/ and holy poo poo it finally loving worked lmao Final config: cliappservice.service code:
code:
Thanks for the help! Son of Thunderbeast fucked around with this message at 22:08 on Jun 30, 2023 |
# ? Jun 30, 2023 22:05 |
|
Speaking of FreeBSD, how many of Theo de Raadt's criticisms hold up 10 years later? (Starts @1:21) https://youtube.com/watch?v=OXS8ljif9b8&feature=shareb
|
# ? Jun 30, 2023 22:10 |
Computer viking posted:Well yes, that's why I think making the base system read-only outside logs and config overrides would be a fairly simple thing to do - if you want to update the base system, write to a new boot environment and reboot into that instead of changing the existing files. It doesn't seem against the spirit of Boot Environments, and at the same time it fits the "making updates atomic checkpoints" description of an immutable system from NihilCredo. pre:NAME USED AVAIL REFER MOUNTPOINT tank 384K 832M 96K /tank zroot 154G 61.2G 96K /zroot zroot/swap 17.0G 77.2G 960M - zroot/tmp 8.63G 61.2G 8.63G /tmp zroot/usr 23.2G 61.2G 96K /usr zroot/usr/doc 733M 61.2G 733M /usr/doc zroot/usr/home 15.1G 61.2G 15.1G /usr/home zroot/usr/ports 4.59G 61.2G 4.59G /usr/ports zroot/usr/src 2.77G 61.2G 2.77G /usr/src zroot/var 785M 61.2G 96K /var zroot/var/audit 96K 61.2G 96K /var/audit zroot/var/crash 779M 61.2G 779M /var/crash zroot/var/log 1.48M 61.2G 1.48M /var/log zroot/var/mail 5.05M 61.2G 5.05M /var/mail zroot/var/tmp 96K 61.2G 96K /var/tmp So fun, I guess?
|
|
# ? Jun 30, 2023 22:40 |
|
This is one of those things where the more I think about it, the less foreign it feels. An immutable FreeBSD would hardly take more than tying together a few existing parts, and could even end up feeling ... reasonable? The heaviest work would be to make pkg upgrade work in a clone and swap over at reboot (spiritually similar to BE), I guess - plus the fallout from a lot of ports expecting all of /usr/local to be rw at runtime.
|
# ? Jun 30, 2023 23:12 |
|
Computer viking posted:This is one of those things where the more I think about it, the less foreign it feels. An immutable FreeBSD would hardly take more than tying together a few existing parts, and could even end up feeling ... reasonable? Isn't FreeNAS/TrueNAS basically an immutable FreeBSD? As far as i remember, it boots a read only image and applies any changes made in the UI as an overlay of some sort edit: it is very much an appliance though, not a general purpose distro
|
# ? Jun 30, 2023 23:42 |
Computer viking posted:This is one of those things where the more I think about it, the less foreign it feels. An immutable FreeBSD would hardly take more than tying together a few existing parts, and could even end up feeling ... reasonable? Voodoo Cafe posted:Isn't FreeNAS/TrueNAS basically an immutable FreeBSD? As far as i remember, it boots a read only image and applies any changes made in the UI as an overlay of some sort It's using a descendant of the NanoBSD scheme mentioned above, that originally got implemented in m0n0wall. It also gets used in pfSense and its forks, because that itself a fork of m0n0wall. BlankSystemDaemon fucked around with this message at 00:34 on Jul 1, 2023 |
|
# ? Jul 1, 2023 00:29 |
|
For immutability to work on any OS you need: * An agreed-upon set of standard software to make your base desktop * Easy and flexible container system * A containerised App Store-like for userspace applications. Linux has all three: standard DEs like KDE/GNOME, Linux namespaces, and Flatpak. I haven't used FreeBSD in 20 years, but AFAIK it doesn't have Flatpak/Flathub or its Jails equivalent. It's not immutable if you install all your software through a regular package manager into /usr.
|
# ? Jul 1, 2023 08:36 |
|
Context: I want to run some web services that are a bit too heavyweight for my Raspberry Pi. I did some napkin math and figured that even purchasing the cheapest mini-server on the second-hand market would take 3-4 years to break even in costs, compared to simply running my gaming/coding desktop 24/7 and sucking up the electricity prices, which would also be more convenient in other ways (less stuff around the house, fewer devices to admin, better perf). So I'm now looking at how I can get it to idle as cheaply/quietly as possible. Question: I have noticed that, by physically disconnecting the GPU from the turned-off monitor, the power draw at the wall goes down by 15-20W (compared to turning off the monitor but leaving the cable connected). Can this behaviour be toggled via a script? I.e. set/unset a flag that tells the GPU "pretend your cable is disconnected"? The GPU is an AMD RDNA3 model, if relevant.
|
# ? Jul 1, 2023 11:44 |
|
|
# ? May 28, 2024 11:13 |
|
Maybe look at a used laptop. They're practically free
|
# ? Jul 1, 2023 11:49 |