Title. Mainly asking for the library side, but PC cafe is also interesting to ask about.
Mainly since Windows 11 is 64-bit only, and it seems Windows 12 is going to subscription based on top of that, neither of which public libraries can afford tossing out computers and paying more in subscription fees than they make with overdue books.
My local library is only open for 2 days a week, due to a lack of funds for hiring more staff in the area. They use older Dell all in ones, and that just makes me think if they don’t have the money for being open 5 days a week, they don’t have the money to buy 4 new computers for the space.
Not even getting into the bigger libraries part of that system or the ones nearby. Some have 8 computers in groups, with 4 stations of groups.
So I was just wondering, if anyone has started or is aware of a Library/Public Computer focused linux-based OS? Perhaps one that allows immutable systems, and the library card system backed most use to enable end user access. Perhaps that’s a config file tucked away somewhere.
And I guess the PC cafe OS is interesting, simply due to the fact that Linux gaming has been making huge strides, and PC cafes are still popular in Japan, Korea, and China.
EDIT: I am not in control or assistance to the library, just looking if there’s a potential solution to libraries like mine. If I could give links to a library computer manager, or if I could give upstream bug reports to people making such software.
Honestly I’d
- take any distribution that someone at or close to the library is comfortable with, e.g popular Ubuntu or Debian,
- setup a user profile that fits the need of the average library user, e.g Firefox with as a start page the library website
- make sure the library card system do work
- copy /home/thatuser directory somewhere, e.g /root/thatuserunmodified and insure permissions make it unmodifiable
- add a cron task so that every evening 1h after the library close any thatuser session is terminated, /home/thatuser gets deleted, copy the /root/thatuserunmodified to /home/thatuser and fixer permission
- assuming it’s fast enough (I bet it’s take 1min at most as /home/thatuser would be mostly empty) I’d do the process after each logout so that each new visitor gets a fresh session, no downloads from previous users, history, bookmarks, etc. Only what the library consider useful.
That’s it. This way one can still let the OS do it’s updates but the user experience is consistent.
I am no expert. But I think there is an ‘easier’ way too manage this with an overlay filesystem.
Have an immutable base with all permissions set. When a session is started have it be done in an in-memory overlay. On logout drop the overlay.
This might be easier if you don’t want to rely on cronjobs. But as I have no experience myself setting this up… ‘easier’ should be taken with a grain of salt. I just took inspiration from docker.
True keeping it all in memory, especially as it would be of limited size, could be a good solution. That being said a single script and cron job is rather “easy” IMHO.
You are correct. I just have a coworker that has ingrained the philosophy in me to always look for a way to put it in configuration, and not in a script that you have to maintain.
I don’t always agree with that. And I find your solution as valid as mine. It is always a matter of taste and trust. In this case in the script, or the fsdriver. That’s why I always quote the “easier” when comparing solutions to Linux problems.
This is how we used to do it before we had NixOS with impermanence mode. https://nixos.wiki/wiki/Impermanence
Probably a cleaner way indeed but again mindful about how familiar people who can help the library are with NixOS vs Ubuntu/Debian.
All it takes is one person to share a complete config and I’d assert that it’s actually easier than Ubuntu/Debian to setup (especially if you’re talking about deploying a fleet of identical configurations or even a config that lives on a liveISO meant for installing the OS with these options baked-in).
Granted it’s not there yet and you’re correct but soon: One-click deployment would make it even easier than Debian/Ubuntu.
Also, IMO Nix is a force-multiplier. For example, I alone could probably configure a whole fleet of systems declaratively with Nix AT LEAST as well as a config script repo that has 20 people contributing to it since, in Nix, if it builds, it’s pretty much ready for production.
The fact alone that Nix allows you to simply list the software you want on the computer and it takes care of everything else (rather than a long, error prone sudo apt-get install command list that may or may not install because dependencies aren’t locked) would cause me to select Nix every single time.
I’m just kind of bewildered how anyone can argue against Nix by invoking a method of Linux install where you sudo apt get 400 commands in a precise order (and if you accidentally go out of order, you might screw up your system) and you also have to carefully manage dependencies and will be SOL if one piece of software requires one version of python while another requires an entirely different version.