在红帽系列中装包的时候,rpm有两个很好用的参数,rpm --force --nodeps,可以强制安装和跳过依赖,虽然很暴力,但是也多了一个选择。
转到Ubuntu之后,发现apt-get很好用但是依赖确实个很麻烦的事,在升级到Ubuntu 16.10之后,用dpkg装了wps,提示需要libpng12-0.so库,但是系统已经升到libpng16了,降级是不想了,于是我做了个so的软链接,也能正常用。
麻烦的事情来了,这时候apt-get就会开始报错了,一直告诉你软件装的有问题,
“You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
wps-office : Depends: libpng12-0 but it is not installable
Recommends: ttf-mscorefonts-installer but it is not installed
E: Unmet dependencies. Try using -f.”
然后,你也装不了其他包了,总是让你先执行apt-get install -f修复先。
只能网上查下有两种方法:
一:修改status信息
1、dpkg -i --ignore-depends=libpng12-0 wps.deb
2、修改/var/lib/dpkg/status里面的依赖关系,把libpng12-0给删了。
二:修改包
1.Unpack deb: ar x golden-linux.deb (will create i.e. three files: debian-binary control.tar.gz data.tar.gz)
2.Unpack control archive: tar xzf control.tar.gz (will create: postinst postrm preinst prerm md5sums control)
3.Fix dependencies in control (use a text editor)
4.Repack control.tar.gz: tar c {post,pre}{inst,rm} md5sums control | gzip -c > control.tar.gz
5.Repack deb: ar rcs newpackage.deb debian-binary control.tar.gz data.tar.gz (order important! See [Note] )
第二个方法比较坑,喜欢折腾的可以试下,反正我这边ar命令报错了。