如何将Alpine Linux 3.11升级到3.12

时间:2020-01-09 10:39:48  来源:igfitidea点击:

如何将Alpine Linux v3.10升级到Alpine Linux v3.12?
如何将Alpine Linux v3.11升级到Alpine Linux v3.12?
在执行以下任何命令之前,请确保在继续更新系统之前已对重要数据进行了备份。
保持系统的完整备份很重要。

Alpine Linux是围绕musl libc和busybox构建的。
与传统的GNU/Linux发行版相比,它更小且资源效率更高。
一个容器所需的空间不超过8 MB,而最小安装到磁盘所需的存储空间约为130 MB。
您不仅可以获得成熟的Linux环境,还可以从存储库中获得大量的软件包。

升级Alpine Linux硬盘安装

Alpine Linux在设计时考虑了安全性。
内核使用grsecurity/PaX的非官方端口进行了修补,并且所有用户级二进制文件都被编译为具有堆栈粉碎保护功能的位置独立可执行文件(PIE)。
这些主动安全功能可防止利用零日漏洞和其他漏洞的整个类别。
将Alpine Linux安装到硬盘驱动器或作为LXD VM时,升级到较新的稳定版本非常简单。

如何升级Alpine Linux

将Alpine Linux安装到硬盘驱动器或云服务器时,升级到较新的稳定版本很容易:

  • 编辑/etc/apk/repositories文件,运行:vi/etc/apk/repositories
  • 手动更改版本号。例如,高山3.11至3.12
  • 保存并关闭文件
  • 通过运行" apk update"获取最新索引
  • 升级所有Alpine Linux软件包:apk upgrade --available && sync
  • 重新启动系统,运行:reboot

让我们详细查看所有命令和示例。

备份您的LXD容器

执行以下命令来创建容器快照:

$ lxc snapshot alpine-www01 "JUN052020"

验证一下:

$ lxc info alpine-www01

输出示例:

Name: alpine-www01
Remote: unix://
Architecture: x86_64
Created: 2019/01/04 06:25 UTC
Status: Running
Type: persistent
Profiles: default
Pid: 28917
Ips:
  lo:	inet	127.0.0.1
  lo:	inet6	::1
  eth0:	inet	10.105.28.45	vethJ4APTV
  eth0:	inet6	fe80::216:3eff:fee6:6afa	vethJ4APTV
Resources:
  Processes: 34
  CPU usage:
    CPU usage (in seconds): 3
  Memory usage:
    Memory (current): 201.15MB
    Memory (peak): 203.21MB
  Network usage:
    eth0:
      Bytes received: 87.31kB
      Bytes sent: 435.99kB
      Packets received: 384
      Packets sent: 333
    lo:
      Bytes received: 17.74kB
      Bytes sent: 17.74kB
      Packets received: 30
      Packets sent: 30
Snapshots:
  Feb-03-2019 (taken at 2019/02/02 18:38 UTC) (stateless)
  mar-04-2019 (taken at 2019/03/04 16:23 UTC) (stateless)
  may-04-2019 (taken at 2019/05/03 21:56 UTC) (stateless)
  June-21-2019 (taken at 2019/06/20 19:58 UTC) (stateless)
  June-24-2019 (taken at 2019/06/23 20:29 UTC) (stateless)
  DEC232019 (taken at 2019/12/23 18:20 UTC) (stateless)
  JUN052020 (taken at 2020/06/05 10:45 UTC) (stateless)

现在,使用ssh命令或lxc命令登录到您的Alpine Linux box/LXD VM。

找出您的Alpine Linux版本

执行以下命令:

$ cat /etc/alpine-release 
`3.11.6`

应用3.11.xx的所有待处理更新

只需运行apk命令:

# apk update
# apk upgrade

如何升级到最新版本

编辑/etc/apk/repositories文件,执行:

# vi /etc/apk/repositories

手动更改版本号。
例如," 3.4"的默认条目如下:

http://dl-3.alpinelinux.org/alpine/v3.4/main

要更新到3.5.xx,请执行:

http://dl-3.alpinelinux.org/alpine/v3.5/main

手动更改版本号。
例如," 3.5"的默认条目如下:

http://dl-3.alpinelinux.org/alpine/v3.5/main

要更新到3.5.xx,请执行:

http://dl-3.alpinelinux.org/alpine/v3.6/main

例如,3.11.xx如下:

http://dl-cdn.alpinelinux.org/alpine/v3.11/main

因此,请按照以下步骤进行" 3.12.xx"升级,请执行:

http://dl-cdn.alpinelinux.org/alpine/v3.12/main

保存并关闭文件。
这是我使用cat命令显示的示例配置文件:

# cat /etc/apk/repositories

输出示例:

http://dl-cdn.alpinelinux.org/alpine/v3.12/main
http://dl-cdn.alpinelinux.org/alpine/v3.12/community

接下来,使用apk命令获取最新索引:

# apk update

输出示例:

fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
v3.12.0-45-g0e4d4e3558 [http://dl-cdn.alpinelinux.org/alpine/v3.12/main]
v3.12.0-47-gda1c1b9ae4 [http://dl-cdn.alpinelinux.org/alpine/v3.12/community]
OK: 12830 distinct packages available

要升级所有软件包,请运行apk命令:

# apk upgrade --available

或者

# apk upgrade --purge

重新启动服务器/VM容器:

# sync
# reboot

验证一下:

$ cat /etc/alpine-release 
`3.12.0`

另一种选择是查询/etc/issue

# cat /etc/issue
Welcome to Alpine Linux 3.12
Kernel \r on an \m (\l)