6月
05
手元の 20.04 に GCC (g++) をインストールしようとしたら、見慣れないエラーが出てきました。
$ sudo apt install gcc g++ make Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: g++ : Depends: g++-9 (>= 9.3.0-3~) but it is not going to be installed E: Unable to correct problems, you have held broken packages.
はて?
依存関係を掘っていくと、 g++ -> g++-9 -> libstdc++-9-dev -> libc6-dev -> libc6 と辿れたのですが、 最後の libc6-dev -> libc6 のところでこんなこと言われます。
$ sudo apt install libc6-dev (略) The following packages have unmet dependencies: libc6-dev : Depends: libc6 (= 2.31-0ubuntu9.2) but 2.31-0ubuntu9.3 is to be installed E: Unable to correct problems, you have held broken packages.
パッケージリポジトリにあるバージョンより新しいものがインストールされている…?
$ apt list --installed | grep libc (略) libc-bin/now 2.31-0ubuntu9.3 amd64 [installed,local] libc6/now 2.31-0ubuntu9.3 amd64 [installed,local]
local…? deb パッケージを直接インストールした覚えは無いぞ?
「2.31-0ubuntu9.3」でちょちょっとググってみると、 18.04 から 20.04 にアップグレードした Ubuntu でこの現象が起こることがあるようです。ともかく以下のようにして修正します。
$ apt list --installed | grep local (略) libc-bin/now 2.31-0ubuntu9.3 amd64 [installed,local] libc6/now 2.31-0ubuntu9.3 amd64 [installed,local] locales/now 2.31-0ubuntu9.3 all [installed,local] $ sudo apt install libc6=2.31-0ubuntu9.2 libc-bin=2.31-0ubuntu9.2 locales=2.31-0ubuntu9.2 (略) The following packages will be DOWNGRADED: libc6 libc-bin locales (略)
これで g++ をインストールできるようになりました。
no comment untill now