ルートアクセス権がないサーバーにgccの更新バージョンをインストールしたいと思いました。機能していないconda install -c creditx gcc-7
を試しました。次に、conda install -c anaconda gcc_linux-64
が実際にgccv7.3をインストールすることを発見しました。しかし、インストールが成功した後でも、conda環境は/usr/bin/gcc
でシステムgccを使用します
インストールしたgcc v7.3を使用できるように、私を助けてください。
ここで説明したように: https://docs.conda.io/projects/conda-build/en/latest/resources/compiler-tools.html
1)コンパイラパッケージ内のすべての実行可能ファイルには「プレフィックス」が付いています。 gccの代わりに、使用するコンパイラの実行可能ファイル名はx86_64-conda_cos6-linux-gnu-gccのようになります。
2)単にgccという名前のコンパイラーに対して、デフォルトでmakeやCMakeなどの多くのビルドツールが検索するため、これらのツールが正しいコンパイラーを指すように環境変数を設定します。
したがって、実行すると:
conda create -n cc_env gcc_linux-64
conda activate cc_env
ls $CONDA_PREFIX/bin
接頭辞付きの名前が付いた一連のコンパイラツールが表示されます。
c89 x86_64-conda_cos6-linux-gnu-ct-ng.config x86_64-conda_cos6-linux-gnu-gcov-dump x86_64-conda_cos6-linux-gnu-objdump
c99 x86_64-conda_cos6-linux-gnu-dwp x86_64-conda_cos6-linux-gnu-gcov-tool x86_64-conda_cos6-linux-gnu-ranlib
x86_64-conda_cos6-linux-gnu-addr2line x86_64-conda_cos6-linux-gnu-elfedit x86_64-conda_cos6-linux-gnu-gprof x86_64-conda_cos6-linux-gnu-readelf
x86_64-conda_cos6-linux-gnu-ar x86_64-conda_cos6-linux-gnu-gcc x86_64-conda_cos6-linux-gnu-ld x86_64-conda_cos6-linux-gnu-size
x86_64-conda_cos6-linux-gnu-as x86_64-conda_cos6-linux-gnu-gcc-ar x86_64-conda_cos6-linux-gnu-ld.bfd x86_64-conda_cos6-linux-gnu-strings
x86_64-conda_cos6-linux-gnu-cc x86_64-conda_cos6-linux-gnu-gcc-nm x86_64-conda_cos6-linux-gnu-ld.gold x86_64-conda_cos6-linux-gnu-strip
x86_64-conda_cos6-linux-gnu-c++filt x86_64-conda_cos6-linux-gnu-gcc-ranlib x86_64-conda_cos6-linux-gnu-nm
x86_64-conda_cos6-linux-gnu-cpp x86_64-conda_cos6-linux-gnu-gcov x86_64-conda_cos6-linux-gnu-objcopy
CCやCPPのような環境変数は使用するコンパイラーを指しているので、これは問題ありません。
$ echo $CC
/home/builder/anaconda3/envs/cc_env/bin/x86_64-conda_cos6-linux-gnu-cc
$ echo $CPP
/home/builder/anaconda3/envs/cc_env/bin/x86_64-conda_cos6-linux-gnu-cpp
Makeが認識する環境変数の詳細については、以下を参照してください。 https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html