linux强制安装deb,ubuntu强行修改deb安装包依赖

在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 -x krb5-config_2.3kord_all.deb krb-tmp

qujun@qujun:/tmp$ cd krb-tmp/

qujun@qujun:/tmp/krb-tmp$ ls

usr

qujun@qujun:/tmp/krb-tmp$ cd ..

qujun@qujun:/tmp$ dpkg-deb --control krb5-config_2.3kord_all.deb krb-tmp/DEBIAN

qujun@qujun:/tmp$ vim krb-tmp/DEBIAN/control

qujun@qujun:/tmp$ dpkg -b krb-tmp llala.deb

dpkg-deb: building package 'krb5-config' in 'llala.deb'.

修改control文件的的Depends行,重新打包后安装就可以了。

2、deb安装后修改:

当然解包打包虽然只有四步,但还是稍显麻烦,有时候顺手就dpkg给装上了,这时候也不用卸载,直接修改status文件也可。$ sudo vim /var/lib/dpkg/status

Package: krb5-user

Status: install ok installed

Priority: optional

Section: net

Installed-Size: 389

Maintainer: Ubuntu Developers 

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命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值