How to Fix Broken Packages in Ubuntu
How to Fix Broken Packages in Ubuntu

Apt, Ubuntu’s package manager, is among the most powerful and intuitive, but that doesn’t mean that things can’t go wrong. Occasionally, a package install goes wrong on Ubuntu, and you’re left to pick up the pieces. It’s a good thing Ubuntu’s package utilities, including Apt itself, have built-in functionality to help remedy the situation and get things back to normal.
These tips and tricks should help you get unstuck in most instances. They’re all fairly universal, but every situation is different, so keep that in mind when trying to debug your own situation.
Related: How to Fix Ubuntu Update Errors
With Apt/Apt-Get
Apt has a couple of flags that you can use in order to fix missing dependencies or packages that broke for one reason or another during install. A common use here would be installing a third-party .deb and finding that it had dependencies you didn’t know about. Those dependencies probably won’t be pulled in on their own, and dpkg will complain that the package is missing in them. In any case, you can try these steps.

First, run an update to make sure that there aren’t newer versions of the required packages.
sudo apt update --fix-missing
Next, you can try forcing Apt to look for and correct any missing dependencies or broken packages. This will actually install any missing packages and repair existing installs.
sudo apt install -f
With DPKG
Another place where error can pop up in package installations is the configuration process. Behind the scenes, dpkg is taking care of this part, not Apt, so it would stand to reason that when a package fails during configuration, dpkg is the tool to turn to in order to fix it.

Start by trying to force dpkg to reconfigure any broken or partially configured packages.
sudo dpkg --configure -a
If that doesn’t solve the problem, you can take a more forceful approach. Start by listing any packages that dpkg marked as requiring a reinstall.
sudo dpkg -l | grep ^..r
You should see the problematic package(s) there. As long as there’s nothing that seems not to belong there, you can force-remove the broken packages.
sudo dpkg --remove --force-remove--reinstreq
When dpkg is done, try to clean up with Apt.
sudo apt clean
sudo apt update
With any luck that’ll get you back to where you started. It won’t get you the broken packages that you tried to install, but at least Apt will be functional again.
Related: Ubuntu Software Center Not Working? Here Are the Fixes
Permanent DPKG Lock

There’s a less common issue with ridiculous dpkg locks preventing you from doing anything. Every time you try to use Apt or dpkg, you get an error saying another application already is … when it isn’t. It’s actually easy to delete the lock file preventing you from using Apt and get back to doing what you need to. Sometimes these lock files remain in place after an error occurs in an install, derailing the process and preventing the file from being removed automatically. In this case, you’ll need to do it yourself.
sudo rm /var/lib/apt/lists/lock
For good measure, delete the lock in cache.
sudo rm /var/cache/apt/archives/lock
Conclusion
Hopefully, one of these fixes worked for you, and you’re back working on Ubuntu normally. Remember that the best way to handle a totally out-of-hand situation is to try to return to the way it was before. Don’t try to power through and add more things to solve a breakage by adding more things, unless you know exactly what you’re doing. Chances are you’ll end up with a tangled mess of broken things that’ll be harder to sort out.
How to Fix Broken Packages in Ubuntu的更多相关文章
- How to fix broken packages?(转)
		Try Code: sudo apt-get update to update your package list.Then Code: sudo apt-get autoclean to clean ... 
- 解决 E: Unable to correct problems, you have held broken packages. 问题
		参考: Unable to correct problems, you have held broken packages 环境 Ubuntu 14.04, 64bit 问题 在安装gcc-4.9的时 ... 
- ubuntu 'Unable to correct problems, you have held broken packages'  错误
		在用apt 安装软件时,有时会用国内的源以加快下载速度. 但是在使用ubuntu 14.04的过程中,这一过程可能会导致错误“Unable to correct problems, you have ... 
- Fix catalyst driver in Ubuntu 13.04 / 13.10
		Fix catalyst driver in Ubuntu 13.04 / 13.10(墙外文章备份) 1. Introduction I found lots of people strugglin ... 
- E: Unable to correct problems, you have held broken packages 解决方法
		在Ubuntu中安装软件的时候经常碰到E: Unable to correct problems, you have held broken packages.的错误,顾名思义是因为某些软件包冲突导致 ... 
- E: Unable to correct problems, you have held broken packages
		问题: apt install libmysqlclient-dev Reading package lists... DoneBuilding dependency tree Readi ... 
- ubuntu16 安装openssh-server 一直安装不上Unable to correct problems, you have held broken packages
		zengqi@zengqi:~$ sudo apt-get install openssh-server Reading package lists... DoneBuilding dependenc ... 
- 如何解决Ubuntu下的“E: Unable to correct problems, you have held broken packages.”的问题.  aptitude
		今天安装build-essential时出现了以下问题,这属于包的依赖. 解决方案: 1,sudo apt-get install aptitude:完成aptitude命令安装 2,sudo apt ... 
- Unable to correct problems, you have held broken packages
		Use aptitude instead of apt-get. It is more intelligent. It not only will handle downgrading conflic ... 
随机推荐
- CodeForces-166B-Polygons
			B. Polygons time limit per test:2 seconds memory limit per test:256 megabytes input:standard input o ... 
- hugepage设置
			1.设置memlock 编辑/etc/security/limits.conf 增加: * Soft memlock 稍小于RAM值 * hard memlock 稍小于RAM值 Memlock,锁定 ... 
- 关于NumPy的常用函数random.randint
			np.random.randint(low, high=None, size=None, dtype='l') 该函数作用:用于产生离散均匀分布的整数 low:生成元素的最小值 high:生成元素的值 ... 
- PB学习笔记之随笔
			1.根据条件改变字体颜色.if(curdate>=bdate and curdate<edate,rgb(255,0,0),if(sex=1, if(curdate>=mdate, ... 
- 数据库去空格 去table 去回车符号 去重
			1 update bd_prod_cate c set c.cate_name = replace(c.cate_name,chr(9),'')//去掉tab符号的 2 update bd_prod_ ... 
- 关于Mybatis中mapper.xml的传入参数简单技巧
			由于在做项目的时候,我看见同事使用的传入参数类型各式各样,感觉没规律可言,闲暇的时候我就自己搭建了项目做了一些传入参数的测试(当然其实更好的方式是看源码,但是博主能力有限,毕竟入行没多久,看起来很吃力 ... 
- 【转载】常见面试题:C#中String和string的区别分析
			在很多人面试C#开发工程师的时候,会遇到一个面试题,就是C#中String和string有啥区别.其实针对这个问题C#中String和string没有本质上的区别,两者在程序中都可使用,稍微的一个区别 ... 
- JDBCUtils工具类配置文件的读取方式
			//第一种方式 Properties prop= new Properties(); //读取文件 通过类加载读取 InputStream is = JDBCUtils ... 
- 本文可能是国内第一篇介绍C/4HANA Foundation的中文博客
			SAP C/4HANA从去年发布已经过去了一年多的时间,C/4HANA的从业者,对于这五朵云里包含的产品集,想必都有了一些了解. Jerry注意到,SAP C/4HANA Foundation这个概念 ... 
- javascript动态添加html节点
			之前一直没怎么接触需要动态添加和删除html节点的项目,这次项目中用到了,也学习了. 在一个<table id="tab">标签中添加一个<tr id=" ... 
