以前在树莓派上安装zabbix的代理时,第一次感到库依赖问题的伤害,当时怎么都没有解决这个问题,真是伤脑经。可庆幸的是,放弃安装也不碍事,但是在生产系统上部署时遇到这个问题的话,到底怎么解决呢?或者,更进一步,怎么解决软件领域的库依赖问题,下面是笔者总结的几个可能的方法。

1、删除来解决库依赖问题
直接暴力的把属于库的那个软件包删除,ubuntu上dpkg -S ,redhat上rpm -qf 可以查出文件属于哪一个软件包。但是遗憾的是,你需要失去一个软件了。
2、dnf或apt新工具
ubuntu apt-get的新工具apt,redhat yum的新工具dnf,可能会自动帮助你解决库依赖问题。
3、ubuntu下的snap工具
snap工具可以类似一个容器拥有一个应用程序所有的文件和库(里面包含了依赖的软件包),各个应用程序之间完全独立,解决了软件包的依赖问题,带来的问题就是磁盘空间会增大。现在支持snap的软件不多。
4、python自定义来解决
现在谈的可不是python安装库的时候遇到依赖冲突问题,这个可以创建虚拟环境anaconda、virtualenv 等来解决。现在谈论的是安装软件包的问题。
遇到安装某个二进制文件时,如果工具不复杂的,那么可以使用python编程来自定义的解决这个问题。笔者以前做过较多这样的例子,其中shell和python监视小孩看电视时间并发邮件 是较为热门一点。
5、docker容器
很多应用都有docker容器镜像,zabbix就有Zabbix agent的代理镜像可以部署,直接从进程上来隔离,部署、更改、迁移会更加方便省心。

网友评论