如果在 Ubuntu 操作系统下出现损坏的程序包,通常有三种办法可以修复它们,分别是:使用 apt 或 apt-get、使用 dpkg 及解除 dpkg 锁,下面为你一一介绍。

背景

apt 是 Ubuntu 系统最强大好用的包管理器之一,但这并不意味着它就永远不会出错。当 ubuntu 在安装软件包出现问题时,apt 会有内置的功能来提示用户以辅助修正错误。这些提示和技巧信息可以帮助我们修复绝大多数普遍问题,但请记住:在调试、修复损坏的程序包问题时,不同用户环境所遇到的各种复杂情况也是不尽相同的。

第一种办法、使用 apt 或 apt-get

apt 命令有几个特殊参数,可以用来修复在安装过程中被破坏或缺失依赖的项或软件包。常见的情况是:当使用 .deb 安装某个软件时,发现它存在你不知道的依赖关系,而这些依赖项又不会被自行引入,dpkg 就会提示缺少依赖。此时就可以用到以下步骤:

1、在系统终端中执行以下更新命令,确保没有所需软件包的更新版本:

sudo apt update --fix-missing

2、执行以下命令以强制 apt 查找并更正缺少的依赖项或损坏的包:

sudo apt install -f

第二种办法、使用 dpkg

程序包安装过程中,另一个容易出错的地方就是配置过程,而在幕后处理配置过程的是 dpkg 而非 apt。所以在当一个程序包在配置期间出现故障时,dpkg 是修复它的最佳工具。

1、在系统终端中执行以下命令以强制 dpkg 重新配置软件包的损坏部分:

sudo dpkg --configure -a

2、如果不能解决问题,可以通过如下命令列出 dpkg 标记为需要重新安装的所有软件包:

sudo dpkg -l | grep ^..r

3、使用以下命令强制移除已损坏的程序包:

sudo dpkg --remove --force-remove--reinstreq

4、在 dpkg 的工作完成后,尝试使用 apt 进行清理:

sudo apt clean

sudo apt update

第三种办法、解除 dpkg 锁

还有一种不太常见的情况——dpkg 锁。当尝试使用 apt 或 dpkg 时,都会遇到错误提示,提示一个不存在的程序已经存在,这种情况通常是在程序包的安装过程发生错误后,一些被锁定的文件无法自动删除,在文件系统中扔被保留下来造成的。

如果遇到这种情况,就需要使用以下命令手动解除 dpkg 锁:

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

还需要删除对缓存文件的锁定:

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

结语

以上三种就是修复 Ubuntu 损坏程序包的办法,不管采用哪种,最后的结果都是一样的。

相关主题

linux文件损坏怎么修复工具,在Ubuntu操作系统下修复损坏程序包的三种办法相关推荐

  1. 解决outlook中.pst损坏(使用收件箱修复工具scanpst.exe诊断和修复文件中的错误)

    错误描述:请先退出OUTLOOK和已启动的邮件程序,然后使用收件箱修复工具"scanpst.exe"诊断和修复文件中的错误有关收件箱修复工具的详细信息,请参阅"帮助&qu ...

  2. linux下批量替换文件内容的三种办法

    http://www.51testing.com/html/93/316693-815340.html 程序开发中,可能你会经常遇到批量替换文件内容的情况,如果你使用的是linux,那么恭喜你,你可以 ...

  3. win7 微软语音服务器,win7 TTS修复工具(微软tts语音引擎修复)

    [实例简介] 当系统没有语音功能,无法运行时,使用win7 TTS修复工具(微软tts语音引擎修复) 现有的语音不好时,可心安装第三方语音,如:捷通华声 XiaoKun 女声 中英文.女音库Hui.L ...

  4. linux下打包deb文件,制作deb包的三种方法

    制作deb包的三种方法 发布时间:2008-06-10 16:05:39来源:红联作者:Mhynan 我所知道的制作deb包有三种方法,一种是将现有的文件打包,安装该包就像将打包的文件释放到某个目录: ...

  5. 在Ubuntu系统下编写简单程序

    在Ubuntu系统下编写简单程序 一.使用gcc命令行方式编译程序 1.编写C语言程序 编写主程序 vi main.c 编写main1.c #include<stdio.h> #inclu ...

  6. git工具 将源码clone到本地指定目录的三种方式

    git工具 将源码clone到本地指定目录的三种方式 CreationTime--2018年7月27日15点34分 Author:Marydon 1.情景展示 运行git-bash.exe,输入命令: ...

  7. 如何实现3台计算机网络传递文件,两台电脑如何实现对拷,三种办法轻松搞定!...

    原标题:两台电脑如何实现对拷,三种办法轻松搞定! 有时候,我们换电脑了,可能需要在两台电脑之间传送大容量的文件,但是两台电脑之间如何互相传送或者拷贝文件,除了U盘.硬盘.QQ或微信能解决问题,你还知道 ...

  8. linux 启动 grub 修复工具,当Ubuntu无法启动时,如何修复GRUB2?

    许多其他Linux发行版使用GRUB2引导加载程序.如果GRUB2中断,例如,如果在安装Ubuntu之后安装Windows或覆盖您的MBR,则无法启动到Ubuntu. 您可以从Ubuntu Live ...

  9. linux的双系统修复工具下载,EasyBCD(系统引导修复工具)

    EasyBCD是一款功能强大的Windows启动菜单修复工具,但它D除了修复启动菜单,还可以让电脑从可启动文件启动,也就是说,没有光驱也可以安装系统. 相关软件软件大小版本说明下载地址 EasyBCD ...

最新文章

  1. journalctl -xefu kubelet查看kubelet日志
  2. 反射获取有参数的成员方法并运行
  3. 让Spring架构减化事务配置(转)
  4. HDU5248:序列变换(二分)
  5. 你是不是在混日子,看着一点就知道了
  6. 不作死就不会死,盘点那些死于自己发明的发明家
  7. P2408 不同子串个数
  8. java 枚举(enum) 全面解读
  9. web报表工具FineReport常用函数的用法总结(报表函数)
  10. session过期问题
  11. 自动驾驶 8-1: 平方误差准则和最小二乘法 (上) Squared Error Criterion and the Method of Least Squares (Part 1)
  12. 阿里大淘系模型治理阶段性分享
  13. html中设计对联,js实现很实用的对联广告代码 可自适应高度
  14. java源码医药医疗器械ERP系统医药进销存医药erp微信小程序商城
  15. 数字信号处理——时域采样和频域采样(matlab)
  16. 面对传销,该怎么处理
  17. grep, sed, awk 的用法
  18. mysql笔记--03DML
  19. Unity资源管理(四)-AssetBundle使用模式
  20. phpstorm 配置 xdebug断点调试

热门文章

  1. vc使用默认的浏览器打开网页
  2. linux纯黑窗口,Win10 20H1命令提示符窗口引入全黑设计
  3. 锐达机械对H型钢抛丸机的维修调整工作
  4. python分块处理功能_Python自然语言处理学习笔记之信息提取步骤分块(chunking)...
  5. 申请GitHub学生包,0成本搭建WordPress教程
  6. ORA-06401: NETCMN: invalid driver designator 的解决办法
  7. Web3:价值投资的范式转移
  8. 详细了解 Android 巧用 flexboxLayout 布局
  9. StreamNative 联合创始人翟佳出席QCon北京峰会并发表演讲
  10. 大数据的应用场景都有哪些(农业篇)