apt-get 损坏,无法修复或删除 libapt-pkg4.12

Mär*_*ang 7 64-bit apt kubuntu

我设法打破了我的包管理。如果我尝试升级,我会得到:

$ sudo apt-get dist-upgrade
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:
 libapt-pkg4.12 : Breaks: libapt-pkg4.12:i386 (!= 0.8.16~exp12ubuntu10.3) but 0.8.16~exp12ubuntu10.2 is installed
 libapt-pkg4.12:i386 : Breaks: libapt-pkg4.12 (!= 0.8.16~exp12ubuntu10.2) but 0.8.16~exp12ubuntu10.3 is installed
E: Unmet dependencies. Try using -f.
Run Code Online (Sandbox Code Playgroud)

然后我尝试遵循 apt-get 建议:

$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  libapt-inst1.4:i386 libapt-pkg4.12:i386
0 upgraded, 0 newly installed, 2 to remove and 33 not upgraded.
48 not fully installed or removed.
After this operation, 3 866 kB disk space will be freed.
Do you want to continue [Y/n]? 
E: Internal Error, No file name for libapt-pkg4.12
Run Code Online (Sandbox Code Playgroud)

Kubuntu 12.04 64 位。任何人都可以帮我解决它吗?

gre*_*een 11

跑:

dpkg --configure -a
Run Code Online (Sandbox Code Playgroud)

然后再试一次。

您也可以libapt-pkg这里下载软件包并手动安装:


如果上述命令不起作用:

更新:下面的命令不起作用。直接在http://security.ubuntu.com/ubuntu/pool/main/a/apt/下载适当的版本。

使用以下命令下载软件包:

wget http://security.ubuntu.com/ubuntu/pool/main/a/apt/libapt-pkg4.12_0.9.7.1ubuntu2_amd64.deb
Run Code Online (Sandbox Code Playgroud)

现在删除当前安装的包:

sudo dpkg --force-depends -r libapt-pkg4.12
sudo dpkg --force-depends -r libapt-pkg4.12:i386
Run Code Online (Sandbox Code Playgroud)

然后,安装下载的软件包:

sudo dpkg -i libapt-pkg4.12_0.9.7.1ubuntu2_amd64.deb
Run Code Online (Sandbox Code Playgroud)

再次运行以下命令并检查:

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


小智 5

我是这样做的:

首先,我下载了这 2 个 deb 文件:

apt_0.9.7.7ubuntu3_i386.deb
libapt-pkg4.12_0.9.7.7ubuntu3_i386.deb
Run Code Online (Sandbox Code Playgroud)

其次,我运行这个命令:

sudo dpkg --force-depends -r libapt-pkg4.12
Run Code Online (Sandbox Code Playgroud)

然后我使用以下命令安装 2 个 deb 文件:

sudo dpkg -i apt_0.9.7.7ubuntu3_i386.deb libapt-pkg4.12_0.9.7.7ubuntu3_i386.deb
Run Code Online (Sandbox Code Playgroud)

它有效......