如何将 Alpine Linux 升级到最新版本

Alpine Linux 开发团队发布了最新的稳定版 高山Linux 3.13.0. 这个分步指南解释了如何将 Alpine Linux 升级到最新的可用稳定版本或滚动发布版本。

内容

  1. Alpine Linux 3.13 有哪些新功能?
  2. 更新 Alpine Linux
  3. 1. 将 Alpine Linux 升级到最新的稳定版本
    1. 1.1. 更新 Alpine Linux 存储库
    2. 1.2. 启动 Alpine Linux 升级
  4. 2. 将 Alpine Linux 稳定版转换为滚动发布
  5. 3. 从 Alpine Linux 2.x 升级到 Alpine Linux 3.x

Alpine Linux 3.13 有哪些新功能?

Alpine Linux 3.13.0 是 v3.13 稳定系列中的第一个版本。 它运送最新的 Linux Kernel 5.10.7 LTS 版本。 在此版本中,Alpine 团队引入了 ifupdown-ng 作为busybox ifupdown 的替代品。 这个新版本还附带了 PHP 8.0,改进了安装脚本中的 wifi 支持,以及对 cloud-init 的初始支持。 显着的变化之一是 Node.js (LTS) 使用 -O2 而不是 -Os 编译,这显着提高了性能。

其他重要的更新是;

  • 穆尔 1.2
  • Busybox 1.32.1
  • 海湾合作委员会 10.2.1
  • Git 2.30.0
  • 结 DNS 3.0.3
  • 玛丽亚数据库 10.5.8
  • Node.js 14.15.4
  • Nextcloud 20.0.4
  • PostgreSQL 13.1
  • QEMU 5.2.0
  • Xen 4.14.1
  • 扎比克斯 5.2.3
  • ZFS 2.0.1

现在让我们从 Alpine Linux 3.12 及更早版本升级到 Alpine Linux 3.13。 信不信由你,升级 Alpine Linux 非常简单、快速和直接。

在继续更新和升级您的 Alpine Linux 机器之前, 备份您的重要数据 你不能失去。

更新 Alpine Linux

让我们使用命令检查当前安装的 Alpine Linux 版本:

$ cat /etc/alpine-release 

示例输出:

3.8.5
检查 Alpine Linux 版本

可以看到,当前安装的Alpine Linux版本是 3.8.5. 让我们将其升级到最新版本,即 Alpine Linux 版本是 3.13.0.

接下来,通过运行以下命令更新可用软件包列表并将已安装的软件包升级到最新的可用版本 Apk 命令 逐个:

$ sudo apk update
$ sudo apk upgrade

或者,您可以将两个命令合并为一个,如下所示:

$ sudo apk -U upgrade

或者,

$ sudo apk --update-cache upgrade

好吧,我们已经更新了 Alpine Linux 中所有已安装的软件包。 是时候开始升级了!

Alpine Linux 有两个版本, 稳定版滚动发布.

首先我们将看到如何将 Alpine Linux 升级到稳定版本。

1. 将 Alpine Linux 升级到最新的稳定版本

本节展示了如何从 Alpine 3.xx 升级到最新版本。 我假设您当前已安装 3.xx 版本。

1.1. 更新 Alpine Linux 存储库

编辑 /etc/apk/repositories 文件使用命令:

$ sudo setup-apkrepos

您将看到可用镜像列表和三个用于选择首选镜像的选项。 第一个选项是从给定的列表中选择一个镜像。

第二个选项是从列表中检测并添加最快的镜像。

第三个选项是编辑 /etc/apk/repositories 文件以更新存储库列表。

由于我们要升级系统,我们需要选择第三个选项并修改现有存储库以指向新版本。

要更新存储库,请键入 e 并击中 ENTER 钥匙:

Available mirrors: 1) dl-cdn.alpinelinux.org 2) uk.alpinelinux.org 3) dl-2.alpinelinux.org 4) dl-4.alpinelinux.org 5) dl-5.alpinelinux.org . . . 48) tux.rainside.sk 49) alpine.cs.nctu.edu.tw 50) mirror.ihost.md 51) mirror.ette.biz 52) mirror.lagoon.nc 53) alpinelinux.c3sl.ufpr.br  r) Add random from the above list f) Detect and add fastest mirror from above list e) Edit /etc/apk/repositories with text editor  Enter mirror number (1-53) or URL to add (or r/f/e/done) [f]: e
更新 Alpine Linux 存储库

该文件将在默认文本编辑器中打开,即 我们. 如果你设置了不同的 $EDITOR 在你的 $PATH,它将在该编辑器中打开文件。 我的是 我们 编辑。

这是我的原始内容 /etc/apk/repositories 文件:

https://sjc.edge.kernel.org/alpine/v3.8/main https://sjc.edge.kernel.org/alpine/v3.8/community

更改版本号 3.8 反映到最新版本 3.13.

为此,请按 "i" 进入插入模式并更新版本号(即3.13),最后按 ESC键 并输入 :wq 保存文件并退出。

更新版本号后,文件应如下所示:

https://sjc.edge.kernel.org/alpine/v3.13/main https://sjc.edge.kernel.org/alpine/v3.13/community
将 Alpine Linux 存储库更改为最新的 3.13 稳定版本将 Alpine Linux 存储库更改为最新的 3.13 稳定版本

如果您不知道确切的最新版本号,只需替换 v3.xlatest-stable 如下所示:

https://sjc.edge.kernel.org/alpine/latest-stable/main      https://sjc.edge.kernel.org/alpine/latest-stable/community
将 Alpine Linux 存储库更改为最新的稳定版本将 Alpine Linux 存储库更改为最新的稳定版本

Save 文件并退出。

退出时,存储库索引将自动更新。 您也可以使用以下命令手动执行此操作:

$ sudo apk update

示例输出:

fetch https://sjc.edge.kernel.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz fetch https://sjc.edge.kernel.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz v3.13.0_rc5-69-g09276e69ab [https://sjc.edge.kernel.org/alpine/v3.13/main] v3.13.0_rc5-68-g10a1134646 [https://sjc.edge.kernel.org/alpine/v3.13/community] OK: 13945 distinct packages available

1.2. 启动 Alpine Linux 升级

现在,运行以下命令将 Alpine Linux 升级到最新的可用稳定版本:

$ sudo apk upgrade --available

在这里, --available 标志用于强制升级所有包,即使它们具有相同的版本号。

示例输出:

Upgrading critical system libraries and apk-tools: (1/5) Upgrading musl (1.1.19-r11 -> 1.2.2_pre7-r0) (2/5) Installing libcrypto1.1 (1.1.1i-r0) (3/5) Installing libssl1.1 (1.1.1i-r0) (4/5) Upgrading apk-tools (2.10.1-r0 -> 2.12.0-r4) (5/5) Upgrading musl-utils (1.1.19-r11 -> 1.2.2_pre7-r0) . . . (80/85) Installing libidn2 (2.3.0-r0) (81/85) Upgrading wget (1.20.3-r0 -> 1.21.1-r1) (82/85) Purging libressl2.7-libtls (2.7.5-r0) (83/85) Purging libssh2 (1.9.0-r1) (84/85) Purging libressl2.7-libssl (2.7.5-r0) (85/85) Purging libressl2.7-libcrypto (2.7.5-r0) Executing busybox-1.32.1-r0.trigger Executing ca-certificates-20191127-r5.trigger Executing kmod-28-r0.trigger depmod: WARNING: could not open modules.order at /lib/modules/4.14.167-0-virt: No such file or directory depmod: WARNING: could not open modules.builtin at /lib/modules/4.14.167-0-virt: No such file or directory Executing mkinitfs-3.5.0-r0.trigger ==> initramfs: creating /boot/initramfs-virt Executing syslinux-6.04_pre1-r6.trigger /boot is device /dev/sda1 OK: 164 MiB in 88 packages 
将 Alpine Linux 升级到最新版本将 Alpine Linux 升级到最新版本

最后,通过运行以下命令重新启动所有已升级的服务并重新启动系统:

$ sudo sync
$ sudo reboot

登录系统后查看Alpine Linux是否升级到最新版本:

$ cat /etc/alpine-release  3.13.0

检查正在运行的内核版本:

$ uname -r 5.10.7-0-virt
显示 Alpine Linux 版本和内核详细信息显示 Alpine Linux 版本和内核详细信息

是的! 正如你在上面的截图中看到的,我正在运行 Alpine Linux 3.13.0 内核稳定发布 5.10.7 版本。

2. 将 Alpine Linux 稳定版转换为滚动发布

有些人可能想将 Alpine Linux 稳定版转换为滚动开发版,称为 边缘.

为此,请编辑 /etc/apk/repositories 带有命令的文件:

$ sudo setup-apkrepos

类型 "e" 并按下 进入 编辑存储库文件。

将版本号更改为 边缘

https://sjc.edge.kernel.org/alpine/edge/main          https://sjc.edge.kernel.org/alpine/edge/community   

Save 文件并退出。

通过运行以下命令更新存储库索引并开始从 Alpine Linux 稳定版本升级到滚动发布版本:

$ sudo apk upgrade --update-cache --available

或者,

$ sudo apk upgrade -U -a

升级任务完成后,重启系统:

$ sudo sync
$ sudo reboot

检查 Alpine Linux 版本和内核:

显示 Alpine Linux 滚动发布版本和内核详细信息显示 Alpine Linux 滚动发布版本和内核详细信息

正如您在上面的输出中看到的,在编写本指南时最新的滚动发布版本是 3.13.0 最新的内核版本是 5.10.7. 稳定版和滚动发行版是一样的,因为 Alpine Linux 稳定版刚刚发布。 几天后,滚动发布版本将高于稳定版本。

您还可以使用以下命令来检查当前的 Alpine Linux 版本:

检查 Alpine Linux 版本检查 Alpine Linux 版本

3. 从 Alpine Linux 2.x 升级到 Alpine Linux 3.x

你们中的一些人可能仍在运行 Alpine Linux 2.xx 版如果是这样,这部分将解释如何从 Alpine Linux 2.x 升级到 3.x 最新版本。

首先,更新存储库并升级 Alpine 系统中所有已安装的软件包:

$ sudo apk update
$ sudo apk upgrade

接下来安装静态链接版本 busyboxapk-tools. 您应该在更新系统之前执行此操作,因为旧的 musl 版本将在一段时间后停止工作 libc 改变。

$ sudo apk add busybox-static apk-tools-static

示例输出:

fetch https://sjc.edge.kernel.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz fetch https://sjc.edge.kernel.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz (1/2) Installing apk-tools-static (2.10.1-r0) (2/2) Installing busybox-static (1.28.4-r3) Executing busybox-1.28.4-r3.trigger OK: 148 MiB in 80 packages

接下来修改存储库,如图所示 1.1. 更新 Alpine Linux 存储库 部分。

在进行实际升级之前,建议先模拟升级过程,提前发现问题:

$ sudo apk.static upgrade --no-self-upgrade --available --simulate

如果没有错误,运行以下命令将Alpine Linux 2.x升级到3.x版本:

$ sudo apk.static upgrade --no-self-upgrade --available

升级过程完成后,重新启动所有升级的服务并重新启动系统:

$ sudo sync
$ sudo reboot

希望这可以帮助。

资源:

  • Alpine Linux 维基

相关阅读:

  • 在 Alpine Linux 中向用户添加、删除和授予 Sudo 权限

Alpine LinuxLinuxLinux 管理Linux 命令升级 Alpine Linux