Alpine发展记事(202x)
2024-12-09 09:56:28 阿炯

Alpine Linux是由社区开发的操作系统,它面向x86路由器、防火墙、虚拟专用网(VPN)、IP电话盒及瘦服务器而设计。其在设计时就贯彻了安全的理念,包含了一些主动安全特性如PaX和SSP,能防止软件中的漏洞被利用;也由于其非常轻量级的特性,它至今仍然是容器和嵌入式 Linux 部署的热门选择。还提供了自己的包管理工具 apk,通过其进行软件包的查询和安装。

本文是从Alpine的产品主页分离出来的,专门用于该软件的更新记录,截止到2030年之前。


最新版本:3.6
需注意的是此版本与 2.x 系列及其更早版本不兼容,建议查看更新升级文档或信息再去升级。另外在该版本中,一些桌面应用程序分别更新至对应的版本: Xfce 4.12; X.Org Server 1.17; Firefox 38; Evince 3.16; virt-manager 1.2; VLC 2.2; Inkscape 0.91; Audacity 2.1。更多内容请查看发行说明

最新版本:3.10
Alpine Linux 3.10.0 已发布,这也是 v3.10 稳定系列的首个版本。新特性和值得关注的新软件包:
iwd:wpa_supplicant 的现代替代方案 (EAP 版本尚未支持正常运行)
面向 arm 板提供对串行和以太网的支持
ceph:分布式对象存储和文件系统
lightdm:跨桌面的显示管理器

重要软件升级:Linux 4.19.53、GCC 8.3.0、Busybox 1.30.1、musl libc 1.1.22、LLVM 8.0.0、Go 1.12.6、Python 3.7.3、Perl 5.28.2、Rust 1.34.2、Crystal 0.29.0、PHP 7.3.6、Erlang 22.0.2、Zabbix 4.2.3、Nextcloud 16.0.1、Git 2.22.0、OpenJDK 11.0.4、Xen 4.12.0、Qemu 4.0.0

已移除的重要软件:Qt4、Truecrypt、Mongodb

Alpine 3.11.6、3.9.6 和 3.10.5 已发布,三个版本均包含针对 OpenSSL CVE-2020-1967 漏洞的重要安全修复程序,这也是本次更新的主要内容,该漏洞是一个影响 OpenSSL 1.1.1d, 1.1.1e 和 1.1.1f 的高危漏洞。根据官方对该漏洞的描述,在 TLS 1.3 握手期间或握手之后调用 SSL_check_chain() 函数的服务器或客户端应用可能会导致崩溃,原因是不正确处理"signature_algorithms_cert" TLS 扩展而引起的空指针引用。如果从另一方接收到一个无效或未被识别的签名算法,则会发生崩溃,这可能会被恶意攻击者利用并发起 DoS 攻击。

最新版本:3.13
2021年1月16日,Alpine Linux 3.13.0 正式发布,这是 v3.13 稳定系列中的首个版本,3.13.0 新特性和值得关注的新软件包:
官方云镜像,PHP 8.0 现已可用,初始化支持 cloud-init。
引入 ifupdown-ng,代替 busybox ifupdown。
改进了安装脚本中的 Wi-Fi 支持。
Node.js(LTS)使用 -O2 而不是 -Os 进行编译,从而显着提高了性能。如果同时安装了新软件包 icu-data,它也可以使用完整的 ICU 数据。

重要更新:Linux 5.10.7、musl 1.2、Busybox 1.32.1、GCC 10.2.1、Git 2.30.0、Knot DNS 3.0.3、MariaDB 10.5.8、Node.js 14.15.4、Nextcloud 20.0.4、PostgreSQL 13.1、QEMU 5.2.0、ZFS 2.0.1

升级说明:musl-1.2 升级将更改所有64位 Arch Linux 中time_t 的定义,这会影响 armhf、armv7 和 x86。更多信息请参见 musl time64发行说明Wiki。由于许可问题,Berkley DB 已被弃用。这意味着/etc/postfix/main.cf当中所有的表单在升级之前必须转换为其他格式,例如lmdb。xorg-server 和相关软件包已移至社区,确保已在/etc/apk/repositories 中启用社区仓库。一些很少使用的 busybox applet 已被禁用,更多信息请同见 Wiki。更多更新说明请参考发行说明

最新版本:3.14
3.14.3 于2021年11月正式部分更新,值得注意的新软件包:Lua 5.4.3、HAProxy 2.4.0、KDE 21.04.2、nginx 1.20.0和njs 0.5.3、Node.js 14.17.0、Plasma 5.22.0、PostgreSQL 13.3、Python 3.9.5、R 4.1.0、QEMU 6.0.0、XEN 4.15.0、Zabbix 5.4.1

升级注意事项
1、与往常一样,在主要版本之间切换时,请确保使用apk upgrade --available。
2、faccessat2系统调用已在musl中启用。这可能会导致docker主机上的docker主机出现问题(<20.10.0)和libseccomp(<2.4.4),这会阻止此系统调用。
3、由于缺乏长期的上游支持,ClamAV已移至社区。
4、LuaJIT包已从未维护的MoonJIT分支切换到OpenResty的维护分支。
5、NGINX包将vhost配置的默认目录从/etc/nginx/conf.d更改为/etc/nginx/http.d。
6、collectd包已拆分为插件的子包。
7、npm包已移入独立端口。
8、在nftables中,echo-r​​equest的速率限制已从默认规则集中删除。
9、由于许多测试失败,fail2ban暂时被禁用。作为替代方案,可以使用sshguard。

升级 php 相关软件包,支持以非 root 用户身份运行 ntpsec,添加对 riscv64 的支持,内核版本升级到 5.10.78,升级多个应用软件的版本,如 Chrome、Wine、curl 等。完整变更列表查看此处

最新版本:3.15
Alpine Linux 3.15 于2021年11月下旬发布,更新内容如下:
在安装程序中支持磁盘加密
通过 AKMS 支持树外的内核模块
在 x86_64 上初步支持 UEFI 安全启动
Linux Kernels 5.15 (LTS)、llvm 12、nodejs 16.13 (LTS) / nodejs-current 17.0、postgresql 14、openldap 2.6、ruby 3.0、rust 1.56、openjdk 17、xorg-server 21.1、GNOME 41、KDE Plasma 5.23 / KDE Applications 21.08 / Plasma Mobile Gear 21.10

内核模块现在是用 gzip 压缩
内核中的 Framebuffer 驱动已被禁用,由 simpledrm 取代
由于缺乏上游支持,qt5-qtwebkit 及相关软件包已被删除
MIPS64 移植已经停止了。该架构已经终止, 将不会有新的版本
sudo 将在 Alpine Linux 3.16 中被移至 community。建议替换为 doas,它在 main 中可用
php7 正在被淘汰,作为最后一个版本,7.4 将只剩下一年的安全支持。

更多详情可查看此处

最新版本:3.17
目前 Alpine Linux 3.17 于今022年月下旬发布了,仍然由 Linux 5.15 LTS 内核系列提供支持,但把默认的 OpenSSL 实现升级到 OpenSSL 3.0 版本,Rust 现在可用于所有支持的架构。还附带了一些最新的 GNU/Linux 和开源技术,例如 GCC 12、LLVM 15、GNU Bash 5.2、Kea 2.2、Perl 5.36、PostgreSQL 15、Node.js 18.12 LTS 和 19.1、Ceph 17.2、Go 1.19、Rust 1.64 和 .NET 7.0.100。需要注意的是此版本弃用了 PHP 8.0 版本,还将 ISC Kea 服务器移至主存储库以获得长期支持, ISC DHCP 则被移至社区存储库,DHCP 用户需要及时迁移到 Kea 。

更多详情请查看发行公告

最新版本:3.18
Alpine Linux 3.18 于2023年5月中旬发布,离开了  Linux 5.15 ,转由 Linux kernel 6.1 系列提供支持。主要软件更新:
Linux kernel 6.1 –  带有签名的内核模块
musl libc 1.2.4 – 在 DNS 解析器中使用 TCP 回退
主要软件更新有:Python 3.11、Ruby 3.2、Node.js (current) 20.1、GNOME 44、Go 1.20、KDE Plasma 5.27、Rust 1.69
通过 tiny-cloud 提供对无人值守安装的实验性支持
内核模块现已签名。默认情况下不强制执行已验证的模块,因此带有 akms 的第 3 方模块仍然有效
ppc64le、x86 和 x86_64 的所有包都与 DT_RELR 链接。这应该减少编译的二进制文件的大小
Python 预编译文件 ( pyc ) 现在以单独的包提供,可以通过执行 apk add !pyc 来避免安装它们并节省空间。

最新版本:3.20
Alpine Linux v3.20.0于2024年5月发布,它包含许多软件包更新,包括 Linux 6.6、GNOME 46 和 KDE Plasma 6。新版本还引入了对64位 RISC-V的支持,亮点包括:LLVM 18;Node.js (LTS) 20.10;Python 3.12;Ruby 3.3;Rust 1.78;Crystal 1.12;GNOME 46;Go 1.22;KDE 6;Sway 1.9;.NET 8.0。重大变更:首次添加了对64位 RISC-V的支持。

最新版本:3.21
以轻量级和安全性著称的 Linux 发行版 Alpine 于2024年12月发布了最新的 3.21 版本,这也是 3.21 系列的首个正式版本。新版本引入了多项重要更新,不仅在性能和稳定性上实现了进一步提升,还优化了整体的用户体验。无论你是开发者、系统管理员,还是普通桌面用户,v3.21 都为不同场景的需求提供了更加高效和可靠的解决方案。这次更新再次彰显了 Alpine 在小巧灵活和高安全性 Linux 系统中的领先地位。

核心更新与新特性
Alpine 3.21 基于最新的 Linux 6.12 内核,性能和稳定性都有显著提升。以下是一些关键更新:
1.开发工具:GCC 升级至 14 版,LLVM 更新为 19 版,支持更先进的开发需求。
2.编程语言与框架:Node.js 22.11、Rust 1.83、.NET 9.0 和 PHP 8.4 为开发者提供了强大的工具链。
3.桌面环境:GNOME 更新至 47 版,KDE Plasma 升级到 6.2,LXQt 则全面切换至 Qt6,并增强了对 Wayland 的支持。
4.新架构支持:引入了对 LoongArch64 架构的初步支持,展现了 Alpine 面向未来硬件发展的潜力。

注意事项:SSH 和内核压缩格式的变更
1.SSH 服务自动重启:此次 OpenSSH 的更新会在升级过程中自动重启服务,确保新连接的正常建立。这是由于 openssh-server 被拆分为两个可执行文件,对从旧版本升级的用户来说,这是一个需要留意的变化,以免影响远程连接。
2.ZSTD 压缩支持:linux-firmware 现已改用 ZSTD 压缩格式。如果你使用自定义内核,请确保启用了 CONFIG_FW_LOADER_COMPRESS_ZSTD=y,以避免兼容性问题。

未来计划:/usr 合并
Alpine 正在为未来的 /usr 目录合并做准备,这项改动计划在 Alpine 3.22 中完成。届时,/bin、/sbin 和 /lib 中的文件将迁移至对应的 /usr 目录。建议用户提前调整目录结构,避免未来升级时遇到问题。

多媒体与软件更新
新版本在多媒体和软件包方面也带来了诸多改进:
1.Jellyfin:默认切换到 jellyfin-ffmpeg 分支,仅支持 x86_64 架构。
2.工具更新:Busybox 升级至 1.37,PostgreSQL 到 17,Go 1.23,Qt 6.8 提升了整体开发和运行体验。
3.包管理改进:main/bats 被重命名为 main/bats-core,新增元包集合,整合常用 Bats 工具。

软件移除与替代方案
为提升安全性和维护效率,v3.21 移除了部分软件包:
1.Neofetch:因项目停止维护,被移除,推荐替代工具 Fastfetch。
2.Gogs:由于存在未解决的安全漏洞,开源 Git 服务 Gogs 被移出仓库,建议用户迁移到更安全的 Forgejo 或 Gitea。
3.ISC DHCP:因 ISC DHCP 服务器已停止维护,推荐用户切换至 ISC Kea 或其他替代方案。

获取与使用指南
用户可以从 Alpine 的官网下载最新的 ISO 镜像。对于初次使用者,建议全新安装,而现有用户可以按照发布说明中的指导顺利完成升级。如果想将 Alpine 用作容器镜像基础,或者体验其作为桌面操作系统的潜力。v3.21 是一次重要的版本升级,无论是开发工具、桌面环境,还是性能优化,都体现了其追求轻量、高效、安全的设计哲学。从最新的内核支持到未来的 /usr 合并计划,每一项改动都展现了 Alpine 面向未来的前瞻性。如果正在寻找一个既灵活又可靠的 Linux 发行版,无论是用于服务器还是桌面,它都值得一试。