Alpine Linux系统升级简化过程

陪她去流浪 桃子 阅读次数:66

说明:本文的重点是把Alpine Linux系统升级到更新的版本,而不仅仅是更新当前版本的所有软件。

注意

虽然Alpine Linux系统升级的过程看起来比Ubuntu要简单不少,但还是要小心。还记得我就是因为Ubuntu升级失败才换成Alpine的!🤡 (见:《对Ubuntu有点忍无可忍了,把Homelab的服务器暂时换成了AlpineLinux》)

官方文章:Upgrading Alpine Linux to a new release branch - Alpine Linux

总共分为以下几个步骤:

  1. 更新仓库版本
  2. 更新索引
  3. 升级所有包
  4. 解决冲突
  5. 重启

更新仓库版本

直接更新文件/etc/apk/repositories 中的版本号即可。比如:从3.23更改为3.24

1
2
3
#/media/sdb/apks
http://mirrors.ustc.edu.cn/alpine/v3.24/main
http://mirrors.ustc.edu.cn/alpine/v3.24/community

更新索引

直接执行以下常规命令即可:

1
$ apk update

升级所有包

升级之前最好最好先升级apk命令本身:

1
$ apk add --upgrade apk-tools

然后,升级所有已安装的包:

1
$ apk upgrade --available

即便是相同的版本,上述命令也可能重新安装已存在的包。原因是:基础库musl可能有修改。

解决冲突

/etc/文件夹内的文件可能有修改,并且与新版本的默认文件可能有所不同,所以可能需要合并。但上述步骤不会自动覆盖或者解决冲突,需要手动进行。新版本的文件在同目录下,并且文件名多一个.apk-new后缀。

警告

特别注意:千万不要盲目用新版本的文件覆盖旧文件。比如/etc/passwd大概率有你新创建的用户,如果盲目覆盖,可能导致数据丢失或者无法登录!

可以手动编辑并替换旧文件,或者使用update-conf命令操作。

  • update-conf -l可以列举所有新、旧版本文件列表。
  • update-conf不带参数执行即可按提示进行冲突解决流程。

重启

上述步骤全部完成,需要重启系统可能才能应用全部的更新,并且建议立即重启。

1
2
$ sync
$ reboot