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)
好吧,让我们从头开始一切:
您可以按照用户@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)
希望这可以帮助...
| 归档时间: |
|
| 查看次数: |
20061 次 |
| 最近记录: |