1.99 以上版本微软大战代码(Microsoft VS Code) 连接 centos 7的解决方案(CentOS 7 安装升级 glibc)
前言
根据微软的说明,1.99以上的 vscode 将需要 GLIBC 2.28以上版本,微软官方给出的解决方案是自己编译一套GLIBC。但是这个可行度比较低,实际上我们也可以找到相关的预编译包,直接下载解压即可,不必自己编译。
致谢
MelodiCly在 Ubuntu 12.04 上安装了新版本的GLIBC,并成功运行 vscode。如果你是ubuntu系统,可以参考上文。如果你是centos 7系统,可以参考本文。本文的一些内容参考了上述文章。
操作步骤
首先创建一个工作文件夹并进入
1
mkdir glibc下载glibc-2.28-251.el8_10.27.x86_64.rpm并解压
1
2
3
4
5
6cd glibc
wget https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/baseos/os/Packages/g/glibc-2.28-251.el8_10.27.x86_64.rpm
mkdir glibc-2.28-251.el8_10.27.x86_64
cd glibc-2.28-251.el8_10.27.x86_64
rpm2cpio ../glibc-2.28-251.el8_10.27.x86_64.rpm | cpio -idmv
cd ..下载libstdc++-8.5.0-28.el8_10.x86_64.rpm并解压
1
2
3
4
5wget https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/baseos/os/Packages/l/libstdc++-8.5.0-28.el8_10.x86_64.rpm
mkdir libstdc++-8.5.0-28.el8_10.x86_64
cd libstdc++-8.5.0-28.el8_10.x86_64
rpm2cpio ../libstdc++-8.5.0-28.el8_10.x86_64.rpm | cpio -idmv
cd ..下载patchelf 0.18.0并解压
这步需要手动去GitHub下载,下载完成后放置于最初创建的工作文件夹glibc中,得到:patchelf-0.18.0-x86_64.tar.gz,然后将其解压
1
2
3
4mkdir patchelf
cd patchelf
tar -xf ../patchelf-0.18.0-x86_64.tar.gz
cd ..然后将所有需要的库文件拷贝到一个文件夹,命名为
custom_lib_for_vsc
1
2
3
4mkdir custom_lib_for_vsc
cp -rd glibc-2.28-251.el8_10.27.x86_64/usr/lib64/* custom_lib_for_vsc/
cp -rd libstdc++-8.5.0-28.el8_10.x86_64/usr/lib64/* custom_lib_for_vsc/
cp patchelf/bin/patchelf custom_lib_for_vsc/随后,修改~/.bashrc,添加几行环境变量
1
2
3export VSCODE_SERVER_CUSTOM_GLIBC_LINKER=/path/to/your/glibc/custom_lib_for_vsc/ld-linux-x86-64.so.2
export VSCODE_SERVER_CUSTOM_GLIBC_PATH=/path/to/your/glibc/custom_lib_for_vsc
export VSCODE_SERVER_PATCHELF_PATH=/path/to/your/glibc/custom_lib_for_vsc/patchelf
并将/path/to/your/glibc替换为你刚刚创建的工作文件夹路径。至此,请享用您的微软大战代码程序。
tips
用该方法patch后,使用vscode连接服务器可能会提示你:正在连接到不受支持的操作系统,请点击允许即可。
后记
在GitHub也有一个项目,patch了vscode的server端程序,但是使用该项目patch的vscode,本人无法使用某些插件。转而使用官方建议的上述方法patch,可以正常使用插件。