最近正好在研究 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 multi