最近新入坑了小内存主机,如果安装Debian最新系统开机后内存所剩无几,所以挨个尝试了一下 openwrt,Alpine 系统,发现Alpine比较符合需求,对Podman\docker容器支持良好。

Alpine Linux以其小巧、安全而著称,是许多容器和嵌入式系统的首选操作系统。Alpine Linux的关键特性之一是其基于APK工具的包管理系统。

APK简介

APK是Alpine Linux的包管理器,用于管理软件包的安装、删除和更新。APK代表Alpine Package Keeper(Alpine包管理器),它是一个简单快速的工具,旨在在资源受限的系统上高效工作。

场景命令说明
更新索引apk update相当于 apt update;装包/搜索前必须执行一次
升级已装包apk upgrade只升已有包;加 -a 可自动答 yes
一次性「更新+升级」apk -U upgrade自带 update 效果,脚本里常用
安装包apk add nginx支持同时装多个,空格分隔
装指定版本apk add nginx=1.26.2-r0版本号用 apk list nginx 查看
装并「不再升级」apk add nginx --no-upgrade锁定当前小版本,做基线镜像
删除包apk del nginx同时会卸掉无依赖的孤儿包
搜索包名/描述apk search nginx支持通配符 *nginx*
看包信息apk info nginx含依赖、大小、官网
看「哪个文件属于哪个包」apk info -L nginx列该包所有文件路径
看「某文件属于哪个包」apk info -W /usr/sbin/nginx反向查询,找缺失包时神器
列出已装包apk info -v-v 显示版本号
只列「可升级」包apk version -l '<'左边本机版本 < 右边仓库版本
清本地缓存apk cache clean可释放 /var/cache/apk/*
下载包及依赖到本地apk fetch -R nginx -o ./pkg离线环境先抓包,再 apk add --allow-untrusted ./*.apk
查看包依赖树apk dot nginx | dot -Tpng -o deps.png需安装 graphviz,可视化依赖
创建「本地源」索引apk index -o APKINDEX.tar.gz *.apk自建私有源必备
校验签名apk verify nginx检查 .apk 签名是否完好
打开/关闭缓存setup-apkcache /var/cache/apksetup-apkcache none交互式,也可直接删目录

一条命令升级整个系统(含内核)

1apk upgrade -U -a -l   # -U=update -a=always yes -l=增加日志
2reboot                  # 若 linux-lts 内核有更新

更换软件源

为了加快国内访问速度,推荐将默认软件源替换为国内镜像源。

  • 备份
1cp /etc/apk/repositories /etc/apk/repositories.bak
  • 更改镜像源
1sed -i 's|http://dl-cdn.alpinelinux.org|https://mirrors.aliyun.com|g' /etc/apk/repositories
  • 验证源地址
1apk uodate
2
3## 运行查看是否看见,看见则成功 
4mirrors.aliyun.com
镜像源地址
阿里云https://mirrors.aliyun.com
清华源https://mirrors.tuna.tsinghua.edu.cn
中科大源https://mirrors.ustc.edu.cn
  • 稳定源地址:

以阿里云镜像源为例,其他可以参考

1https://mirrors.aliyun.com/alpine/latest-stable/main
2https://mirrors.aliyun.com/alpine/latest-stable/community
  • Edge源

最新内核 + 软件,滚动更新,最新的内核和安装包。

1http://mirrors.aliyun.com/alpine/edge/community
2http://mirrors.aliyun.com/alpine/edge/testing

快速装「常用运维工具」

1apk add curl wget htop iotop jq tree bash sudo

快速装「编译环境」

1apk add build-base cmake linux-headers autoconf automake

(build-base 已经拉下 gcc、g++、make、libc-dev,体积 ≈ 120 MB)

记住 3 句话即可

  1. 装包前一定 apk update

  2. 找包用 apk search <关键词>

  3. 升级用 apk upgrade -U -a

日常运维就可以避免很多依赖的问题。