9:03
文章插图
编者按:本文介绍了一些另类的暴力破解 RPM 和 DEB 软件包依赖关系的方法,对陷入依赖陷阱而不可自拔的人来说,有时候这也是一种绝地求生之路 。至于说这样做是否合适,那就是一件见仁见智的事情了,不过这种硬刚的不罢休态度值得赞赏 。此外,本文中一些观点仅代表作者的认识,未必一定正确,大家争鸣即可 。
硬刚 linux 软件安装依赖问题的办法有很多,我给他分为两大类!“一类合法,另一类暴力 。”
- https://mp.weixin.qq.com/s/2f8ajsgVahG0inu0tbnJUA
- 作者:三级狗
最近正好在研究 dpkg 和 rpm,对 Linux 依赖有了更深的认识 。
在网上看了很多,所有 Docker、虚拟机、编译安装、以及各种另辟蹊径的答案,都是面向日常繁重的业务没时间折腾而不得已做出的妥协和让步 。
而我们面向技术的,“从来都喜欢正面硬刚!”
硬刚 Linux 软件安装依赖问题的办法有很多,我给他分为两大类!
“一类合法,另一类暴力 。”
先说合法的解决方案也是所有人都知道的解决方案:
sudo apt-get install xxxxx
一般情况下,它会连带软件的依赖一起安装 。如果这个过程中依赖安装失败,就执行:sudo apt-get -f install
一次不行两次,只要源里有,只要能保证依赖关系是顺畅的,再多的依赖多执行几次都能装完 。如果有依赖源里找不到 。这个坑就踩不过去了,解决办法是:找到缺失的库的安装包手动下载下来 。然后通过 sudo dpkg -i xxxx.deb 安装 。
需要手动下载安装包的寻找主要有两个途径:
- 百度找,直接搜包名 + 版本号并带上关键字 deb
- 通过源 。
你在网上搜 ubuntu 国内源 。会找到很多类似这样的写法:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
这其实即是给apt-get工具配置的源地址,也是个实际的网址,你可以直接从浏览器里访问到,比如上面这个:https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
它其实代表的是:https://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/xenial/ 这个路径下的 main、restricted、universe、multiverse 这几个目录:文章插图
apt-get 工具会在这四个的目录下自动检索对应的软件包下载并安装 。
在一些特殊情况,比如机器网络受限,但浏览器开了代理可以访问外网的情况下 。apt-get 无法从源里获取软件,你可以从这里手动找到对应的软件包下载下来然后使用 dpkg 安装 。
比如这里,手动找到 MySQL 的安装包路径,再点击就可以直接下载:
文章插图
刚才说道 apt-get install 无法修复依赖,通过手动下载然后把这些缺失的安装包装上之后,就可以通过 apt-get 把刚才装不上的包装上 。
这是非常合理合法的解决方案 。
再补充一种合法技巧,可以尝试用:
apt-get install 本地软件包
这是因为:“依赖检测”和“软件安装”不是 apt-get 做的,而是 dpkg 做的 。依赖不满足“自动修复依赖”才是 apt-get 做的 。
所以,如果你下载了一个 deb 安装包通过 dpkg 安装,但依赖不满足的话,他只会提示你依赖缺失,但他不会自动寻找并安装依赖,虽然你仍然可以去下载安装缺失的依赖,但他如果缺失十个八个的,你再手动下载然后 dpkg 安装也不现实了 。
举个例子:我这里下载了一个搜狗输入法的安装包,dpkg -i 无法安装,但是可以通过 apt-get install 装上:
文章插图
要注意:通过 apt-get 安装本地软件一定要写路径,相对绝对都可以,但不能只写包名 。不然它会去源里面找不会装本地的 。
上面的方案几乎可以解决 80% 的安装依赖问题 。总结一下:
- 安装软件就用:sudo apt-get install xxxx
- 遇到依赖问题:sudo apt-get -f install
- 如果有缺失无法安装,就去网上下,缺什么下什么,下载下来后 sudo apt-get install ./xxxx 把缺的包安装上,再装原来的包 。
推荐阅读
- Linux操作系统基础的网络管理知识
- Windows版本教程 人手一套Linux环境搭建
- 男人最想得到的5大性爱关怀
- 寿司店好开吗 开寿司店需要注意哪些问题
- 钢琴入门年龄与常见问题
- 10个炫酷的Linux终端命令大全
- Linux环境安装tomcat详解
- 解决Mac U盘不能写入问题
- 解决 Ubuntu 在启动时冻结的问题
- 电脑常见问题解决!各种疑难杂症的处理方案!今天就来帮帮你!