メインコンテンツにスキップ

vscoderemote ssh

glibc >= 2.28, libstdc++ >= 3.4.25

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 安装 SCL 仓库
yum install -y centos-release-scl
# 尝试安装
yum install -y devtoolset-8-gcc*

ツールリンクにアクセスできない devtoolset8-gcc* をインストールしてください。

Aliyun 上のリンクを置き換える

cd /etc/yum.repos.d/
mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak
mv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak

ファイルの:CentOS-scl.repo

[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos/7/sclo/$basearch/sclo/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

[centos-sclo-sclo-testing]
name=CentOS-7 - SCLo sclo Testing
baseurl=http://buildlogs.centos.org/centos/7/sclo/$basearch/sclo/
gpgcheck=0
enabled=0

[centos-sclo-sclo-source]
name=CentOS-7 - SCLo sclo Sources
baseurl=http://vault.centos.org/centos/7/sclo/Source/sclo/
gpgcheck=1
enabled=0

[centos-sclo-sclo-debuginfo]
name=CentOS-7 - SCLo sclo Debuginfo
baseurl=http://debuginfo.centos.org/centos/7/sclo/$basearch/debuginfo/
gpgcheck=1
enabled=0

ファイルの2:CentOS-scl-rh.repo

[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

[centos-sclo-rh-testing]
name=CentOS-7 - SCLo rh Testing
baseurl=http://buildlogs.centos.org/centos/7/sclo/x86_64/rh/
gpgcheck=0
enabled=0

[centos-sclo-rh-source]
name=CentO-7 - SCLo rh Sources
baseurl=http://vault.centos.org/centos/7/sclo/Source/rh/
gpgcheck=1
enabled=0

[centos-sclo-rh-debuginfo]
name=CentOS-7 - SCLo rh Debuginfo
baseurl=http://debuginfo.centos.org/centos/7/sclo/x86_64/debuginfo/
gpgcheck=1
enabled=0

yum clean all
yum makecache
#
yum repolist | grep scl
#
yum install -y devtool-8-gcc*

glibc >= 2.28(アップグレード)

# glibcバージョン
strings /lib64/libc.so.6 |grep GLBC_
# glibc
wget http://ftp.gnu.org/glibc/glibc-2.28.tar.gz
tar xf glibclibc.6 z 
cd glibc-2.28/ && mkdir build && cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-head-bitils=/usr/bin

考えられるエラー

configure: 
*** These critical programs are missing or too old: make bison compiler
*** Check the INSTALL file for required versions.

:の gccとmake をアップグレードする

# 升级GCC(默认为4 升级为8)</span>
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc*
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++

# 升级 make(默认为3 升级为4)
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz
tar -xzvf make-4.3.tar.gz && cd make-4.3/
./configure  --prefix=/usr/local/make
make && make install
cd /usr/bin/ && mv make make.bak
ln -sv /usr/local/make/bin/make /usr/bin/make

この時 全ての疑問が頭を適用して glibc のアップデートを再度実行しました

cd /root/glibc-2.28/build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

もはや:bisonは古すぎた

configure: 
*** These critical programs are missing or too old: bison
*** Check the INSTALL file for required versions.

俺たちのビゾンの どのバージョンを?

bison --version
# -bash: bison:

yum install -y bison
bison --version

そのとき 全ての問題は もう終わったわ Glibcは一度やり直せる モードだ

cd /root/glibc-2.28/build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

続ける

make make とmake installは linux でソフトウェアをインストールします 非常に単純なことに思えます このプロセスはより長く、およそ半分の時間で動くように作るのがお勧めです。

make && make install
# PS: errorも無いように感じます。接続状態が続くとすぐチェックできます。

検証します。 PS: vscode用のremote-ssh接続を利用してください)

新規動的ライブラリを接続または修正する

node: /lib64/libstdc+.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc+.so.6: `GLIBXX_3. .20' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBXX_3.4.21' not found (required by node)

次のコマンドで確認

strings /usr/lib64/libstdc+.so.6 | grep CXXABI

libstdc++.so.6.0.26 を更新

# lib libstdc+.so.6.0.26
 
wget https://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0. 6 --no-check-cer-certificate
 
 
# システム中の /usr/lib64
cp libstdc+.so.6.0.26 /usr/lib64/

cd /usr/lib64/

ln -snf ./libstdc+.so.6.0.26

再接続(Pfvscode用のremote-ssh接続)

# 连接成功后, 可能遇到的新问题
# manpath: can't set the locale; make sure $LC_* and $LANG are correct

対応

# 检查当前时区
locale
# 可能会出现以下错误
$ locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
# 生成缺失的区域设置
locale -a
# 编辑区域配置文件
vi /etc/locale.conf

# 添加以下内容
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

# 生成区域设置
localedef -i en_US -f UTF-8 en_US.UTF-8

# 如果需要其他区域设置,可以相应更改 en_US 和 UTF-8。例如,对于简体中文:
localedef -i zh_CN -f UTF-8 zh_CN.UTF-8

# 设置环境变量临时生效
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

# 你可以将这些命令添加到 ~/.bashrc 或 ~/.bash_profile 文件中,以便每次登录时自动设置:
echo 'export LANG=en_US.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=en_US.UTF-8' >> ~/.bashrc
source ~/.bashrc

# 验证
locale

参照

node: /lib64/libm.so.6: version `GLBC_2.27" not found問題解決