在红帽系列中装包的时候,rpm有两个很好用的参数,rpm --force --nodeps,可以强制安装和跳过依赖,虽然很暴力,但是也多了一个选择。。。


转到Ubuntu之后,发现apt-get很好用但是依赖确实个很麻烦的事,在升级到1610之后,用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命令报错了。。