首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在ubuntu20.04中安装g++和build-essentials

无法在ubuntu20.04中安装g++和build-essentials
EN

Stack Overflow用户
提问于 2021-03-30 18:41:33
回答 4查看 5.4K关注 0票数 9

即使在使用apt-get clean进行清理后,它也会显示有损坏的包装。1中提到的sudo dpkg -l | grep ^..r不返回任何内容。

代码语言:javascript
运行
复制
$ sudo apt-get install build-essential
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:
 build-essential : Depends: libc6-dev but it is not going to be installed or
                            libc-dev
                   Depends: g++ (>= 4:9.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

1

EN

回答 4

Stack Overflow用户

发布于 2021-05-19 13:28:58

TL;DR:必须降级libc6,然后才能安装build-essential

经历了同样的事情:

代码语言:javascript
运行
复制
$ sudo apt install build-essential
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:
 build-essential : Depends: libc6-dev but it is not going to be installed or
                            libc-dev
                   Depends: g++ (>= 4:9.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

下面是我为解决这个问题所做的。

查看了apt-cache policy g++,我认为这已经很满足了,所以我继续前进:

代码语言:javascript
运行
复制
$ apt-cache policy g++
g++:
  Installed: (none)
  Candidate: 4:9.3.0-1ubuntu2
  Version table:
     4:9.3.0-1ubuntu2 500
        500 http://mirrors.xtom.com/ubuntu focal/main amd64 Packages

选中的apt-cache policy libc6-dev

代码语言:javascript
运行
复制
$ apt-cache policy libc6-dev
libc6-dev:
  Installed: (none)
  Candidate: 2.31-0ubuntu9.2
  Version table:
     2.31-0ubuntu9.2 500
        500 http://mirrors.xtom.com/ubuntu focal-updates/main amd64 Packages
     2.31-0ubuntu9 500
        500 http://mirrors.xtom.com/ubuntu focal/main amd64 Packages

尝试安装特定版本(上面显示的最新版本):

代码语言:javascript
运行
复制
$ sudo apt install libc6-dev=2.31-0ubuntu9.2
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:
 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.

做了同样的事情,尝试安装特定的libc6版本:

代码语言:javascript
运行
复制
$ sudo apt install libc6=2.31-0ubuntu9.2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  glibc-doc
The following packages will be DOWNGRADED:
  libc6
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
Need to get 2,715 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
...
dpkg: warning: downgrading libc6:amd64 from 2.31-0ubuntu9.3 to 2.31-0ubuntu9.2
...

重点是我收到的警告:dpkg: warning: downgrading libc6:amd64 from 2.31-0ubuntu9.3 to 2.31-0ubuntu9.2

现在我可以安装build-essential了。

代码语言:javascript
运行
复制
$ sudo apt install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  g++ g++-9 libc-dev-bin libc6-dev libcrypt-dev libstdc++-9-dev linux-libc-dev manpages-dev
Suggested packages:
  g++-multilib g++-9-multilib gcc-9-doc glibc-doc libstdc++-9-doc
The following NEW packages will be installed:
  build-essential g++ g++-9 libc-dev-bin libc6-dev libcrypt-dev libstdc++-9-dev linux-libc-dev manpages-dev
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 16.2 MB of archives.
After this operation, 77.1 MB of additional disk space will be used.
Do you want to continue? [Y/n]

我读了很多不同的stackoverflow帖子,这些帖子让我开始使用我不熟悉的apt-cache policy $package。然后我就随便玩玩。

票数 13
EN

Stack Overflow用户

发布于 2021-04-29 05:17:06

在寻找了答案之后,我决定手动安装“正确”的版本,并在下载pkg文件时遇到了这个问题:

将以下行添加到/etc/apt/Soures.list:

代码语言:javascript
运行
复制
deb http://archive.ubuntu.com/ubuntu/ focal-proposed main

更新包索引:

代码语言:javascript
运行
复制
sudo apt-get update

添加此存储库后,我可以使用以下命令安装build-essential:

代码语言:javascript
运行
复制
sudo apt-get install build-essential
票数 1
EN

Stack Overflow用户

发布于 2021-09-07 09:52:49

我想我偶然发现了一个非常简单的解决方案。没有降级或内核构建。刚跑完

代码语言:javascript
运行
复制
sudo apt update && sudo apt upgrade -y

在我的案例中,有3个存储库返回错误。比如,

代码语言:javascript
运行
复制
E: The repository 'cdrom://Ubuntu 20.04 LTS _Focal Fossa_ - Release amd64 (20200423) focal Release' does not have a Release file.

刚刚启动了软件更新程序,删除了有错误的PPA,现在我可以安装新软件而不需要

代码语言:javascript
运行
复制
Depends: libc6 (>= 2.33) but 2.31-0ubuntu9.2 is to be installed

错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66869441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档