【51CTO.com快译】Apt和DNF等Linux软件包管理器功能异常强大、界面异常直观,但这并不意味着就不会出岔子。有时软件包安装会出问题,您得收拾残局。软件包管理器能够修复损坏的软件包并跳过损坏的更新,使系统重新运行并避免将来遇到麻烦。本文介绍如何在Linux中修复损坏的软件包。

船上粉笔

这些提示和技巧可在大多数情况下帮助您解决问题。它们都相当普遍,但是每种情况都不尽相同,因此试着自行解决问题时牢记这一点。

修复Ubuntu中损坏的软件包

Apt有几个标志(flag),可用于修复安装过程中因某个原因而损坏的缺失的依赖项或软件包。一个常见的情况是安装第三方.deb,发现它有您不了解的依赖项。这些依赖项可能不会自行获取,dpkg会抱怨缺少软件包。不管怎样,您可以尝试下列步骤。

图1

首先,运行更新以确保没有所需软件包的较新版本。

  1. sudo apt update --fix-missing

下一步,您可以试着强制Apt查找并更正所有缺失的依赖项或损坏的软件包。实际上,这将安装所有缺失的软件包,并修复现有的安装。

  1. sudo apt install –f

软件包安装中可能出错误的另一个地方是配置过程。在后台负责这部分的是dpkg,而不是Apt,因此有理由认为:软件包在配置期间失灵时,dpkg是用来修复它的工具。

图2

先尝试强制dpkg重新配置所有损坏的或部分配置的软件包。

  1. sudo dpkg --configure -a

如果这解决不了问题,可以采取更强制的方法。先列出dpkg标记为要重新安装的所有软件包。

  1. sudo dpkg -l | grep ^..r

您应该在这里看到有问题的软件包。只要没有似乎不属于这里的任何软件包,您都可以强行删除损坏的软件包。

  1. sudo dpkg --remove --force-remove --reinstreq

dpkg完成后,试着用Apt清理一下。

  1. sudo apt clean
  2. sudo apt update

运气好的话,它们会让您回到开始的地方。它不会给您试图安装的损坏软件包,但至少Apt可以再次发挥作用。

永久DPKG锁

有一个不太常见的问题:可笑的dpkg锁阻止您执行任何操作。每当您试着使用Apt或dpkg,都会出现错误,提示另一个应用程序已经在使用Apt或dpkg,实际上并非如此。

实际上,很容易删除阻止您使用Apt、回去执行要执行的操作的锁定文件。有时,安装出现错误后,这些锁定文件仍会在那里,阻止文件被自动删除。这种情况下,您需要自行操作。

  1. sudo rm /var/lib/apt/lists/lock

另外,删除缓存中的锁。

  1. sudo rm /var/cache/apt/archives/lock

修复Fedora/CentOS/RHEL中损坏的软件包

修复Fedora/CentOS/RHEL中损坏的软件包不大常见,因为yum和dnf在确保软件包正确安装方面做得非常好。然而有时软件包使用还是会出问题。在基于rpm的系统上执行此操作的命令是:

  1. sudo rpm –Va

图3

-V选项用于验证,这意味着它将检查安装文件方面的信息,并与rpm数据库中存储的信息进行比较。这一点帮助不大,因为它通常会给出一长串文件,但如果您遇到某个应用程序的问题,至少有地方可以入手。您可以对该列表中看到的任何可能带来麻烦的软件包运行dnf重新安装。

  1. sudo dnf --refresh reinstall PACKAGE_NAME

这将所有元数据设为到期,以便它可搜索您启用的每个存储库,查找该软件包的新版本。如果您发现该软件包有坏的依赖项,DNF可能会告诉您使用--skip-broken标志。这还可能意味着您没有启用特定的存储库来提取依赖项,因此您可能得搜寻一番。

结束语

但愿这些修复方法管用,那样您可以正常使用Linux系统了。请记住,要处理完全失控的情况,最佳方法是试着恢复到以前的状态。除非您知道自己到底在干什么,否则不要忙中添乱。

原文标题:How to Fix Broken Packages in Linux,作者:J

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

deepin安装软件dpkg_如何修复Linux中损坏的软件包?相关推荐

  1. delphi 到出execl2010 文件损坏_如何修复Linux中损坏的软件包?

    [51CTO.com快译]Apt和DNF等Linux软件包管理器功能异常强大.界面异常直观,但这并不意味着就不会出岔子.有时软件包安装会出问题,您得收拾残局.软件包管理器能够修复损坏的软件包并跳过损坏 ...

  2. debian linux如何安装软件,怎样在Debian Linux中安装软件?

    Debian Linux附带了超过 29000 个软件包,这些预先编译好的软件被包裹成一种良好的格式以便于在您的机器上进行安装.如果您使用的是Debian的桌面版本,则可以使用Synaptic通过点击 ...

  3. linux异常断电usb驱动丢失,如何修复Linux中损坏的USB驱动器 | MOS86

    每个人都有一个闪存驱动器.他们但是,有时闪存驱动器可能会被破坏或只是平稳退出工作.如果你在这篇文章中我们 Note:本文中概述的技巧是 使用fsck A从USB驱动器中删除坏块通过简单的方法修复闪存驱 ...

  4. linux中什么是软件包组,Linux软件包组的选择

    当分区被选定并按配置格式化后,你便可以选择要安装的软件包了. 除非你选择的是定制安装,安装程序将会自动为你选择多数软件包. 例如,如果你要执行个人桌面安装,你会看到一个和以下类似的屏幕: 图 3-25 ...

  5. DEEPIN 安装软件的方法

    DEEPIN 安装软件的方法 通过深度商店安装 打开深度商城,跟Windows里的软件管理程序一样,比如腾讯的软件管理.直接下载自动安装 通过二进制的安装包安装 下载·二进制安装包扩展名大多是.run ...

  6. linux 卸载apt包,apt - 如何删除Ubuntu中损坏的软件包 - Ubuntu问答

    问题描述 我无法删除破损的包裹.使用以下命令:sudo apt-get -f install,但得到以下响应: Preparing to unpack .../nodejs_0.10.28-1chl1 ...

  7. linux安装软件不同用户名密码,Linux的安装和基本命令

    linux: 学习目的:为了熟练掌握linux下的操作. linux诞生: 1991 年4 月 林纳斯·托瓦兹,在学习minix系统的时候发现这个系统的不足,然后开始编写一个新的免费的操作系统,他在开 ...

  8. linux恢复fat文件系统,使用‘fsck’修复Linux中文件系统错误的方法

    前言 文件系统负责组织数据的存储和恢复方式. 无论如何,随着时间的推移,文件系统可能会被破坏,并且可能无法访问它的某些部分. 如果您的文件系统出现这种不一致,建议验证其完整性. 这可以通过名为fsck ...

  9. linux vnc的小黑点和鼠标不同步_vnc安装步骤,vnc在Linux中的7个安装步骤

    首先要知道的是,VNC是什么.VNC(Virtual Network Computing ),一种使用RFB协议的显示屏画面分享及远程操作软件.它与操作系统无关, 我个人使用的[IIS7服务器管理工具 ...

最新文章

  1. 敏捷测试2015新看点
  2. 利用构造函数进行简化类初始化
  3. Spring Roo 简介
  4. 希尔排序是一种稳定的排序算法_十大经典排序算法——希尔排序
  5. java将Object对象转换成实体类对象
  6. 如何在几天时间内快速理解一个陌生行业?
  7. JPA(hibernate)一对多根据多的一方某属性进行过滤查询
  8. 微信小程序优选驾考驾照考试预约+后台管理系统SSM-JAVA【数据库设计、论文、源码、开题报告】
  9. HDU - 6769
  10. 从四大造字法看文字所承载的文化_举例说明汉语汉字所承载的文化信息?
  11. 《C程序设计语言》(《The C Programming Language》)第二版第六章练习题
  12. Vue的v-html样式无效问题
  13. 信创产业国产CPU产业研究报告
  14. linux命令——查找文件大小大于1M的文件
  15. ims对接vos过程中出现的无声单通解决办法
  16. pygame中人物上下左右移动及翻转,背景透明化
  17. cat /proc/cpuinfo (查看CPU信息)
  18. element ui 饿了么UI中el-dialog样式修改问题
  19. 霍炬:再谈百度:KPI、无人机,以及一个必须给父母看的案例
  20. 自动发送微信消息或QQ消息的自用代码

热门文章

  1. html5之Canvas坐标变换应用-时钟实例
  2. Java8之list.stream的常见使用例子
  3. 利用级数求和推导泊松分布的期望方差
  4. 广域网协议之PPP,HDLC
  5. 查看不同用户使用GPU的情况
  6. String StringBuilder StringBuffer
  7. 序列化和反序列化(json和pickle)day18
  8. Linux sys_call_table变动检测
  9. win8系统intellij输入中文问题
  10. 时钟分频中的计数值问题