Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.misc    |    General topics about computers not cover    |    21,759 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 21,466 of 21,759    |
|    Ben Collver to All    |
|    Half A Year On Alpine (1/2)    |
|    12 Oct 25 16:01:27    |
      From: bencollver@tilde.pink              Half an year on Alpine: just musl aside       =======================================              2025-08-31 20:05:26              Warning: Contains tongue-in-cheek language that might feel       provocative if you have invested part of your identity into your       software choices. [1]              For roughly six months now, I've been running Alpine on my laptop as       a daily driver.              Before that, I was running Void. I like how blazing fast Void is to       start up and shut down, has an excellent package management system       and its init system, runit, is beautifully integrated. Alpine also       fits this description.              When I first learned about Void, I read it described itself as       "rolling but stable", meaning you get new package versions often, but       not to the point of breakage. While I never had an upgrade break a       system, it still bothered me to upgrade and suddenly have sound or       Bluetooth not work anymore, or have the system Python version change       frequently, leading to all sorts of complaints from this or that       application I didn't even know was a Python program.              I wanted to go back to a more stable distribution, but I also wanted       a simpler, faster init system than systemd. Alpine, which has fixed       releases every six months, eventually rose as an alternative.              Choosing a path forward       =======================              So, prompted by a charger dying in the beginning of this year, which       put a machine out of work, I decided to take the opportunity to try       another system with a slower release cycle and started weighing my       options.              What remained in the end were Devuan, antiX and Alpine. And I briefly       tried all three during this experiment before settling on Alpine.              Devuan and antiX do offer options besides SysV-style init, but they       don't really integrate them very well in their systems. While with       Void you will really use runit to manage any services installed       through the distribution's package manager, because when a package       has a relevant service to ship it will ship a runit service, Devuan       and antiX have other init systems as options rather than the       distribution's init system.              What you really get then is a mixture of runit/OpenRC and SysV-style       init, leaning a lot more towards SysV-style and leveraging the       runit/OpenRC ability to also run SysV-style init scripts. [2] If you       like managing SysV-style init, that should not be a problem, although       in that case you might as well get the SysV-style version then!       Alpine, on the other hand, just like Void, has OpenRC as the way to       run services.              Alpine it is       ============              For starters, I wanted to learn a little bit more about this       unknown-to-me init system, OpenRC, since I'd be spending some time       setting up services with it.              OpenRC can be used alongside or in place of SysV-style init. I will       not get into the different roles played by so-called init systems and       process supervisors, but OpenRC provides openrc-init, which can       replace /sbin/init for a fully OpenRC-powered system.              I could not find explicit information on whether this is the case       with Alpine, but an actual inspection of the running system shows it       is not. Mind you, even Alpine's /sbin/init is actually BusyBox:               % file $(which init)        /sbin/init: symbolic link to /bin/busybox              I then checked out BusyBox's manual page to try and understand more:              > Init is the first process started during boot. It never exits. It       > (re)spawns children according to /etc/inittab.       >       > Signals:       >       > * HUP: reload /etc/inittab       > * TSTP: stop respawning until CONT       > * QUIT: re-exec another init       > * USR1/TER, /USR2/INT:       > run halt/reboot/poweroff/Ctrl-Alt-Del script              I knew Alpine heavily leaned on BusyBox, but didn't realize it was to       this extent. So, following this trail, there was Alpine's       /etc/inittab, where I found this:               ::sysinit:/sbin/openrc sysinit        ::sysinit:/sbin/openrc boot        ::wait:/sbin/openrc default              Meaning, Alpine's init is BusyBox's init, which in turn calls on       OpenRC to bring services up.              Working around musl...       ======================              Willing to give OpenRC a try, I had to clear up my only concern with       Alpine: lack of compatibility with glibc software.              This took a long time to evaluate, because you need to actually try       to do what you usually do in real situations to see if things will       work out or not.              If you are questioning whether Alpine can reliably run a full desktop       environment or window manager, play and record audio, share your       screen, run GUI applications including the latest browsers, act as       the host of virtualization and development environments, the answer       is an unwavering yes.              If you are questioning whether on top of that Alpine can play DRM       video and games (e.g., Netflix and Steam), the answer is also yes,       but you'll need a glibc layer around it. If you like Flatpak, that       might actually be trivial.              But for more involved usage of software that requires glibc, in       particular novel and experimental stuff you are compiling yourself or       exploring and prototyping with, your mileage may vary. It is more       likely that a vendor will not provide a musl build of their       software.              Some stuff works just by installing `gcompat`, a compatibility layer       that will make glibc software run as-is. Some however won't work with       it.              Sometimes I'd just compile something myself, meaning I made my own       musl-linked executable of something that was available only for       glibc. That works, but compilation for musl is often less documented       and may not be possible at all depending on whether or not musl       provides all the needed features. The latter case was however quite       rare in my experience.              Some other options are running things through Flatpak, or Nix, or       Distrobox. But sometimes, if all failed, I just had to accept it       wasn't possible. Or it would work and then crash when using a       specific feature at runtime.              And that's great, having ways to circumvent musl. But you could also       just... run stuff directly? It's nice to have options, but it's also       a lot of friction. And sadly that is what ended up exhausting me from       using Alpine as a daily driver.              I think that, if you have a very consistent usage of Alpine, where       you are mostly doing the same thing and using the same tools, you       could find a comfy workflow there. But I am extremely moved by       experimentation and curiosity. And something tells me that I could       devise a more fluid workflow to run my experiments and try different       tools inside isolated glibc-friendly environments, but in the end       it's still friction. And it's hard to shake the feeling that, if you       were running a more compatible system to begin with, that wouldn't       even be something to think about.              Getting software from the distribution's package manager is the way       to go for numerous reasons. But sometimes that is just not an option.       Sometimes the package is just nonexistent in the repositories.              [continued in next message]              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca