安装g ++ ubuntu 14.04取决于:g ++-4.8(> = 4.8.2-5〜)但不会被安装


9

我刚输入:

sudo apt-get install g++

并得到:

The following packages have unmet dependencies:
 g++ : Depends: g++-4.8 (>= 4.8.2-5~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

我也尝试根据其他论坛的建议:

sudo apt-get update

sudo apt-get -f install

没有一个能解决我的问题。如果您知道答案,请提供帮助。

编辑:

根据评论中的建议,我尝试了:

sudo apt-cache policy g++-4.8

并得到以下输出:

g++-4.8:
  Installed: (none)
  Candidate: 4.8.2-19ubuntu1
  Version table:
     4.8.2-19ubuntu1 0
        500 http://ca.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

通过尝试:

sudo apt-get install g++-4.8

我有:

The following packages have unmet dependencies:
 g++-4.8 : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is to be installed
           Depends: gcc-4.8 (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is to be installed
           Depends: libstdc++-4.8-dev (= 4.8.2-19ubuntu1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

这些apt-get命令的输出/错误是什么?
丹尼尔(Daniel)

apt-get update只是更新存储库...有很多输出行,但没有错误... apt-get -f install给出:0升级,0新安装,0删除和44未升级。
alecrosic

编辑您的问题,并在apt-cache policy g++-4.8
AB

尝试通过强制安装,sudo apt-get install g++-4.8然后将输出添加到您的问题中。您应该看到另一个错误消息。我们需要此消息来找到真正的问题。
AB

@A.B.如果没有,请给我评论。我没有收到关于您更改了问题的通知。
AB

Answers:


9

问题是:

libstdc++-4.8-dev : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is to be installed

为什么?这就是为什么:

  • libstdc++-4.8-dev 在主要存储库中取决于 libstdc++-4.8-dev=4.8.2-19ubuntu1

  • libstdc++-4.8-dev更新资料档案库中的内容取决于libstdc++-4.8-dev=4.8.4-2ubuntu1~14.04系统中安装的,


解决方案?

我的第一选择是,再次启用更新存储库:

  • 打开Software & Updates并打开标签Updates

  • 选择trusty-updatestrusty-security并点击Close

    如果有人拥有该终端的版本,请告诉我。

    在此处输入图片说明

  • Reload

    在此处输入图片说明

  • 安装

    sudo apt-get install g++
    

我的第二选择,降级

嗯,我想这是个坏主意=)


启用更新并重新加载!谢谢。
alecrosic 2015年

这些已经为我检查过了,但是取消选中并重新检查它们,然后重新加载也可以。
米奇2015年

0

因为源代码的Ubuntu 14.04太旧或无法访问,所以我们应该更新源代码,这将得到解决。首先,我们应该备份源文件sources.list

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

根据Ubuntu的版本添加新的源。

  1. 查询version命令:

    lsb_release -a
    

    然后它将打印以下信息:

    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 14.04.4 LTS
    Release:    14.04
    Codename:   trusty
    
  2. 根据选择合适来源的版本,并添加到“ /etc/apt/sources.list”文件的末尾。

    http://wiki.ubuntu.org.cn/Template:14.04source,
    

    Ubuntu 14.04来源:

    deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
    
  3. 更新源

    sudo apt-get update
    
  4. sudo apt-get install g++
    
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.