Why AlpineLinux

2022-06-22 04:45:10 +08:00
 wenerme

阿里云、腾讯云、物理服务器、虚拟机、容器都是用的 alpinelinux

  1. 环境都一样,使用各方面熟悉,熟练
  2. 小 /快 - 阿里云 ECS 只需要上传一个 几十 MB 的镜像即可,从 0 安装只需要 3 分钟
  3. 简单 - 可以由内而外的了解所有 alpine 细节,对于 debian 和 centos 我都做不到,因为太复杂
  4. 跟上时代 - 内核 一般是最近的 lts ,能快速利用上新的内核特性,比如现在 linux 内核支持 io_uring, ntfs
  5. 快速更新 - 安全问题响应非常快 - 因为使用面非常广

强烈推荐

不适用场景

  1. 机器学习 - ubuntu 是最好的 - 最新 Linux 开始要集成 Navdia 驱动,情况会有所好转
  2. 商务用桌面系统 - 默认 xface - 生态 和体验没有 ubuntu 好
  3. 定制化嵌入式设备 - alpine 支持的 arch 远没有 debian 的多,如果 arch 支持可以考虑 alpine

此外,alpinelinux 特别适用于定制化 os ,比如 k3sos 这种预装好的 os 。

2271 次点击
所在节点    Alpine Linux
13 条回复
thedrwu
2022-06-22 05:00:22 +08:00
顺便用来测试程序对 musl 的兼容性和效率
wenerme
2022-06-22 05:01:15 +08:00
@thedrwu 基础镜像记得加上 libc6-compat gcompat ,解决大部分兼容性场景
wenerme
2022-06-22 05:05:48 +08:00
尝试在维护一个中文的 Alpine 小小社区,负责解决任何关于 alpine 的问题,欢迎咨询,可以入微信或者 qq 群 558299436
moen
2022-06-22 05:53:21 +08:00
根据个人的经历,Alpine 有一个不适合的场景是 arm 服务器,体现在很多东西不一定能有 musl-arm64 的支持
wzw
2022-06-22 07:05:03 +08:00
市面台式机,普通配置的,驱动兼容如何,装 Ubuntu ,就是为了简单驱动
Buges
2022-06-22 10:23:14 +08:00
不行的,比如 Python pip 装包,glibc 的发行版可以直接装 wheel ,musl 就得本地编译。那两个兼容包效果很差,很多基本程序都运行不了(比如 pyinataller 打包的 Python ,brew 自带的 portable ruby ),还有 busybox 缺功能等等,总之坑很多。
gam2046
2022-06-22 11:03:01 +08:00
有些软件似乎在 alpine 上表现不一致,原因是 alpine 并没有使用 glibc 。当时困扰了我很久,得知原因后,就没用过 alpine 了。说到底还是自己太菜了。
billzhuang
2022-06-22 11:58:29 +08:00
感觉 alpine 离统一江湖就差 glibc ,为啥不支持?体积会大多少?
billzhuang
2022-06-22 12:29:26 +08:00
另外还有个问题请教下,为啥 alpine 不自带 ca-certificates ?有啥历史原因么?
billzhuang
2022-06-22 12:30:03 +08:00
还有个问题,怎么才能做到“可以由内而外的了解所有 alpine 细节”?
wenerme
2022-06-22 16:29:46 +08:00
@billzhuang 这里有我玩 alpine 的所有笔记 https://github.com/wenerme/wener/tree/master/notes/os/alpine
因为 alpine 真的 很简单,从 install 脚本,到 baselayout 都很清晰,只是 syslinux 的 uefi 不太好,选择 uefi 安装会使用 grub2 ,alpine 的 包也很简单,我自己也能打包维护一些包 https://pkgs.alpinelinux.org/packages?name=&branch=edge&arch=x86_64&maintainer=wener
wenerme
2022-06-22 16:40:21 +08:00
@gam2046
@billzhuang
> glibc

使用或不使用 glibc 不只是体积问题,musl 带来的不只是很小的体积,musl 的好处

1. musl 符合标准 - 没有 glibc 的自定义扩展内容 - 非标准行为
2. musl 很小 - 攻击面小 - glibc 很多 cve
3. musl 可以 static link ,很小,影响不大

musl 不好的地方

1. musl 不是 glibc - 不支持自定义扩展 - 因此 有些应用不支持,通过 libc6-compat gcompat 能兼容一部分,但有些还是兼容不了。最典型不支持场景:golang 的 c-shared 不支持,glusterfs 不支持,因为用到了 glibc 扩展
2. musl 内置的 malloc 不适用于大数据场景,但现在 musl 也支持 load 其他 malloc ,所以问题还好

还有其他问题参考 https://wener.me/notes/os/linux/lib/musl
wenerme
2022-06-22 16:41:36 +08:00
@wzw 现在基本都是用 intree 驱动,大部分驱动都没问题,我之前 macos 也都用能,但是非 intree 部分肯定没有 ubuntu 好,ubuntu 是目前最好的 linux 桌面系统

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/861254

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX