在ubuntu下安装第三方软件deb包,有时候会遇到一种情况,因为这个软件没有在你版本上适配,或者依赖某些包而我们系统无法安装,但使用dpkg强制安装,也能正常使用。
但这样就会带来一个问题,ubuntu的包管理apt命令无法安装包了,使用apt install时则提示需要apt-get install -f,而执行该命令则会卸载你的包,不卸载的话又无法安装其他包,可以说非常头疼了。
最近遇到这个问题,查了下发现资料不太多,于是总结记录在这里。
Ubuntu的deb包修改依赖安装:
1、deb安装前的修改:
如果编deb包,则会知道deb的依赖信息写在control文件中,于是我们可以解压deb,修改后重新打包。我们以krb5包为例,非常简单。
qujun@qujun:/tmp$dpkg-deb-xkrb5-config_2.3kord_all.debkrb-tmp qujun@qujun:/tmp$cdkrb-tmp/ qujun@qujun:/tmp/krb-tmp$ls usr qujun@qujun:/tmp/krb-tmp$cd.. qujun@qujun:/tmp$dpkg-deb--controlkrb5-config_2.3kord_all.debkrb-tmp/DEBIAN qujun@qujun:/tmp$vimkrb-tmp/DEBIAN/control qujun@qujun:/tmp$dpkg-bkrb-tmpllala.deb dpkg-deb:buildingpackage'krb5-config'in'llala.deb'.
修改control文件的的Depends行,重新打包后安装就可以了。
2、deb安装后修改:
当然解包打包虽然只有四步,但还是稍显麻烦,有时候顺手就dpkg给装上了,这时候也不用卸载,直接修改status文件也可。
$sudovim/var/lib/dpkg/status Package:krb5-user Status:installokinstalled Priority:optional Section:net Installed-Size:389 Maintainer:UbuntuDevelopers<ubuntu-devel-discuss@lists.ubuntu.com> Architecture:amd64 Source:krb5 Version:1.12.1+dfsg-10kord Depends:libc6(>=2.14),libcomerr2(>=1.01),libk5crypto3(>=1.9+dfsg~beta1),libkadm5clnt-mit9(>=1.12~alpha1+dfsg),libkadm5srv-mit9(>=1.12~alpha1+dfsg),libkdb5-7,libkrb5-3(>=1.12.1+dfsg-10kord),libkrb5support0(>=1.12~alpha1+dfsg),libss2(>=1.01),krb5-config
修改Depends行,保存退出就可以正常使用apt了。
当然这两个都只能算取巧方法,在第三方软件正常运行的情况下,来继续使用apt命令。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。