Alpine Linux包管理apk

apk软件仓库

/etc/apk/repositories 配置文件中包含了软件仓库配置,默认是:

/media/sdb1/apks

检查 /media/sdb1/apks 目录可以看到有一个子目录 x86_64 ,在这个子目录下,有当前ISO镜像包含的本地常用的 .apk 软件包,也就是,即使没有互联网,通过 apk 命令就可以直接从这些本地软件包进行安装。

不过,如果要安装的软件包不在本地,需要通过因特网安装,则需要添加仓库配置。

https://mirrors.alpinelinux.org/ 可以获得官方Alpine Linux镜像网站,选择一个添加到配置 /etc/apk/repositories 中:

alpine_apk/repositories
1
2
3
/media/sdb1/apks
http://mirror.math.princeton.edu/pub/alpinelinux/v3.14/main
http://mirror.math.princeton.edu/pub/alpinelinux/v3.14/community

注解

根据 /etc/alpine-release 配置可以知道本机的版本,所以对应选择 v3.14

main 只包含基础软件包,很多软件包都位于 community ,例如 libvirt-daemon 等虚拟化软件

更新系统

  • 配置了软件仓库之后,就可以更新软件包列表:

    apk update
    

此时会提示信息:

fetch http://mirror.math.princeton.edu/pub/alpinelinux/v3.14/main/x86_64/APKINDEX.tar.gz
3.14.2 [/media/sdb1/apks]
v3.14.2-5-gd4163d4c6c [http://mirror.math.princeton.edu/pub/alpinelinux/v3.14/main]
OK: 4791 distinct packages available
  • 然后可以更新系统:

    apk upgrade
    

也可以结合上述两个命令成一个命令:

apk -U upgrade
  • 如果只更新指定软件(例如busybox),则使用:

    apk update
    apk add --upgrade busybox
    

diskless模式更新内核

由于 diskless 模式是只读设备(或ISO镜像),不能直接更新boot文件,所以需要通过 setup-bootable 准备一个可写入boot设备

  • 添加 mkinitfs 包:

    apk add mkinitfs
    

如果要支持特殊文件系统,例如 btrfs ,则需要在 /etc/mkinitfs/mkinitfs.conf 中激活,然后再执行 lbu commit

ls /etc/mkinitfs/features.d
apk add nano
nano /etc/mkinitfs/mkinitfs.conf
lbu commit
  • 最后执行升级内核和boot环境:

    update-kernel /media/sdXY/boot/
    

基础软件安装

  • 默认最小化安装对于维护不是很方便,所以安装以下软件:

    # NFS客户端和服务
    apk add nfs-utils
    # 磁盘维护
    apk add lsblk cfdisk e2fsprogs
    # lspci等维护工具
    apk add pciutils