Centosにいくつかの異なるバージョンのgccをインストールしたいと思います。 centos 6のgccのデフォルトバージョンは4.9.3です。だから私はdevtoolsetを使ってより高いバージョンのgccをインストールしました。その後、「source /opt/rh/devtoolset-5/enable」を実行して、より高いバージョンのgccに切り替えました。しかし、これでデフォルトのgccに戻すにはどうすればよいですか?しかし、Centos 5に複数の異なるバージョンのgccをインストールするためのソリューションはありますか?
答え1
gcc
配布されるバージョンはCentOS 6
実際には4.4.7です。
gcc
ソースからインストールまたはコンパイルして、必要な数のバージョンをインストールできます。devtoolset-#
yum
最初の方法が最も簡単です。インストールがdevtoolset
完了したことを確認してくださいscl repo
。インストールしていない場合:
yum install centos-release-scl
gcc version
その後、次のコマンドを使用して必要に応じて設定できます。この例では5を使用し、シェルが次のようになっていると仮定しますbash
。
scl enable devtoolset-5 bash
6に変更したい場合:
scl enable devtoolset-6 bash
bash
デフォルトに戻すには、シェルが次のいずれかであるとします。
bash
source ~/.bash_profile
最初は新しいシェルセッションを開始し、.NETの~/.bashrc
変数/コマンドを使用して設定します~/.bash_profile
。 (開発ツールセットはアクティブではありません)。
scl enable devtoolset-5 bash
たとえば、ログイン時にバージョンがバージョンの1つに設定されるように~/.bashrc
orを挿入することもできます。この方法を使用している場合は、システムのデフォルトに戻るには、またはの行をコメントアウトしてから、それぞれまたはを実行します。これにより、これらのシェル初期化ファイルの1つにあるすべてのコンテンツ(コメント付きコマンドを除く)を含む新しいシェルセッションが開始されます。唯一の欠点は、シェルセッションが新しいことであるため、コマンドで設定したすべての変数がもう存在しないことです。~/.bash_profile
gcc
devtoolset
~/.bashrc
~/.bash_profile
bash
source ~/.bash_profile
scl enable
export
答え2
私はLinuxの専門家ではありませんが、scl
長年のLinux経験を持っています。
これにより、scl enable devtoolset-9 bash
新しいbashが開始され、新しい環境が設定されます。
次の手順で新しいプロセスを表示できますbash
。
- まず、新しいシェルを起動し、次のようにシェルのpidを確認します。
echo $$
- 第二に、新しい開発ツールセットを有効にします。
scl enable devtoolset-9 bash
- 次に、pidをもう一度確認してください。
echo $$
- ボーナスポイントの場合、
pstree -p
新しいbash pidに古いbashプロセスの親pidがあることを確認できます。
したがって、最終的にあなたの質問に答えるために、デフォルトのコンパイラに戻るには、g++
現在のプロセスを終了するだけですbash
。その後、古いg ++コンパイラが必要です。
~/.bashrcに関する重要な注意:
- 何らかの方法で解決策を修正すると、私の解決策は機能しません。
~/.bashrc
- つまり、そこに何かがあればいつでもできる
scl enable devtoolset-9
- 他のソリューションでは、〜/ .bashrcについてさらに詳しく説明し、それを修正または修正解除する方法について説明していますので、このページの他のソリューションを参照してください。
答え3
PATH
たとえば、ファイルサイズはいくらですか/opt/rh/devtoolset-5/enable
?など、一部の環境変数を変更する問題かもしれません。それを見て、それが何であるかを確認し、使用したい古いコンパイラに合わせて調整できますか?見つける必要があるのは、新しいコンパイラファイルがインストールされているディレクトリ名(以前のコンパイラに対応するパス名に変更)とバージョン番号です。他に何があるのか気になります。