VSCode Remote是最近很火的一个跨平台远程编辑工具,特别适合不喜欢用vim之类的东西的人。
由于psn的glibc版本比较旧,所以直接使用vscode remote连接psn会失败,这里给出配置的步骤:
1、在插件栏装好Remote - SSH
2、在remote栏点+号新建一个链接,随便选一个ssh_config的位置,如果需要的话可以把私钥拷过去,不然就手动输密码。
3、尝试连接remote
因为glibc版本的原因,这个过程会失败。
4. 通过任意ssh客户端登陆psn,会发现在~/下已经有一个.vscode-server的目录:
5. .vscode-server下面会有一个bin,bin下面有个名字奇怪的文件夹,文件夹里有一个GLIBC版本不匹配的node:
[swmore@psn009 ~]$ ls .vscode-server/
bin
[swmore@psn009 ~]$ ls .vscode-server/bin/
78a4c91400152c0f27ba4d363eb56d2835f9903a
[swmore@psn009 ~]$ ls .vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/
bin extensions LICENSE node node_modules out package.json product.json server.sh
[swmore@psn009 ~]$ ldd .vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node
.vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by .vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node)
.vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by .vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node)
.vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by .vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node)
.vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by .vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node)
.vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by .vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node)
.vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by .vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node)
.vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by .vscode-server/bin/78a4c91400152c0f27ba4d363eb56d2835f9903a/node)
linux-vdso.so.1 => (0x00007fffc6fff000)
libdl.so.2 => /lib64/libdl.so.2 (0x000000366fe00000)
librt.so.1 => /lib64/librt.so.1 (0x0000003670600000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003675e00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003670200000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003673e00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x000000366fa00000)
libc.so.6 => /lib64/libc.so.6 (0x000000366f600000)
/lib64/ld-linux-x86-64.so.2 (0x000000366ee00000)
[swmore@psn009 ~]$
- 对node文件进行patch,这里用了我在psn上翻出来的新版本glibc和patchelf:
/usr/sw-cluster/apps/Anaconda/anaconda3/bin/patchelf --set-rpath /usr/sw-cluster/apps/lib/glibc-2.17/lib64/:/usr/sw-cluster/apps/Anaconda/anaconda3/lib/ --set-interpreter /usr/sw-cluster/apps/lib/glibc-2.17/lib64/ld-linux-x86-64.so.2 node
- 重新连接remote,就可以用vscode remote了。
来源:http://bbs.nsccwx.cn/topic/405/%E5%9C%A8psn%E4%B8%8A%E4%BD%BF%E7%94%A8vscode-remote