CentOS 7 に最新の VSCode をインストールするには

こんにちは。エクセルソフトの田淵です。

とある案件で 2021/6/16 時点の最新版 VSCode 1.57 を CentOS 7 にインストールしようとしたら思いのほか大変だったので、メモを残しておきます。

VSCode インストール

まずは素直に公式ドキュメントに従ってレポジトリの追加、インストールを行います。

Running Visual Studio Code on Linux

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'

yum check-update
sudo yum install code

エラー対応

インストールが完了したので起動しようとすると起動しないので code --verbose で起動を試したところ、まずは以下のようなエラーが表示されました。

:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /usr/share/code/chrome-sandbox is owned by root and has mode 4755.

メッセージの通りに、/usr/share/code/chrome-sandbox の Permission を設定します。

cd /usr/share/code/
sudo chown root:root chrome-sandbox
sudo chmod 4755 chrome-sandbox

再度 code --verbose で実行すると次は以下のエラーが出ました。

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.XX' not found (required by code)

libstdc++.so.6 に含まれている GLIBCXX が古いようです。

sudo yum list libstdc++

で最新にしてみましたが、結果は同じでした。

CentOS6 の libstdc++ を更新する - SaintSouth.NET にあるように、strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX を実行すると確かに VSCode で要求されているバージョンが含まれていません。

最新の gcc をソースからインストールする必要がありそうです。

gcc のインストール

【CentOS7】Minecraft Java Edition インストール | minecraft.server-memo.net を参考にし、gcc のインストールを行いました。

2021/6/16 の時点では 11.1 が出ていましたが、念のため一個前の 10.3 を利用しました。

curl -LO http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.3.0/gcc-10.3.0.tar.gz
curl -LO http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.3.0/sha512.sum

make には gccgcc-c++ が必要なので、あらかじめsudo yum install gcc gcc-c++ でインストールしておきましょう。

root になって、ソースからビルドします。

# tar xzfv gcc-10.3.0.tar.gz -C /usr/local/src
# cd /usr/local/src/gcc-10.3.0/

# ./contrib/download_prerequisites

# mkdir build
# cd build
# ../configure --enable-languages=c,c++ --prefix=/usr/local --disable-bootstrap --disable-multilib
# make
# make install

インストールされているか確認します。

$ gcc --version
gcc (GCC) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

共有ライブラリ参照設定

【CentOS7】Minecraft Java Edition インストール | minecraft.server-memo.net の内容のまま、設定を行います。

起動

無事起動できました!やったね!

タイトルとURLをコピーしました