this post was submitted on 15 Oct 2023
226 points (97.5% liked)

Linux

48372 readers
1340 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
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 60 points 1 year ago (2 children)

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.

[–] [email protected] 41 points 1 year ago (1 children)

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.

[–] [email protected] 9 points 1 year ago (1 children)

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.

[–] [email protected] 6 points 1 year ago

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.

[–] [email protected] 28 points 1 year ago (1 children)

This is how we used to do it before we had NixOS with impermanence mode. https://nixos.wiki/wiki/Impermanence

[–] [email protected] 7 points 1 year ago (1 children)

Probably a cleaner way indeed but again mindful about how familiar people who can help the library are with NixOS vs Ubuntu/Debian.

[–] [email protected] 8 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] [email protected] 3 points 1 year ago

Maybe I'm misrepresenting the labor market and the availability of professionals working with Nix. That's also why I mentioned Ubuntu/Debian not on the basis of technical merit but "just" popularity. Now if you are suggesting that they could hire somebody working with Nix just as easily for that task, sure they could go for it.