当 apt-get -f install 失败时修复依赖关系

当 apt-get -f install 失败时修复依赖关系

我试图让 cgminer 3.5 在 Ubuntu 12.04 上运行,但由于缺少 libudev.so.1 而失败。我尝试安装 libc6,但现在存在未满足的依赖项。即使我尝试运行,也会sudo apt-get -f install收到此错误:

sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... failed.
The following packages have unmet dependencies:
 libc6-dev : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.15-0ubuntu10.5 is installed
             Depends: libc-dev-bin (= 2.17-0ubuntu5.1)
 libudev1 : Depends: libc6 (>= 2.17) but 2.15-0ubuntu10.5 is installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
E: Unable to correct dependencies

我已经尝试添加 raring security repo (ebhttp://security.ubuntu.com/ubuntu我在我的 sources.list 文件中安装了 raring-security main,运行 apt-get update 等,但它仍然想要重新安装 2.15 版本,这会导致错误。

\编辑:

 apt-cache policy libc6-dev libc6 libc-dev-bin libudev1
libc6-dev:
  Installed: 2.17-0ubuntu5.1
  Candidate: 2.17-0ubuntu5.1
  Version table:
 *** 2.17-0ubuntu5.1 0
        500 http://security.ubuntu.com/ubuntu/ raring-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.15-0ubuntu10.5 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
     2.15-0ubuntu10 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
libc6:
  Installed: 2.15-0ubuntu10.5
  Candidate: 2.17-0ubuntu5.1
  Version table:
     2.17-0ubuntu5.1 0
        500 http://security.ubuntu.com/ubuntu/ raring-security/main amd64 Packages
 *** 2.15-0ubuntu10.5 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.15-0ubuntu10 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
libc-dev-bin:
  Installed: 2.15-0ubuntu10.5
  Candidate: 2.17-0ubuntu5.1
  Version table:
     2.17-0ubuntu5.1 0
        500 http://security.ubuntu.com/ubuntu/ raring-security/main amd64 Packages
 *** 2.15-0ubuntu10.5 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.15-0ubuntu10 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
libudev1:
  Installed: 198-0ubuntu11
  Candidate: 198-0ubuntu11.2
  Version table:
     198-0ubuntu11.2 0
        500 http://security.ubuntu.com/ubuntu/ raring-security/main amd64 Packages
 *** 198-0ubuntu11 0
        100 /var/lib/dpkg/status

apt-get check 的输出如下:

 apt-get check
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libc6-dev : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.15-0ubuntu10.5 is installed
             Depends: libc-dev-bin (= 2.17-0ubuntu5.1)
 libudev1 : Depends: libc6 (>= 2.17) but 2.15-0ubuntu10.5 is installed
E: Unmet dependencies. Try using -f.

apt-get -u dist-upgrade有同样的问题。有什么办法可以解决这个问题吗?

/编辑 2

apt-get -f install libc6-dev=2.17-0ubuntu5.1 libc6=2.17-0ubuntu5.1 libc-dev-bin=2.17-0ubuntu5.1 libudev1=198-0ubuntu11.2Reading package lists... Done
Building dependency tree       
Reading state information... Done
libc6 is already the newest version.
libc6-dev is already the newest version.
libc6-dev set to manually installed.
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libc6 : Breaks: libc6:i386 (!= 2.17-0ubuntu5.1) but 2.15-0ubuntu10.5 is to be installed
 libc6:i386 : Breaks: libc6 (!= 2.15-0ubuntu10.5) but 2.17-0ubuntu5.1 is to be installed
 libnih1 : PreDepends: libc6 (< 2.16) but 2.17-0ubuntu5.1 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

\编辑 3

apt-cache policy libnih1 libc6 libc6:i386libnih1:
  Installed: 1.0.3-4ubuntu9.1
  Candidate: 1.0.3-4ubuntu9.1
  Version table:
 *** 1.0.3-4ubuntu9.1 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     1.0.3-4ubuntu9 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
libc6:
  Installed: 2.17-0ubuntu5.1
  Candidate: 2.17-0ubuntu5.1
  Version table:
 *** 2.17-0ubuntu5.1 0
        500 http://security.ubuntu.com/ubuntu/ raring-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.15-0ubuntu10.5 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
     2.15-0ubuntu10 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
libc6:i386:
  Installed: 2.15-0ubuntu10.5
  Candidate: 2.17-0ubuntu5.1
  Version table:
     2.17-0ubuntu5.1 0
        500 http://security.ubuntu.com/ubuntu/ raring-security/main i386 Packages
 *** 2.15-0ubuntu10.5 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main i386 Packages
        100 /var/lib/dpkg/status
     2.15-0ubuntu10 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main i386 Packages

编辑4

apt-get remove libnih1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libc-dev-bin : Depends: libc6 (< 2.16) but 2.17-0ubuntu5.1 is to be installed
 libc6 : Breaks: libc6:i386 (!= 2.17-0ubuntu5.1) but 2.15-0ubuntu10.5 is to be installed
 libc6:i386 : Breaks: libc6 (!= 2.15-0ubuntu10.5) but 2.17-0ubuntu5.1 is to be installed
 libc6-dev : Depends: libc-dev-bin (= 2.17-0ubuntu5.1)
 libnih-dbus1 : Depends: libnih1 (= 1.0.3-4ubuntu9.1) but it is not going to be installed
 mountall : Depends: libnih1 (>= 1.0.0) but it is not going to be installed
 upstart : Depends: libnih1 (>= 1.0.0) but it is not going to be installed
 ureadahead : Depends: libnih1 (>= 1.0.0) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

编辑5

lsb_release 的输出:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.3 LTS
Release:    12.04
Codename:   precise

删除 raring repos 并更新后,apt-get install libc6=2.15-0ubuntu10.5 的输出:

apt-get install libc6=2.15-0ubuntu10.5
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libc6-dev : Depends: libc6 (= 2.17-0ubuntu5.1) but 2.15-0ubuntu10.5 is to be installed
             Depends: libc-dev-bin (= 2.17-0ubuntu5.1)
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

编辑6

sudo apt-get install libc6-dev=2.15-0ubuntu10.5 libc6=2.15-0ubuntu10.5
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gir1.2-ubuntuoneui-3.0 libubuntuoneui-3.0-1 thunderbird-globalmenu
Use 'apt-get autoremove' to remove them.
Suggested packages:
  glibc-doc
The following packages will be DOWNGRADED:
  libc6 libc6-dev
0 upgraded, 0 newly installed, 2 downgraded, 0 to remove and 18 not upgraded.
3 not fully installed or removed.
Need to get 7,596 kB of archives.
After this operation, 486 kB disk space will be freed.
Do you want to continue [Y/n]? Y
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main libc6-dev amd64 2.15-0ubuntu10.5 [2,941 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main libc6 amd64 2.15-0ubuntu10.5 [4,654 kB]
Fetched 7,596 kB in 6s (1,095 kB/s)                                            
Preconfiguring packages ...
dpkg: warning: downgrading libc6 from 2.17-0ubuntu5.1 to 2.15-0ubuntu10.5.
(Reading database ... 240709 files and directories currently installed.)
Preparing to replace libc6 2.17-0ubuntu5.1 (using .../libc6_2.15-0ubuntu10.5_amd64.deb) ...
Unpacking replacement libc6 ...
dpkg: error processing /var/cache/apt/archives/libc6_2.15-0ubuntu10.5_amd64.deb (--unpack):
 './usr/share/lintian/overrides/libc6' is different from the same file on the system
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/libc6_2.15-0ubuntu10.5_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

这是因为您混合了不同的存储库包!您必须先删除 raring-security 存储库,然后再尝试其他操作:

sudo sed -i 's/raring/d' /etc/apt/sources.list /etc/apt/sources.list.d/*.list
sudo apt-get update
sudo mv /usr/share/lintian/overrides/libc6 /var/backup/usr/share/lintian/overrides/libc6
sudo apt-get install libc6=2.15-0ubuntu10.5 libc6-dev=2.15-0ubuntu10.5

这应该可以解决问题。

相关内容