#alpine-linux — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #alpine-linux, aggregated by home.social.
-
Anyone know what "apk add --no-cache" does? There is no documentation for "--no-cache" in --help?
At most I've:> --cache[=BOOL] When disabled, prevents using any local cache paths
It appears to be valid and I doubt that any of the LLM crap of "it makes apk idempotent" is true. That just sounds stupid.
Is it an older alias for "--cache=false" or something?
-
Just finished my tutorial: AlpineBL: Using Alpine Linux as a General-Purpose kexec Bootloader, with a demo application of NFS Netboot over VPN. #alpine #alpinelinux #NFS #WireGuard
-
#FreeBSD vaihtui #AlpineLinux'iin #RPi2-nimipalvelimessa. Syitä oli kaksi:
1) Ilmeisesti FreeBSD:n versioon 15 ei ole tulossakaan pkg:ta #ARMv7-arkkitehtuuriin (?). Yritykset asentaa pkg päättyivät aina ilmoitukseen, ettei sitä löydy.
2) FreeBSD:n versioon 14.4 päivittäminen sinänsä onnistui, mutta jostakin syystä, mahdollisesti pieleen menneen dd:n takia (?), järjestelmä aina jämähti.
Alpine osoittautui kuitenkin kevyeksi ja näppäräksi. #Busybox riittää hyvin. #atkjuttuja #floss #bsd #linux -
#presentación
Es mi segunda vez usando Mastodon,me interesan mucho programas y apps para android de código abierto y Linux llevo ya un año usándolo en una laptop con #AlpineLinux y un entorno de escritorio para uso diario que aún configuro, también tomo fotografías en raw de vez en cuando con open camera y me gusta todo lo que tenga una vibra tranquila y calmada 🙂↔️🙂↕️ -
Okay, this is literally incomprehensible: on my Alpine v3.24 VPS,
drill github.com,nslookup github.com,getent ahosts github.com,host github.com,ping github.com,lynx https://github.com/, and manually sending hand-written queries to the configured DNS servers all return/use the correct IPv4 address, and return nothing as expected when querying for AAAA records (since github is shit and doesn't support IPv6).And yet,
curlandgitboth have completely nonsense IPv6 addresses returned when resolving (they're random Cloudflare addresses) alongside the correct IPv4 address, and then prioritize them. Those tools also completely ignore any overrides in/etc/hostsand I can't find any way to see what fucking broken bullshit they're doing to resolve DNS (because it's apparently not fuckinggetaddrinfonor manually reading/etc/resolv.conf).There is literally no possible source for those addresses to be returned when resolving
github.comAFAICT and no way to override them other than having to edit literally everything that might touch github to add-4to those utilities' command lines(It's also been doing it for months with multiple different DNS servers, it's not a transient issue)
-
What does "/sbin/getty -L 0 ttyS0 vt100" do on #AlpineLinux (#Busybox)?
--help only says "-L Set CLOCAL (ignore Carrier Detect state).
The only other example for this parameter I see is passing 115200 (the baud rate) there. But what does passing a baud rate of 0 mean?
-
-
My Alpine Linux Bootloader project is a success! I can now boot any Linux rootfs such as Debian over VPN + NFS via Alpine. The entire bootloader creation uses 200 lines of shell scripts.
Update: the full tutorial has been published, see AlpineBL: Using Alpine Linux as a General-Purpose kexec Bootloader.
The advantage is that the target OS needs not to be pre-configured for PXE, VPN or NFS. In a regular netboot setup, each target OS's initramfs must know how to do networking / mount rootfs. WireGuard is used here, so each needs customization. Using the AlpineBL approach, the bootloader takes care of everything. I used a boot disk in my setup, not PXE, but they're not exclusive, PXE can deliver that boot disk if you want.
I'll publish a full tutorial on Alpine Wiki, but here's a quick review. Update: published, see link.
First, create an Alpine rootfs at ./mnt withalpine-make-rootfs, with only 4 packages preinstalled: alpine-base, linux-lts, wireguard-tools, kexec-tools. You need another DHCP client for IPv4, I use IPv6 SLAAC so I skipped it. Enable some OpenRC services such as "devfs", "modules", and "local" in that chroot. Extract the kernel from rootfs. Create an initramfs with cpio at ./mnt. Base image done.
Next, create another rootfs overlay at ./rootfs_extra, with/etc/wireguard/wg0.confand/etc/local.d/99-alpinebl.start. Chain two initramfs binaries withcat. Linux unpacks them sequentially (feature+bug: ./rootfs_extra can overwrite existing files). Overlay image done. Warning: this image contains private keys.
Boot your machine with that Alpine kernel, and your custom initramfs, with rdinit=/sbin/init (force the kernel to use the real userspace init as the "init script"), retain_initrd (don't release compressed initramfs), kexec_load_disabled=0 (bypass Alpine hardening), alpinebl.stage=1 (custom flag).
Alpine userspace starts in a normal runlevel. OpenRC's "local" service executes our custom boot script99-alpinebl.start. In the custom boot script, load network card kmod, enable networking, enable WireGuard, mount NFSv4 to /mnt. In theory we can switch root now, but we're still using the Alpine kernel, not the target kernel which can be arbitrary. We need to "swap" to the target kernel, and overlay more target kmods in initramfs on the fly.
To do this, create another initramfs using files in/mnt/lib/modulesand/mnt/lib/firmwarevia cpio + gzip. Chain the original initramfs (accessing via/sys/firmware/initrdwith retain_initrd) and the new overlay to/dev/shm/initrdRun kexec with the/mnt/vmlinuzsymlink as kernel, and/dev/shm/initrdas initramfs. Use new boot cmdline withalpinebl.stage=2, strip retain_initrd.
A small warning here: at the end of Stage 1, there are 4 copies of initramfs in RAM: /, /sys/firmware/initrd, /dev/shm/initrd, and kexec buffer, each is 1 GiB+, if you don't have RAM, you need to delete blobs under /lib/firmware before cpio / kexec but after modprobe. If RAM is still not enough, you need to stop using retain_initrd, instead, find your own boot drive under /dev, mount it, and find the initramfs - tedious work.
The system starts again, and all the procedures described above is repeated again: enable network, enable WireGuard, mount NFSv4. Now the startup script seesalpinebl.stage=2in/proc/cmdline, so it knows toswitch_rootinstead ofkexec.
But remember, we're in an initramfs, but the boot script is not executed by /bin/sh with PID 1. This is a full system with Busybox init + OpenRC, we're a normal userspace process, so we can't kill or replace init unless we're init already... We're stuck here. Should we use a PID namespace to work around it? No!
Busybox init supports hot update via the "restart" target after receiving a SIGQUIT (an arcane feature), it's a replacement binary path. We create a/initfile (to bypass switch_root's safety check), write::restart:/sbin/switch_root /mnt /sbin/initto/etc/inittab, send SIGHUP to PID 1 to reload config, then send SIGQUIT to PID 1. So init shuts userspace daemons down, call execvp(), and switch_root takes over.
Alpine userspace is gone. Debian userspace starts up with systemd like a regular boot. Existing Ethernet, WireGuard interfaces, and the NFS mount are auto-inherited by systemd. You get a login shell. Mission complete. #alpine #alpinelinux #NFS #WireGuard -
These are wallpapers I've made for Alpine Linux, using images from Wikipedia.
Links to the original images are provided at the end of each alt-text.
Stelvio Pass and Massif images use CC BY-SA 4.0
Matterhorn and ZB Interregio images use CC BY-SA 3.0 -
gitlab.alpinelinux.org is unavailable at the moment. Linode reported the physical host is having issues and they need to perform emergency maintenance.
-
GHC 9.14 is now available in the Alpine Linux Edge repository. This is the first-ever LTS release of the Haskell compiler and will be supported at least until late 2028, I have high hopes that it will serve us well for the next few Alpine releases.
-
It took a long time, but our #riscv64 builder managed to finish building the community packages. At the worst, it had a backlog of more than 800 packages, but it managed to churn along the last couple of weeks.
We had it running on a HiFive P550 for a while. Even though it had faster cores, we had to move it back to the MilkV Pionieer.
We're trying some other riscv64 systems as well, to see if they serve as better builders.
-
A couple of weeks ago the riscv64 edge builder had ~300 packages to build to catch up.
I moved the builder from Hifive Premiere p550 to Milk-v Pioneer this week because it has not been able to catch up since the 3.24 release.
Yesterday it was 500+
Now it is 811.
I am setting up the Spacemit K3 but somehow I doubt it will be enough. We need to fix the build infra to scale horizontally.
-
https://gitlab.alpinelinux.org is having issues after performing an upgrade. Working on restoring it.
-
What's the general feeling about Alpine Linux as a server OS for docker containers?
I currently run Fedora coreOS with podman containers but I've had issues mostly from day one , most resolved now bit it still fights me at least once a week.
Well its time for a drastic change. I've used Alpine as a desktop before, but only briefly, so I am familiar with some of it differences bit not all.
Is it a good idea?