由于未满足的依赖项,无法安装 gcc-4.8

Mar*_*dik 1 installation ppa dependencies gcc 13.10

我试图从这个 PPA使用Synapticgcc-4.8.1升级到gcc-4.8.2。安装执行没有问题,但突然间我根本没有 gcc-4.8。我同时使用 gcc-4.7 和 gcc-4.8,但由于某种原因只剩下 4.7。然后我尝试使用重新安装 gcc-4.8但我遇到了未满足的依赖项错误。我试图使用这个问题的答案来解决这个问题,但无济于事。apt-get install

sudo apt-get install gcc-4.8
Run Code Online (Sandbox Code Playgroud)

结果是:

...
The following packages have unmet dependencies:
 gcc-4.8 : Depends: binutils (>= 2.23.90.20131017) but
2.23.52.20130913-0ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)

以下是输出:

martin@martin-Studio-1537:~$ cat /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu saucy main universe restricted multiverse
deb http://security.ubuntu.com/ubuntu/ saucy-security main universe restricted multiverse
deb http://archive.ubuntu.com/ubuntu saucy-updates main universe restricted multiverse
deb http://archive.ubuntu.com/ubuntu saucy-proposed main universe restricted multiverse
deb-src http://archive.ubuntu.com/ubuntu saucy main universe restricted multiverse #Added by software-properties
deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu saucy main
Run Code Online (Sandbox Code Playgroud)

martin@martin-Studio-1537:~$ cat /etc/apt/sources.list.d/*
# deb http://download.mendeley.com/apt/ stable main
deb http://ppa.launchpad.net/p12/qtcreator/ubuntu saucy main
deb-src http://ppa.launchpad.net/p12/qtcreator/ubuntu saucy main
deb http://ppa.launchpad.net/p12/qtcreator/ubuntu saucy main
# deb-src http://ppa.launchpad.net/p12/qtcreator/ubuntu saucy main
deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu saucy main
deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu saucy main
# deb http://ppa.launchpad.net/webupd8team/y-ppa-manager/ubuntu saucy main
# deb-src http://ppa.launchpad.net/webupd8team/y-ppa-manager/ubuntu saucy main
# deb http://ppa.launchpad.net/webupd8team/y-ppa-manager/ubuntu saucy main
# deb-src http://ppa.launchpad.net/webupd8team/y-ppa-manager/ubuntu saucy main
Run Code Online (Sandbox Code Playgroud)

我尝试在禁用所有 PPA后重复答案中的建议,然后再次启用gcc-4.8.2 PPA ,但我仍然无法安装 gcc-4.8.2。

我做错了什么,我该如何修复我的系统?

编辑:

我试过

martin@martin-Studio-1537:~$ sudo apt-get install -f
[sudo] password for martin: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Run Code Online (Sandbox Code Playgroud)

进而

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

但结果是一样的。

除了清除或删除 PPA 之外,我尝试了此答案中的所有内容。

编辑2:

我按照searchforgold6789 的回答中的说明进行操作,它确实有效!我成功安装了 gcc-4.8.1。但是当我再次添加 PPA 并尝试升级时,我得到以下输出:

The following packages have been kept back:
  cpp-4.8 g++-4.8 gcc-4.8 gcc-4.8-base libasan0 libatomic1 libgcc-4.8-dev
  libgcc1 libgcc1-dbg libgfortran3 libgomp1 libitm1 libquadmath0
  libstdc++-4.8-dev libstdc++6 libstdc++6-4.8-dbg
The following packages will be upgraded:
  libcloog-isl4 libisl10
2 upgraded, 0 newly installed, 0 to remove and 16 not upgraded.
Run Code Online (Sandbox Code Playgroud)

编辑3:

当我这样做时,apt-get dist-upgrade它建议应该删除g++-4.8 gcc-4.8 。为什么会这样?我应该继续吗?我想这就是我一开始遇到这个麻烦的原因。

martin@martin-Studio-1537:~$ sudo apt-get dist-upgrade
...
The following packages will be REMOVED:
  g++-4.8 gcc-4.8
The following packages will be upgraded:
  cpp-4.8 gcc-4.8-base libasan0 libatomic1 libgcc-4.8-dev libgcc1 libgcc1-dbg
  libgfortran3 libgomp1 libitm1 libquadmath0 libstdc++-4.8-dev libstdc++6
  libstdc++6-4.8-dbg
14 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
Need to get 14.9 MB of archives.
After this operation, 32.4 MB disk space will be freed.
Run Code Online (Sandbox Code Playgroud)

Ric*_*ard 6

首先你应该清理旧的ppa......

sudo apt-get install ppa-purge 
sudo ppa-purge ppa:ubuntu-toolchain-r/test
Run Code Online (Sandbox Code Playgroud)

然后,进入 Software Sources 并确保您启用了Universemultiverse存储库。做:

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

然后你应该能够安装gcc-4.8

sudo apt-get install gcc-4.8
Run Code Online (Sandbox Code Playgroud)

之后,如果您无法添加 PPA 并成功使用 GCC 4.8.2 重试,我会感到非常惊讶。