v1.0.46 fails to start MCP server on Ubuntu 20.04
- 主要语言
- Shell
- 星标
- 11.2k
- 派生
- 1.9k
- 平均合并
- 14 小时 16 分钟
- 30 天内合并 PR
- 6
描述
### Describe the bug
When upgrading to v1.0.46 on my ubuntu 20.04 machine, I noticed that the MCP servers don't start anymore. After investigating, this seems to be because the runtime (native/runtime/runtime.linux-x64-gnu.node) is compiled for glibc 2.33 or later, but Ubuntu 20.04 only ships with 2.31.
I used a different copilot on a different machine to solve the problem, which did the following:
_1. ELF-patched 4 .node files to remove the VERNEED version requirements for GLIBC_2.33/GLIBC_2.34 (using a Python script + patchelf --clear-symbol-version), and added libpthread.so.0/libdl.so.2 to their NEEDED entries where required
2. Built /home/user/.local/lib/glibc_compat.so — a small C shim that exposes stat64/fstat64 as public symbols (wrapping glibc
2.31's internal __xstat64/__fxstat64)
3. Replaced /home/user/.local/bin/copilot with a wrapper script that sets LD_PRELOAD=glibc_compat.so before launching copilot.bin_
### Affected version
Github Copilot CLI 1.0.46
### Steps to reproduce the behavior
1. Fire up a Ubuntu 20.04
2. Install copilot 1.0.46 (maybe latest as well?)
3. Start copilot and observe error messages about MCP server failing to start due to some npm issue (a bit misleading).
### Expected behavior
_No response_
### Additional context
_No response_
贡献指南
调研方向
首先,按照列出的安装和启动步骤,在 Ubuntu 20.04 上复现 MCP 启动失败。检查 native/runtime/runtime.linux-x64-gnu.node 和已安装的 copilot launcher,然后将二进制文件的 GLIBC 要求与主机的 glibc 2.31 进行比较。当 v1.0.46 能够在没有误导性的 npm 相关失败的情况下启动 MCP 服务器时,即视为完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- c, node.js, python, shell, ubuntu
- 领域
- cli, operating-systems
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 42/100