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

Alpine Linux 开发团队 宣布 最新的稳定版本 高山 Linux 3.15.0 2021 年 11 月 24 日。本分步指南说明了如何将 Alpine Linux 升级到最新可用的稳定版本或滚动发布版本。

Alpine Linux 3.15 有什么新功能?

Alpine Linux 3.15.0 是 v3.15 稳定系列的第一个版本。 它运送最新的 Linux Kernel 5.15 LTS 版本。

Alpine Linux 3.15.0 版本附带了许多重要的更新和更改。 一些显着的变化是:

  • 内核模块现在被压缩了 压缩包.
  • 帧缓冲区驱动程序已在内核中被禁用并由 简单的.
  • qt5-qtwebkit 由于缺乏上游支持,相关软件包已被删除。
  • MIPS64 端口已停产。

其他重要更新是;

  • 12 级
  • nodejs 16.13 (LTS) / nodejs-current 17.0
  • PostgreSQL 14
  • 开放LDAP 2.6
  • 红宝石 3​​.0
  • 生锈 1.56
  • 开放jdk 17
  • 凯亚2.0
  • xorg 服务器 21.1
  • 侏儒 41
  • KDE Plasma 5.23 / KDE Applications 21.08 / Plasma Mobile Gear 21.10
  • 在安装程序中支持磁盘加密
  • 通过 AKMS 支持树外内核模块(受 DKMS 启发)
  • 在 x86_64 上对 UEFI 安全启动的初始支持

Alpine 开发团队也宣布 “sudo” 将被替换为 “做”. 从 Alpine Linux 3.16 开始,”sudo“将被转移到社区。

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

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

更新 Alpine Linux

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

$ cat /etc/alpine-release 

样本输出:

3.12.9
检查 Alpine Linux 版本

可以看到,当前安装的 Alpine Linux 版本是 3.12.9. 让我们将它升级到最新版本,即 Alpine Linux 版本是 3.15.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-4.alpinelinux.org
4) dl-5.alpinelinux.org
5) mirror.yandex.ru
.
.
.
53) mirror.kumi.systems
54) mirror.sabay.com.kh
55) alpine.northrepo.ca
56) alpine.bardia.tech
57) mirrors.ocf.berkeley.edu
58) mirrors.pardisco.co

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-58) 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.12/main
https://sjc.edge.kernel.org/alpine/v3.12/community

更改版本号 3.12 反映到最新版本 3.15.

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

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

https://sjc.edge.kernel.org/alpine/v3.15/main
https://sjc.edge.kernel.org/alpine/v3.15/community
将 Alpine Linux 存储库更新到最新的 3.15 稳定版本将 Alpine Linux 存储库更新到最新的 3.15 稳定版本

如果您不知道确切的最新版本号,只需更换 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 存储库更改为最新的稳定版本

ESC键 并输入 :wq 保存文件并退出。

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

$ sudo apk update

样本输出:

fetch https://sjc.edge.kernel.org/alpine/latest-stable/main/x86_64/APKINDEX.tar.gz
fetch https://sjc.edge.kernel.org/alpine/latest-stable/community/x86_64/APKINDEX.tar.gz
v3.15.0-11-g233c924df0 [https://sjc.edge.kernel.org/alpine/latest-stable/main]
v3.15.0-11-g233c924df0 [https://sjc.edge.kernel.org/alpine/latest-stable/community]
OK: 15920 distinct packages available

1.2. 开始 Alpine Linux 升级

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

$ sudo apk upgrade --available

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

样本输出:

Upgrading critical system libraries and apk-tools:
(1/2) Upgrading musl (1.1.24-r10 -> 1.2.2-r7)
(2/2) Upgrading apk-tools (2.10.8-r0 -> 2.12.7-r3)
Executing busybox-1.31.1-r21.trigger
Continuing the upgrade transaction with new apk-tools:
(1/92) Replacing acct (6.6.4-r0 -> 6.6.4-r0)
(2/92) Upgrading busybox (1.31.1-r21 -> 1.34.1-r3)
Executing busybox-1.34.1-r3.post-upgrade
(3/92) Upgrading alpine-baselayout (3.2.0-r7 -> 3.2.0-r18)
Executing alpine-baselayout-3.2.0-r18.pre-upgrade
Executing alpine-baselayout-3.2.0-r18.post-upgrade
(4/92) Installing ifupdown-ng (0.11.3-r0)
(5/92) Upgrading libcrypto1.1 (1.1.1l-r0 -> 1.1.1l-r7)
.
.
.
(90/92) Upgrading wget (1.20.3-r1 -> 1.21.2-r2)
(91/92) Purging libtls-standalone (2.9.1-r1)
(92/92) Purging libgcc (9.3.0-r2)
Executing busybox-1.34.1-r3.trigger
Executing kmod-29-r2.trigger
Executing ca-certificates-20191127-r7.trigger
Executing mkinitfs-3.6.0-r0.trigger
==> initramfs: creating /boot/initramfs-virt
Executing syslinux-6.04_pre1-r9.trigger
/boot is device /dev/vda1
OK: 131 MiB in 91 packages
将 Alpine Linux 升级到最新版本将 Alpine Linux 升级到最新版本

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

$ sudo sync
$ sudo reboot

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

$ cat /etc/alpine-release 
3.15.0

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

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

是的! 正如您在上面的屏幕截图中看到的,我正在运行 Alpine Linux 3.15.0 内核稳定发布 5.15.4 版本。

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.15.0 最新的内核版本是 5.15.4.

这里的稳定版和滚动版是一样的,因为 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 中为用户添加、删除和授予 Sudo 权限