こんにちは。エクセルソフトの田淵です。
とある案件で 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
には gcc
と gcc-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 の内容のまま、設定を行います。
起動
無事起動できました!やったね!