Alpine FAQ
术语
- HWE Hardware Enablement
- ECC - Error-correcting memory
- EDAC - Error Detection and Correction
Why AlpineLinux
small footprint, non-systemd, fast enough, good community, sane defaults.
阿里云、腾讯云、物理服务器、虚拟机、容器都是用的 alpinelinux
- 环境都一样,使用各方面熟悉,熟练
- 小/快 - 阿里云 ECS 只需要上传一个 几十 MB 的镜像即可,从 0 安装只需要 3 分钟
- 简单 - 可以由内而外的了解所有 alpine 细节,对于 debian 和 centos 我都做不到,因为太复杂
- 跟上时代 - 内核 一般是最近的 lts,能快速利用上新的内核特性,比如现在 linux 内核支持 io_uring, ntfs
- 快速更新 - 安全问题响应非常快 - 因为使用面非常广
- 衍生业务集成系统 - 系统预装一些软件和服务 - 例如: k3sos
不适用场景
- 机器学习 - ubuntu 是最好的 - 最新 Linux 开始要集成 Navdia 驱动,情况会有所好转
- 商务用桌面系统 - 默认 xface - 生态 和体验没有 ubuntu 好
- 定制化嵌入式设备 - alpine 支持的 arch 远没有 debian 的多,如果 arch 支持可以考虑 alpine
升级注意事项
- 注意用的镜像是否同步 - 否则可能导致安装异常
- tuna 目前是最好的
- 不要跨版本升级
- OpenSSL version mismatch
apk opening from cache No such file or directory
历史
alpine 早期思想来自于 FreeBSD
- /etc/periodic
- https://apk-tools.sourceforge.net
- 第一版 apk-tools 基于 FreeBSD 的 pkg_add
- 2005-06-13 第一次提交
GPU
- Nvidia 未提供 musl 版本的驱动
- https://forums.developer.nvidia.com/t/219586
apk 1 error
apk 操作时显示有错误, 例如 1 error; 241 MiB in 67 packages
.
# 即可
apk fix
ifupdown 包不会启动
- ifupdown 来自 debian - 虽然依赖 iproute2 但是不会使用
- busybox 的 ifup 会调用 ip li set eth0 up
- 3.10 是 0.7.x 版本的,下一个大版本应该可用
没有提示登陆
- 可能是 tty 不对
- 尝试修改
/etc/inittab
里的ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
- qemu aarch64 使用的 ttyAMA0
Login incorrect - 没有询问密码
- 可能 root 关闭了 serial console 登陆
- 允许的 tty
/etc/securetty
- 如果使用的 ttyAMA0 可以添加
process '/sbin/getty -L ttyAMA0 115200 vt100' (pid 1929) exited. Scheduling for restart.
getty: console: TIOCSCTTY: Operation not permitted
内核风格 - kernel flavors - lts vs virt
- 区别
- 内核编译参数
- OS 默认 module
- 固件
- virt
- 适用于虚拟化环境
- 默认开启 virtio
- 很少 linux-firmware - 因此很小
- lts
- LTS 版本的 Linux 内核
- 正常硬件环境
- 完整 linux-firmware
hardened < 3.10- 支持架构: x86_64, x86, armhf
- 启用了内核安全模块
- grsecurity
- pax
- 安装完成后 500m 左右, boot 20m 左右
- 固件: 210m