Centosでdevtoolsetを使用して親バージョンのgccに切り替えてからデフォルトのgccに切り替える方法

Centosでdevtoolsetを使用して親バージョンのgccに切り替えてからデフォルトのgccに切り替える方法

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つに設定されるように~/.bashrcorを挿入することもできます。この方法を使用している場合は、システムのデフォルトに戻るには、またはの行をコメントアウトしてから、それぞれまたはを実行します。これにより、これらのシェル初期化ファイルの1つにあるすべてのコンテンツ(コメント付きコマンドを除く)を含む新しいシェルセッションが開始されます。唯一の欠点は、シェルセッションが新しいことであるため、コマンドで設定したすべての変数がもう存在しないことです。~/.bash_profilegccdevtoolset~/.bashrc~/.bash_profilebashsource ~/.bash_profilescl enableexport

答え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?など、一部の環境変数を変更する問題かもしれません。それを見て、それが何であるかを確認し、使用したい古いコンパイラに合わせて調整できますか?見つける必要があるのは、新しいコンパイラファイルがインストールされているディレクトリ名(以前のコンパイラに対応するパス名に変更)とバージョン番号です。他に何があるのか​​気になります。

関連情報