Why AlpineLinux - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wenerme
V2EX    Alpine Linux

Why AlpineLinux

  •  
  •   wenerme
    wenerme 2022-06-22 04:45:10 +08:00 2809 次点击
    这是一个创建于 1207 天前的主题,其中的信息可能已经有所发展或是发生改变。

    阿里云、腾讯云、物理服务器、虚拟机、容器都是用的 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 。

    13 条回复    2022-06-22 16:41:36 +08:00
    thedrwu
        1
    thedrwu  
       2022-06-22 05:00:22 +08:00 via Android
    顺便用来测试程序对 musl 的兼容性和效率
    wenerme
        2
    wenerme  
    OP
       2022-06-22 05:01:15 +08:00
    @thedrwu 基础镜像记得加上 libc6-compat gcompat ,解决大部分兼容性场景
    wenerme
        3
    wenerme  
    OP
       2022-06-22 05:05:48 +08:00
    尝试在维护一个中文的 Alpine 小小社区,负责解决任何关于 alpine 的问题,欢迎咨询,可以入微信或者 qq 群 558299436
    moen
        4
    moen  
       2022-06-22 05:53:21 +08:00   1
    根据个人的经历,Alpine 有一个不适合的场景是 arm 服务器,体现在很多东西不一定能有 musl-arm64 的支持
    wzw
        5
    wzw  
       2022-06-22 07:05:03 +08:00 via iPhone
    市面台式机,普通配置的,驱动兼容如何,装 Ubuntu ,就是为了简单驱动
    Buges
        6
    Buges  
       2022-06-22 10:23:14 +08:00 via Android
    不行的,比如 Python pip 装包,glibc 的发行版可以直接装 wheel ,musl 就得本地编译。那两个兼容包效果很差,很多基本程序都运行不了(比如 pyinataller 打包的 Python ,brew 自带的 portable ruby ),还有 busybox 缺功能等等,总之坑很多。
    gam2046
        7
    gam2046  
       2022-06-22 11:03:01 +08:00
    有些软件似乎在 alpine 上表现不一致,原因是 alpine 并没有使用 glibc 。当时困扰了我很久,得知原因后,就没用过 alpine 了。说到底还是自己太菜了。
    billzhuang
        8
    billzhuang  
       2022-06-22 11:58:29 +08:00
    感觉 alpine 离统一江湖就差 glibc ,为啥不支持?体积会大多少?
    billzhuang
        9
    billzhuang  
       2022-06-22 12:29:26 +08:00
    另外还有个问题请教下,为啥 alpine 不自带 ca-certificates ?有啥历史原因么?
    billzhuang
        10
    billzhuang  
       2022-06-22 12:30:03 +08:00
    还有个问题,怎么才能做到“可以由内而外的了解所有 alpine 细节”?
    wenerme
        11
    wenerme  
    OP
       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
        12
    wenerme  
    OP
       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
        13
    wenerme  
    OP
       2022-06-22 16:41:36 +08:00
    @wzw 现在基本都是用 intree 驱动,大部分驱动都没问题,我之前 macos 也都用能,但是非 intree 部分肯定没有 ubuntu 好,ubuntu 是目前最好的 linux 桌面系统
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1058 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 23:05 PVG 07:05 LAX 16:05 JFK 19:05
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86