无法安装 libc6-dev

JAu*_*tin 7 package-management apt dependencies gcc 14.04

gcc 编译器行为异常,在修复过程中,部分 libc6 软件包被卸载。现在我尝试在 Ubuntu 14.04 (3.13.0-24-generic) 上使用 apt-get 重新安装它。但是, sudo apt-get install libc6-dev 给出以下错误消息:

The following packages have unmet dependencies:
 libc6-dev : Depends: libc6 (= 2.19-10ubuntu2) but 2.19-10ubuntu2.1 is to be installed
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)

我尝试过使用 aptitude install,卸载各种软件包,以及基本上我能想到的命令的每个变体。然而,他们都给出了这个错误的一个变体。我该如何解决这个问题,或者至少解决这个问题来安装 gcc 和 gfortran?

编辑:

这是输出apt-cache policy libc6 libc6-dev

libc6:
  Installed: 2.19-10ubuntu2.1
  Candidate: 2.19-10ubuntu2.1
  Version table:
 *** 2.19-10ubuntu2.1 0
        100 /var/lib/dpkg/status
     2.19-10ubuntu2 0
        500 http://old-releases.ubuntu.com/ubuntu/ utopic/main amd64 Packages

libc6-dev:
  Installed: (none)
  Candidate: 2.19-10ubuntu2
  Version table:
     2.19-10ubuntu2 0
        500 http://old-releases.ubuntu.com/ubuntu/ utopic/main amd64 Packages
Run Code Online (Sandbox Code Playgroud)

的输出cat /etc/os-release是:

NAME="Ubuntu" VERSION="14.10 (Utopic Unicorn)" ID=ubuntu
ID_LIKE=debian PRETTY_NAME="Ubuntu 14.10" VERSION_ID="14.10"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
Run Code Online (Sandbox Code Playgroud)

grep utopic -ir /etc/apt/sources.list /etc/apt/sources.list.d/*.list给出:

/etc/apt/sources.list:deb http://old-releases.ubuntu.com/ubuntu utopic
main universe restricted multiverse /etc/apt/sources.list:deb-src
http://old-releases.ubuntu.com/ubuntu utopic main universe restricted
multiverse #Added by software-properties /etc/apt/sources.list:# deb
http://old-releases.ubuntu.com/ubuntu/ utopic-security main universe
restricted multiverse /etc/apt/sources.list:deb-src
http://old-releases.ubuntu.com/ubuntu/ utopic-security main universe
restricted multiverse #Added by software-properties
/etc/apt/sources.list:# deb http://old-releases.ubuntu.com/ubuntu
utopic-updates main universe restricted multiverse
/etc/apt/sources.list:deb-src http://old-releases.ubuntu.com/ubuntu
utopic-updates main universe restricted multiverse #Added by
software-properties
/etc/apt/sources.list.d/george-edison55-ubuntu-cmake-3_x-utopic.list:deb
http://ppa.launchpad.net/george-edison55/cmake-3.x/ubuntu utopic main
/etc/apt/sources.list.d/george-edison55-ubuntu-cmake-3_x-utopic.list:#
deb-src http://ppa.launchpad.net/george-edison55/cmake-3.x/ubuntu
utopic main
/etc/apt/sources.list.d/graphics-drivers-ubuntu-ppa-utopic.list:deb
http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu utopic main
/etc/apt/sources.list.d/graphics-drivers-ubuntu-ppa-utopic.list:#
deb-src http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu utopic
main
/etc/apt/sources.list.d/gwendal-lebihan-dev-cinnamon-nightly-utopic.list:deb
http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-nightly/ubuntu
utopic main
/etc/apt/sources.list.d/gwendal-lebihan-dev-cinnamon-nightly-utopic.list:#
deb-src
http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-nightly/ubuntu
utopic main
/etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-utopic.list:deb
http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu utopic main
/etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-utopic.list:#
deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu utopic
main
/etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-utopic.list:#
deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu utopic
main
Run Code Online (Sandbox Code Playgroud)

当我尝试时sudo apt-get install --reinstall libc6,我收到以下消息:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Reinstallation of libc6 is not possible, it cannot be downloaded.
The following packages will be REMOVED:
  nvidia-331-updates
0 upgraded, 0 newly installed, 1 to remove and 2 not upgraded.
1 not fully installed or removed.
After this operation, 184 MB disk space will be freed.
Do you want to continue? [Y/n]
Run Code Online (Sandbox Code Playgroud)

这是输出sudo apt-get install libc6=2.19-10ubuntu2

The following packages will be REMOVED:
  lib32gcc1 lib32z1 libc6:i386 libc6-i386 libgcc1:i386 nvidia-331-updates
  retty:i386
The following packages will be DOWNGRADED:
  libc6
0 upgraded, 0 newly installed, 1 downgraded, 7 to remove and 2 not upgraded.
1 not fully installed or removed.
Need to get 4,765 kB of archives.
After this operation, 204 MB disk space will be freed.
Do you want to continue? [Y/n] Y
Get:1 http://old-releases.ubuntu.com/ubuntu/ utopic/main libc6 amd64 2.19-10ubuntu2 [4,765 kB]
Fetched 4,765 kB in 0s (5,794 kB/s)
Can't exec "locale": No such file or directory at /usr/share/perl5/Debconf/Encoding.pm line 16.
Use of uninitialized value $Debconf::Encoding::charmap in scalar chomp at /usr/share/perl5/Debconf/Encoding.pm line 17.
Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: error: 1 expected program not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)
Run Code Online (Sandbox Code Playgroud)

以下是之后出现的错误消息sudo apt-get update

W: Failed to fetch http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-nightly/ubuntu/dists/utopic/InRelease  Unable to find expected entry 'main/binary-foreign-architecture/Packages' in Release file (Wrong sources.list entry or malformed file)

W: Failed to fetch http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/dists/utopic/InRelease  Unable to find expected entry 'main/binary-foreign-architecture/Packages' in Release file (Wrong sources.list entry or malformed file)

W: Failed to fetch http://ppa.launchpad.net/george-edison55/cmake-3.x/ubuntu/dists/utopic/Release  Unable to find expected entry 'main/binary-foreign-architecture/Packages' in Release file (Wrong sources.list entry or malformed file)

W: Failed to fetch http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu/dists/utopic/main/binary-amd64/Packages  404  Not Found

W: Failed to fetch http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu/dists/utopic/main/binary-foreign-architecture/Packages  404  Not Found

W: Failed to fetch http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu/dists/utopic/main/binary-i386/Packages  404  Not Found

W: Failed to fetch http://old-releases.ubuntu.com/ubuntu/dists/utopic/Release  Unable to find expected entry 'main/binary-foreign-architecture/Packages' in Release file (Wrong sources.list entry or malformed file)
Run Code Online (Sandbox Code Playgroud)

这是输出ls -la /lib/x86_64-linux-gnu/libc*

-rwxr-xr-x 1 root root 1844160 Dec  1  2014 /lib/x86_64-linux-gnu/libc-2.19.so
lrwxrwxrwx 1 root root      14 Feb 21  2014 /lib/x86_64-linux-gnu/libcap.so.2 -> libcap.so.2.24
-rw-r--r-- 1 root root   18952 Feb 21  2014 /lib/x86_64-linux-gnu/libcap.so.2.24
lrwxrwxrwx 1 root root      21 Dec 15  2014 /lib/x86_64-linux-gnu/libcgmanager.so.0 -> libcgmanager.so.0.0.0
-rw-r--r-- 1 root root  133056 Dec 15  2014 /lib/x86_64-linux-gnu/libcgmanager.so.0.0.0
-rw-r--r-- 1 root root  194968 Dec  1  2014 /lib/x86_64-linux-gnu/libcidn-2.19.so
lrwxrwxrwx 1 root root      15 Dec  1  2014 /lib/x86_64-linux-gnu/libcidn.so.1 -> libcidn-2.19.so
lrwxrwxrwx 1 root root      17 Jul  7  2014 /lib/x86_64-linux-gnu/libcom_err.so.2 -> libcom_err.so.2.1
-rw-r--r-- 1 root root   14592 Jul  7  2014 /lib/x86_64-linux-gnu/libcom_err.so.2.1
-rw-r--r-- 1 root root   43368 Dec  1  2014 /lib/x86_64-linux-gnu/libcrypt-2.19.so
-rw-r--r-- 1 root root 1961344 Jan  9  2015 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
lrwxrwxrwx 1 root root      16 Dec  1  2014 /lib/x86_64-linux-gnu/libcrypt.so.1 -> libcrypt-2.19.so
lrwxrwxrwx 1 root root      12 Dec  1  2014 /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.19.so
Run Code Online (Sandbox Code Playgroud)

Oli*_*jon 3

好吧,让我们从头开始一切:

您可以按照用户@doug的建议来解决您的问题:

wget https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/6608877/+files/libc6-dev_2.19-10ubuntu2.1_amd64.deb
sudo dpkg -i libc6-dev_2.19-10ubuntu2.1_amd64.deb
Run Code Online (Sandbox Code Playgroud)

如果这有效,您可以赞成这个答案,但是,不要接受这个答案。等到原作者发布答案,然后接受。

但是,请记住,使用这种方法只是绕过了真正的问题。您无法更新存储库、添加 PPA,或者在最坏的情况下,如果您的包缓存发生问题,则无法安装其他程序。因此,如果没有其他帮助,我建议您使用此方法。

如果您确实想彻底解决问题,那么:

第 1 步: 开始清理混乱sources.list

运行以下命令来删除除官方 Ubuntu 存储库之外的 PPA,因为它们已过时:

sudo rm /etc/apt/sources.list.d/*.list
Run Code Online (Sandbox Code Playgroud)

然后备份、打开并编辑sources.list

sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
sudo gedit /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

从那里删除所有内容并添加以下行:

deb http://old-releases.ubuntu.com/ubuntu utopic main universe restricted multiverse
deb http://old-releases.ubuntu.com/ubuntu/ utopic-security main universe restricted multiverse
deb http://old-releases.ubuntu.com/ubuntu utopic-updates main universe restricted multiverse
Run Code Online (Sandbox Code Playgroud)

保存并退出。

第 2 步: 更新存储库:

运行以下命令:

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

确保该命令完美运行。如果发生 GPG 错误,请添加密钥并再次更新您的存储库:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192
Run Code Online (Sandbox Code Playgroud)

第 3 步: 修复ldconfig

运行以下命令:

wget http://launchpadlibrarian.net/172657659/libc-bin_2.19-0ubuntu6_amd64.deb
dpkg -x libc-bin*.deb libdir/
sudo cp libdir/sbin/ldconfig /sbin/
sudo dpkg -i libc-bin*.deb
sudo apt-get install -f
Run Code Online (Sandbox Code Playgroud)

部分取自这里

第 4 步: 安装:

运行以下命令:

sudo apt-get install libc6=2.19-10ubuntu2
sudo apt-get install libc6-dev
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助...