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

Why AlpineLinux

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

    阿里云、腾讯云、物理服务器、虚拟机、容器都是用的 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   ·   实用小工具   ·   3388 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:55 · PVG 18:55 · LAX 02:55 · JFK 05:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.