修复软件包依赖关系?

修复软件包依赖关系?

我尝试sudo apt-get install build-essential按照要求安装 build-essential。它返回错误

    The following packages have unmet dependencies:
     build essential : Depends: g++ (>= 4:4.4.3) but it is not going to be installed
    E: Unable to correct problems, you have held broken packages.

我尝试使用一些不同的修复程序,例如sudo apt-get install -fsudo apt-get update以及,sudo apt-get upgrade但都没有修复软件包。使用时,sudo apt-get install -f终端会告诉我这些。

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following packages were automatically installed and are no longer required:
      linux-image-3.19.0-25-generic linux-image-extra-3.19.0-25-generic
    Use 'apt-get autoremove' to remove them.
    0 upgraded, 0 newly installed, 0 to remove and 13 not upgraded.

其他选项没有返回任何内容。我查阅了其他一些指南和问题,但都没有用。我尝试dpkg -i让它为我安装依赖项,我尝试自己按照迷宫手动安装依赖项,但我得到的依赖项越来越多,直到我找不到依赖项的冷隧道尽头的光芒。有没有一种简单的方法可以通过我不使用的终端安装 build-essential,或者有没有命令可以为我安装这一长串的依赖项?我想我已经包含了您需要的所有信息。这是dpkg -i我尝试过的指南的链接--如何让“dpkg -i”帮我安装依赖项?如果需要更多信息我可以提供给您!

编辑:

这是 的输出apt-cache policy build-essential g++

    build-essential:
      Installed: (none)
      Candidate: 11.6ubuntu6
      Version table:
         11.6ubuntu6 0
            500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
    g++:
      Installed: (none)
      Candidate: 4:4.8.2-1ubuntu6
      Version table:
         4:4.8.2-1ubuntu6 0
            500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

我也运行了其他人的解决方案,但没有成功,但我注意到代码中有一些有趣的东西,所以我又运行了sudo apt-get dist-upgrade一次,以获取信息。这是我得到的结果。我不确定它是什么意思,也不知道该如何修复它。如果有人能回答这里的多个问题,那将非常有帮助!谢谢!

    $ sudo apt-get dist-upgrade
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Calculating upgrade... Done
    The following packages have been kept back:
      cpp-4.8 gcc-4.8-base gcc-4.8-base:i386 libasan0
    0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

sudo apt-get updates看到此情况后,我尝试运行sudo apt-get install -f,但得到的只是与之前相同的输出。

答案1

我只知道两种方法可以做到这一点:sudo apt-get install -f另一种是通过浏览器手动下载所有内容并将包放入(下载的包所在的文件夹)中/var/cache/apt/archives,然后再次调用安装。

您可以检查软件包的完整性,以防损坏是依赖关系未解决的原因。我的功夫不比这深。您也可以尝试清除,然后auroremove在所需的软件上再次调用安装。

答案2

这可能是针对特定情况的修复(这种情况我从未发生过两次,所以我不知道),但当我运行sudo apt-get install build-essential checkinstall它时安装了所有依赖项。安装依赖项的另一种方法可能是通过gdebi(也不确定那一种方法。我从未使用过它,但经过一番研究,我相信它会起作用)。我尝试使用安装其他软件包sudo apt-get install package checkinstall,它再也没有要求我修复依赖项。

相关内容