接下来说说暴力的解决方案之所以说暴力,是因为刚才的方式,已经是在我的认知里,工具和系统提供的自动化程序能做到的极限 。
如果还是出现了依赖无法满足的问题,比如什么即将安装 xxxx 但是现在的系统内的版本高于 xxxx 。
一般这种情况,系统已经不建议你再搞了,你如果非要硬来,很可能会破坏现有的程序依赖结构 。
- 运气好或者你手高,硬装上一点问题没有 。
- 影响小一点,你装了这个软件,另一个软件不能用或者会崩 。
- 影响大一点,有些系统命令不好使了,界面卡死了,资源管理器崩了等等 。
- 影响更大一点,装完用着啥毛病没有,重启后卡在加载过程,再也进不了系统 。
“以上这些情况,我全部都遇到过!”所以下面的搞法,你就当学习知识或看我装逼都行,自己实操,还是要谨慎地折腾 。至少,别在客户机器和生产环境的服务器上硬来 。
暴力的解决方案有:
- --ignore-depends,忽略依赖直接装 。
- 解压安装包,删掉依赖字段重新打包 。
- 修改系统中记录的 status 文件 。
- 无视安装失败,直接运行 。
- 直接拿到根目录,就地解压 。
- 改掉 dpkg 源码,直接不检测依赖 。一个一个说:
这是所有暴力方案里技术门槛最低的一个,你可以通过 dpkg --help 查看 --ignore-depends 选项:
选项: ......其它选项 --ignore-depends=<软件包>,... 忽略关于 <软件包> 的所有依赖关系 。--force-...这个选项可以指定要忽略的依赖包 。所以安装的时候如果依赖不满足,你直接加上这个参数把依赖忽略的就完了:
忽视遇到的问题(参见 --force-help) 。......其它选项

文章插图
当然,安装不会有任何问题,但是能不能用就看要造化了 。
“并不是依赖不满足,装上就一定完全不能用”,有时候只是功能不全而已 。
比如你装了一个 QQ,它依赖 ffmpeg,你忽略了它后直接安装使用很可能没问题,但是一点击视频通话,程序立马就崩掉了 。(这是个假设,QQ 用啥不用啥我也不知道)
这个方案虽然门槛低,有个致命的缺陷就是太麻烦,我这里缺两个,写两个 ignore 参数 。安装过程中经常遇到那种一下子缺十个八个的,要写十个八个这样的参数属实费劲 。
2、解压安装包,删掉依赖字段重新打包
这个方案可以直接大刀阔斧地把软件包的依赖全干掉,不过稍微需要点技术底子:
“首先你得会解压安装包,其次你得会制作安装包 。”
dpkg -X 只会解压出安装包的文件,无法解压出安装包带的脚本和控制信息 。
“右键”->“提取到此处”,解压出来的control和data分开两个压缩包,也不是打包前完美的状态 。
这里要用的是
dpkg-deb -R sogoupinyin_xxxx.deb ./sogou这样解压出来的就是 deb 在被打包前完完整整的样子,我解压了一个搜狗输入法的安装包为例:
文章插图
其他的我们都不用管,直接打开 control 文件:

文章插图
看到红框的部分了吧,直接把这行全部干掉 。然后再把拆出来的文件重新打回一个安装包:
fakeroot dpkg-deb --build ./sogou mysogou.deb这个自己打的 mysogou 安装包,和搜狗原生安装包唯一的区别就是没有依赖 。这下就可以一路畅通无阻,直接装完 。
3、修改系统中记录的 status 文件
和刚才那个方案思路差不多,只不过换了一个突破点,比刚才要更方便一点 。
刚才我们突破的思路是:安装包里记录有对软件依赖,全部干掉就没有依赖了 。
那么这个方案的思路则是:如果检测依赖发现系统不满足,我们给他伪造一个满足的依赖环境不就完了!
刚才我们说的 control 文件,所有的 deb 文件都有,安装过程中(不是安装后也不是前),它就被记录在了系统里的:/var/lib/dpkg/status 文件里 。
这个文件里的内容,也是 dpkg -l 命令显示内容的信息来源 。
也是我们上面说的,依赖检测时检索系统内是否满足依赖的信息来源 。
如果软件通过 dpkg -r 卸载,这个 status 文件里的信息不会删除,只会把 Status 字段改为: deinstall ok config-files 。通过 dpkg -P 或者 dpkg --purge 才会把信息完全抹除 。
推荐阅读
- Linux操作系统基础的网络管理知识
- Windows版本教程 人手一套Linux环境搭建
- 男人最想得到的5大性爱关怀
- 寿司店好开吗 开寿司店需要注意哪些问题
- 钢琴入门年龄与常见问题
- 10个炫酷的Linux终端命令大全
- Linux环境安装tomcat详解
- 解决Mac U盘不能写入问题
- 解决 Ubuntu 在启动时冻结的问题
- 电脑常见问题解决!各种疑难杂症的处理方案!今天就来帮帮你!
