V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
stuliren
V2EX  ›  程序员

低 glibc 版本服务器,有没有办法用 AI?

  •  
  •   stuliren · 2025 年 6 月 1 日 · 5385 次点击
    这是一个创建于 226 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在我用的服务器里装的 glibc 版本比较低,也没办法升级,甚至不联网……一直使用的是 VS Code 的 Remote SSH 连接到上面开发。之前用一些手段绕过了 VSCode 的 glibc 版本检测,活是能干,但是 AI 只能选择 copilot ,用免费的 2000 次补全。Trae 这种连上了也用不了 AI 。因此想请教版里的大家有没有可能的办法?

    第 1 条附言  ·  2025 年 6 月 2 日
    总结一下,大家说的大概就是用容器了。docker 可能不行,因为没有权限。我试试别的容器
    我其实已经用 elf patch 的方案解决了连接问题,但 ai 服务器就没法绕过去了…
    我甚至办法自己编译(,因为 cmake 的版本太低了…
    47 条回复    2025-06-25 00:30:36 +08:00
    psllll
        1
    psllll  
       2025 年 6 月 1 日 via Android
    docker
    coldle
        2
    coldle  
       2025 年 6 月 1 日 via Android
    挠头,所以 copilot 的问题是啥,次数太少?
    guoer
        3
    guoer  
       2025 年 6 月 1 日
    没办法,docker 也是用宿主机的 glibc
    guo4224
        4
    guo4224  
       2025 年 6 月 1 日 via iPhone
    容器虚拟机
    ronen
        5
    ronen  
       2025 年 6 月 1 日
    2000 次用完能不能付费继续用?
    stuliren
        6
    stuliren  
    OP
       2025 年 6 月 1 日
    @coldle 对……,没有学生优惠之类的,还是想找点便宜的方法
    stuliren
        7
    stuliren  
    OP
       2025 年 6 月 1 日
    @ronen 看来只能充钱了……
    stuliren
        8
    stuliren  
    OP
       2025 年 6 月 1 日
    @psllll @guoer @guo4224 甚至用不了容器,因为没有管理员权限……
    sduoduo233
        9
    sduoduo233  
       2025 年 6 月 1 日 via Android
    @stuliren 可以用 proot 容器 不用 root
    zhongplusplus
        10
    zhongplusplus  
       2025 年 6 月 1 日
    虽然无法想明白为什么 AI 和 glibc 会有关系,但是也许你可以试一试 LD_LIBRARY_PATH, 或者 unshare 相关的方向。
    openmynet
        11
    openmynet  
       2025 年 6 月 1 日
    @zhongplusplus 本地向量存储甚至本地 embeding 都会用到原生应用/原生 node 库,不是所有事情都能靠纯 js 来解决的。
    imzcc
        12
    imzcc  
       2025 年 6 月 1 日
    https://github.com/MikeWang000000/vscode-server-centos7
    可以试试这个 patch vscode-server 以支持低版本的 glibc
    zhongplusplus
        13
    zhongplusplus  
       2025 年 6 月 1 日
    @openmynet 那换个思路是不是重新编译 node 就行了?
    yarawen
        14
    yarawen  
       2025 年 6 月 1 日
    我把 vs code 的自动更新设置关闭,用 1.98.2 版本。
    这是 agent 前的最后一个版本。
    同时也是 glibc 兼容的最后一个版本。
    sjkdsfkkfd
        15
    sjkdsfkkfd  
       2025 年 6 月 1 日
    本地开发,用 devcontainer
    Shatyuka
        16
    Shatyuka  
       2025 年 6 月 1 日 via iPhone
    @guoer 真的假的,第一次听说
    ZeekChatCom
        17
    ZeekChatCom  
       2025 年 6 月 1 日
    @guoer 真的假的,第一次听说。

    我的一个 nodejs 项目,在宿主机编译不过,因为 glibc 版本太低。换成容器通过了呀。
    hefish
        18
    hefish  
       2025 年 6 月 1 日
    买一台新服务器吧。。。 花点钱。。。哪怕花点。。。 应该也不是很贵。。。
    liyafe1997
        19
    liyafe1997  
       2025 年 6 月 1 日
    @guoer 并不是,只是用宿主的内核,docker 容器是有自己完整的 rootfs 的,包括 glibc 在内。
    举个例子,你在 docker 里面跑 alpine linux ,里面 userspace 用的是 musl
    sn0wdr1am
        20
    sn0wdr1am  
       2025 年 6 月 1 日
    docker 封装 ssh ,然后使用监听另外一个端口,新建一个 ssh 服务。

    这样用 vscode 远程连接上去,是否可行?
    sunnywx
        21
    sunnywx  
       2025 年 6 月 1 日 via Android
    不要随意动系统的 glibc ,血的教训😂编译了单独放个目录,设置环境变量
    tinybaby365
        22
    tinybaby365  
       2025 年 6 月 1 日   ❤️ 1
    可以用 docker ,docker 容器和 host 共享内核,但可以有自己的 glibc ;
    如果系统无法安装 docker ,可以用 chroot ,把某个 docker image 的基础 rootfs 解出来,chroot 进去使用;
    最坏的情况是 kernel 版本太低,你的 glibc 不兼容内核,这种情况一般人遇不到;
    没事不要升级系统的 glibc ,但可以自己编译安装 glibc 到/opt/glibc-xxx/下面,用 LD_LIBRARY_PATH 指定/opt/glibc-xxx/lib ,让你的程序优先用这个 glibc (不确定是否要 patch ELF 文件的 interpreter )
    jc89898
        23
    jc89898  
       2025 年 6 月 1 日
    你自己搞个静态编译的不就完事了
    flyqie
        24
    flyqie  
       2025 年 6 月 2 日 via Android   ❤️ 2
    @guoer #3

    docker 为什么会用宿主机的 glibc ??
    Trim21
        25
    Trim21  
       2025 年 6 月 2 日 via Android
    你 glibc 具体什么版本啊
    stuliren
        26
    stuliren  
    OP
       2025 年 6 月 2 日
    @Trim 2.7 ?
    sir283
        27
    sir283  
       2025 年 6 月 2 日
    AI 怎么跟 GLIBC 扯上关系的?你的 AI 组件如果依赖高版本 GLIBC ,那你就要重新基于现在环境编译一份组件出来,我不清楚 op 是前端开发,还是怎么,如果是前端开发,那就 rebuild 一份 nodejs 就行了,很简单的。
    linhua
        28
    linhua  
       2025 年 6 月 2 日
    nix 包管理器 或者 junest(基于 arch 的) ,推荐 nix 。如果机器性能足够,还可以用 gentoo prefix ( https://wiki.gentoo.org/wiki/Project:Prefix)
    stevenshum
        29
    stevenshum  
       2025 年 6 月 2 日
    @284716337 glibc 自定义目录安装后,好像很多软件也不适用
    nkidgm
        30
    nkidgm  
       2025 年 6 月 2 日
    不对啊,docker 不就是把一切需要的依赖统一打包到镜像里的么,就好像 CentOS 7 的镜像,正常官方都会把 7 对应的 glibc 的二进制文件放进去镜像吧。如果不这样,镜像还分 CentOS 7 CentOS 8 CentOS 9 就没意义了。
    zx900930
        31
    zx900930  
       2025 年 6 月 2 日
    如果只要求运行的时候无需 root 权限,rootless podman/rootless docker 就解决了,缺点是安装的时候需要 root 。
    完全没有 root 权限的话,可以 patch elf ,要是这也解决不了,那么自己拉源码编译吧。
    nkidgm
        32
    nkidgm  
       2025 年 6 月 2 日
    不过有一种特殊情况需要注意的,就是那种体积非常小的镜像,那种真有可能是用宿主机,他们那种镜像为了追求极致轻量化,很多时候都直接映射宿主机的库文件,所以如果要追求兼容性,最好是用那种常见的打包好一定依赖的发行版,所以我部署 docker 应用,一般不用轻量级镜像,而是转用传统的 ubuntu ,centos 的镜像。
    Trim21
        33
    Trim21  
       2025 年 6 月 2 日 via Android
    @sir283 这里说的其实是 vscode remote server 有 glibc 版本要求……
    DefoliationM
        34
    DefoliationM  
       2025 年 6 月 2 日 via Android   ❤️ 2
    楼上怎么有个人不懂装懂,docker 怎么可能用宿主机的 glibc ,docker 就是用来解决这问题的。
    lsearsea
        35
    lsearsea  
       2025 年 6 月 2 日 via Android
    @DefoliationM 确实,我就是用 docker 容器来编译低版本 linux 的 go 程序
    Biem
        36
    Biem  
       2025 年 6 月 2 日
    没太懂 op 的需求。我们也是内网开发,用的是 Continue 和 Codegeex 这俩插件,Windows 机子上的模型在 Ollama 跑,开发机用的是便携版 VSCode ,服务器上是对应版本的 vscode-server ,已经在在线环境安装好插件了的那种,之后就是 tar 解压一下,remote 插件就连上了
    guoer
        37
    guoer  
       2025 年 6 月 3 日
    [捂脸] 我理解错了。抱歉
    codgician
        38
    codgician  
       2025 年 6 月 3 日
    试试 nix 包管理,可以只给当前用户安装(逃
    leokun
        39
    leokun  
       2025 年 6 月 3 日
    glib 低了,docker 也跑不了的
    yjd
        40
    yjd  
       2025 年 6 月 3 日
    elf patch 方案用的现成工具还是改代码?对静态不好办,动态的倒是见过有现成工具
    MoeDisk
        41
    MoeDisk  
       2025 年 6 月 3 日
    如果不能联网、不支持容器、换环境变量不稳定,
    就基本只能说,你想用什么,就是着用你现在低 glibc 版本环境编译,动态不行就静态。
    。反正 linux 嵌入式环境是这样的。
    kero991
        42
    kero991  
       2025 年 6 月 3 日
    你这到底是多低的 glibc ,还能比 ubuntu18 的 2.27 还低吗? rh 系的 rocky8 是 glibc2.28 ,可是有 gcc-14 ,clang19 ,cmake3.26 的,而且 cmake 下载 4.x 也是能用的。
    nevermoreluo
        43
    nevermoreluo  
       2025 年 6 月 3 日
    @Biem 大概是一个月前吧,最新版的 vs 的 remote 不支持低版本的 glibc 了,导致远程时,插件自动初始化 vs-server 会 error ,说 glibc 太低

    @stuliren 官方给的方案也只有退到低版本( 1.97 好像就行)的 vs 上其实。。。。或者换个 ubuntu24 之类的服务器吧 0 0
    有同事说有偏方说新建一个`/tmp/vscode-skip-server-requirements-check`空文件可破,但是我没试过
    kero991
        44
    kero991  
       2025 年 6 月 3 日
    如果没权限,试试 proot ?
    xuwen
        45
    xuwen  
       2025 年 6 月 3 日
    @guoer 并不是,我就曾是试过在低版本的 centos 上开 docker 容器编译需求高版本的项目,一点问题都没有
    nooneanyone
        46
    nooneanyone  
       2025 年 6 月 3 日
    遇事不决就 docker
    ccc1924
        47
    ccc1924  
       2025 年 6 月 25 日
    @stuliren #8 试试 rootless ,不过如果内核版本太低也不行
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3365 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:01 · PVG 20:01 · LAX 04:01 · JFK 07:01
    ♥ Do have faith in what you're doing.