![包装已损坏,但无法清除或重新安装!](https://linux22.com/image/1055936/%E5%8C%85%E8%A3%85%E5%B7%B2%E6%8D%9F%E5%9D%8F%EF%BC%8C%E4%BD%86%E6%97%A0%E6%B3%95%E6%B8%85%E9%99%A4%E6%88%96%E9%87%8D%E6%96%B0%E5%AE%89%E8%A3%85%EF%BC%81.png)
我的 mdadm 包未完全安装,当我运行时sudo apt-get upgrade
,我看到以下错误消息:
Setting up mdadm (3.3-2ubuntu7.1) ...
dpkg: error processing package mdadm (--configure):
subprocess installed post-installation script returned error exit status 20
Errors were encountered while processing:
mdadm
E: Sub-process /usr/bin/dpkg returned an error code (1)
我尝试使用 清除 mdadm 以便dpkg --purge mdadm
稍后重新安装它,但系统告诉我:ubuntu-server is dependent on mdadm
。
我已经尝试了建议的解决方案http://www.iasptk.com/ubuntu-fix-broken-package-best-solution/
sudo apt-get update –fix-missing
sudo dpkg –configure -a
sudo apt-get -f install
我还尝试手动编辑 dpkg-status-file 并删除有关 mdadm 的信息块,但错误仍然存在。
非常感谢您的帮助...
我在 x86_64 上运行 Ubuntu 16.04 LTS 和 Linux 4.4.0-24-generic。
答案1
方案 1:尝试使用以下命令重新安装 mdadmapt-get:
sudo apt-get --reinstall install mdadm
方案 2: 如果apt-get不起作用,安装突触与软件中心。
转到搜索部分并输入 mdadm,右键单击并标记为重新安装(或尝试所有其他选项)并应用执行。
方案 3:如果到目前为止还没有成功,请尝试直接从 .deb 文件重新安装 mdadm:
sudo dpkg -i /var/cache/apt/archives/mdadm_version.deb
使用制表符补全,因为 .deb 文件还附加了版本号!
没有这样的包/var/cache/apt/archives
,你可能需要下载手动操作。注意选择正确的 Ubuntu 版本和正确的软件包版本!
sudo dpkg -i path-to-downloaded-package/package-name-version.deb
如果 dpkg 也不起作用,请安装GDebiPackageInstaller使用软件中心并使用该程序重新安装下载的.deb 文件。
最后,清理并更新你的系统:
sudo apt-get autoremove
sudo apt-get autoclean
sudo deborphan | xargs sudo apt-get -y remove --purge
dpkg -l | awk '/^rc/ {print $2}' | xargs sudo dpkg --purge
sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade
答案2
前面答案中的“清理”命令包含一些潜在危险的内容,特别是在xargs dpkg --purge
没有检查要删除的包的情况下进行管道传输。
无论如何,整个“清理”都无济于事。查看/var/lib/dpkg/info/mdadm.postinst
。恐怕您必须检查脚本,可能手动运行其中的某些部分,以查看它失败的原因。通常,这些脚本只是停止服务或删除一些文件,您可以手动执行这些操作。如果您认为所有脚本操作都可以避免,则可以删除脚本并尝试重新安装包。