最近新入坑了小内存主机,如果安装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/apk 或 setup-apkcache none | 交互式,也可直接删目录 |
一条命令升级整个系统(含内核)
更换软件源
为了加快国内访问速度,推荐将默认软件源替换为国内镜像源。
- 备份
1cp /etc/apk/repositories /etc/apk/repositories.bak
- 更改镜像源
1sed -i 's|http://dl-cdn.alpinelinux.org|https://mirrors.aliyun.com|g' /etc/apk/repositories
- 验证源地址
| 镜像源 | 地址 |
|---|---|
| 阿里云 | 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源
最新内核 + 软件,滚动更新,最新的内核和安装包。
快速装「常用运维工具」
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 句话即可
装包前一定
apk update找包用
apk search <关键词>升级用
apk upgrade -U -a
日常运维就可以避免很多依赖的问题。