Starting with VS Code release 1.86, the minimum requirements for the build toolchain of the remote server were raised. The prebuilt servers distributed by VS Code are compatible with Linux distributions based on glibc 2.28 or later.
This toolkit provides a workaround for whose setup does not meet these requirements and you are unable to upgrade the Linux distribution but still want to update VS Code. It ensembles glibc, libstdc++ and patchelf.
The following steps have to be executed each time VS Code is updated.
- Update the VS Code on local.
- Connect to the remote server and await the download’s completion until the error regarding unsatisfied prerequisites is encountered.
- Execute the
run.sh
script.
kernel >= 4.18, glibc >=2.28, libstdc++ >= 3.4.25 (gcc 8.1.0), Python 2.6 or 2.7, tar
https://code.visualstudio.com/docs/remote/linux#_remote-host-container-wsl-linux-prerequisites https://code.visualstudio.com/docs/remote/faq#_can-i-run-vs-code-server-on-older-linux-distributions
The following excerpt is from ~/.vscode-server/bin/05047486b6df5eb8d44b2ecd70ea3bdf775fd937/bin/helpers/check-requirements.sh
:
if [ -f "/tmp/vscode-skip-server-requirements-check" ]; then
echo "!!! WARNING: Skipping server pre-requisite check !!!"
echo "!!! Server stability is not guaranteed. Proceed at your own risk. !!!"
exit 0
fi
Hence, creating the file /tmp/vscode-skip-server-requirements-check
can skip the requirements check.
Utilize PatchELF to modify the dynamic linker and RPATH of ELF executables.
Note: The loading priority of the dynamic linker is as follows:
- RPATH within the ELF
- LD_LIBRARY_PATH environment variables
- RUNPATH within the ELF
- Cache in /etc/ld.so.cache
- /lib and /usr/lib