低 glibc 版本服务器,有没有办法用 AI? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
stuliren
V2EX    程序员

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

  stuliren 198 天前 5157 次点击
这是一个创建于 198 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

这样用 vscode 远程连接上去,是否可行?
sunnywx
    21
sunnywx  
   198 天前 via Android
不要随意动系统的 glibc ,血的教训编译了单独放个目录,设置环境变量
tinybaby365
    22
tinybaby365  
   198 天前   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  
   198 天前
你自己搞个静态编译的不就完事了
flyqie
    24
flyqie  
   198 天前 via Android   2
@guoer #3

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

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