web-dev-qa-db-ja.com

Ubuntu 16.04でgcc-5をgcc-7にアップグレードする方法は?

これは、 gcc-7またはclang 4.0のインストール方法 へのフォローアップの質問です。

その中の答えに従って、私はgcc-7.2を次の方法でインストールできました。

Sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Sudo apt-get update
Sudo apt-get install -y gcc-7

ただし、インストール後、gcc/g++コマンドは引き続きデフォルトで5.4.0になります

gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609

gcc-7をデフォルトとして使用し、古いgcc-5.xファイルを完全に削除することは可能ですか?


上記の複製とは異なり、シンボリックリンクを設定する代わりにremove/replacegcc-5.xを探していることに注意してください。

1
tinlyx

試行錯誤の末に自分の質問に答えるために、古いgcc(gcc-5)を削除/置換しても安全ではないようですnotツールチェーン全体を一掃する程度までの多くの依存関係。

たとえば、コメントで述べたようにgcc-5を削除/置換しようとすると

Update-alternativesを実行して、gcc-7をデフォルトのgccバージョンとして設定し、タイプをSudo dpkg -r gcc-5に設定します

これによりエラーが生成されます。

dpkg: dependency problems prevent removal of gcc-5:
 g++-5 depends on gcc-5 (= 5.4.1-2ubuntu1~16.04).
 g++ depends on gcc-5 (>= 5.3.1-3~).
 gcc depends on gcc-5 (>= 5.3.1-3~).
 gfortran-5 depends on gcc-5 (= 5.4.1-2ubuntu1~16.04).

これらの依存関係をSudo dpkg -rアイテムのリストに追加する場合、削除する必要があるパッケージの数が増えています。例えば.

 ...
 r-base-dev depends on g++.
 build-essential depends on g++ (>= 4:5.2).

。debパッケージをアンインストールする方法? で説明されているように、削除されるパッケージの最大セットを見つけようとしませんでした。しかし、Ubuntuの便利なパッケージのほとんどがその時点でなくなることは明らかです。

3
tinlyx