首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu上安装G++时的错误和问题

在Ubuntu上安装G++时的错误和问题
EN

Ask Ubuntu用户
提问于 2022-01-26 17:54:50
回答 2查看 1.8K关注 0票数 0

当我遇到此错误时,尝试安装g++:

代码语言:javascript
复制
$ sudo apt-get install g++
[sudo] password for eisha: 
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.

下面是命令$ apt policy g++的输出:

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

下面是命令$ apt policy g++-9的输出:

代码语言:javascript
复制
$ apt policy g++-9
g++-9:
  Installed: (none)
  Candidate: 9.3.0-17ubuntu1~20.04
  Version table:
     9.3.0-17ubuntu1~20.04 500
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
     9.3.0-10ubuntu2 500
        500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages

是的,我确实尝试过:sudo apt install build-essential,输出类似于这样:

代码语言:javascript
复制
sudo apt install build-essential
[sudo] password for eisha: 
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.

是的,我也尝试了sudo apt update,我得到了一个很长的输出,结尾行是:

代码语言:javascript
复制
Last modification reported: Wed, 26 Jan 2022 19:25:00 +0000
   Release file created at: Wed, 26 Jan 2022 16:17:36 +0000
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/focal-updates/restricted/i18n/Translation-en.xz  
E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/focal-updates/universe/binary-amd64/Packages.xz  
W: Some index files failed to download. They have been ignored, or old ones used instead
EN

回答 2

Ask Ubuntu用户

发布于 2022-01-27 09:06:26

TL;DR:将libc6降级为libc6=2.31-0ubuntu9.2并安装build-essential

您没有启用所需的存储库。此外,也有坏版本的包。

通过在Ubuntu20.04上运行apt-cache policy g++,我得到:

代码语言:javascript
复制
g++:
  Installed: (none)
  Candidate: 4:9.3.0-1ubuntu2
  Version table:
     4:9.3.0-1ubuntu2 500
        500 http://mirrors.my mirror.com/ubuntu focal/main amd64 Packages

因此,您必须启用main存储库。运行:

代码语言:javascript
复制
sudo add-apt-repository main && sudo apt update

在启用main存储库之后。安装正确版本的libc6

代码语言:javascript
复制
sudo apt install --reinstall libc6=2.31-0ubuntu9.2

不要运行apt upgrade

现在,更新并清理:

代码语言:javascript
复制
sudo apt update
sudo apt clean
sudo apt autoremove
sudo apt -f install

现在,安装元包build-essential以安装g++

代码语言:javascript
复制
sudo apt install aptitude
sudo aptitude -f install build-essential

如果上面的方法不起作用,那么试着恢复默认的存储库,并使用aptitude来安装构建必需的:

代码语言:javascript
复制
sudo mkdir ~/answer && cd ~/answer/ && sudo wget https://gist.githubusercontent.com/ishad0w/788555191c7037e249a439542c53e170/raw/3822ba49241e6fd851ca1c1cbcc4d7e87382f484/sources.list && sudo sed -i "s/focal/$(lsb_release -c -s)/" ~/answer/sources.list && sudo mv ~/answer/sources.list /etc/apt/ && sudo apt update && sudo apt upgrade  && sudo rm -rf ~/answer
sudo aptitude -f install build-essential

Still没有工作

编辑您的问题,包括:

  • sudo apt install libc6-dev
  • sudo apt update
  • apt-cache policy libc6
  • apt-cache policy libc-dev

(在加入这些细节后,请向我提交详细资料;)

票数 2
EN

Ask Ubuntu用户

发布于 2022-01-26 18:47:13

根据本文档,请尝试以下内容

首先,更新包索引sudo apt update

在Ubuntu20.04上安装C++编译器的推荐方法是安装整个开发包build-essential

若要安装,请运行以下命令:

代码语言:javascript
复制
$ sudo apt install build-essential

然后,要检查它是否已成功安装,请运行:

代码语言:javascript
复制
$ g++ --version

您应该得到一个类似于下面的输出:

代码语言:javascript
复制
$ g++ --version
gcc (Ubuntu 9.2.1-17ubuntu1) 9.2.1 20191102
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1389433

复制
相关文章

相似问题

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