一、简介
通过sudo apt-get install gcc指令安装g++报错。
下列软件包有未满足的依赖关系:
gcc : 依赖: gcc-7 (>= 7.3.0-12~) 但是它将不会被安装
推荐: libc6-dev 但是它将不会被安装 或
libc-dev
又按照网上的解决办法 ,还是报错。
apt-get update
apt-get install build-essential
下列软件包有未满足的依赖关系:
build-essential : 依赖: libc6-dev 但是它将不会被安装 或
libc-dev
依赖: gcc (>= 4:7.2) 但是它将不会被安装
依赖: g++ (>= 4:7.2) 但是它将不会被安装
依赖: dpkg-dev (>= 1.17.11) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
二、解决
主要是因为依赖的文件安装有问题。这里通过aptitude代替apt来处理。aptitude软件包在解决依赖性上更有优势。使用如下命令:
sudo apt-get install aptitude
sudo aptitude install gcc g++
然后,aptitude会给出解决方案,根据解决方案来选择。
可以看到,这里aptitude提醒我们有很多包依赖,而这里显示的都是未安装,所以这里选择不接受这个解决方案。选择N。
然后aptitude会再给出解决方案。因为我们安装的一些包版本与需要的版本不匹配,主要降级。此时选择Y。
然后,aptitude会自动完成依赖包的降级。
结束后,查看gcc和g++版本,已经安装成功。