昨天见到有人讨论Linux软件包的依赖问题,软件的依赖关系确实是一个比较令人眩晕的问题,尤其是对菜鸟来讲。我个人而言,解决这些依赖关系中要有三个方式。(以下皆以Fedora为例)
1.尽量安装软件源上早已有的安装软件
这听上去仿佛是屁话一样,但实际上有好多时侯我们从网上随便下载一个软件包,之后费尽心思解决了依赖关系之后,却可能不经意间发觉――原来这个软件在系统的软件源上有现成的,我们只要yuminstallfilename,系统就可以手动剖析和解决依赖关系,而且将所需的软件搞定了。这些事情常有发生linux系统好用吗,但挺好解决,我们只要下载安装软件之前瞧瞧软件源上是否早已有我们所想要的软件就可以了。
其实,我们不能只依赖系统自带的源,那种源上的软件并非非常丰富,我们须要Livna以及Freshrpms上的源。现以Livna源为例,联网以后,终端输入:
sudorpm-ivh[url][/url]
sudorpm–import/etc/pki/rpm-gpg/RPM-GPG-KEY-livna
即可。
这样就可以轻松使用Livna上丰富的软件源了。至于Freshrpms和Fedora_cn的源,安装方式类似,假如有不懂的可以去Google一下。
2.使用yumlocalinstall
假如我们想安装的软件在源上没有找到,那我们可以先从其他地方把软件包下载出来,之后尝试使用yumlocalinstall这个命令来进行安装。借助这个命令,系统可以手动剖析依赖关系linux软件依赖,之后去下载相应的软件包以解决依赖关系。
这个方式和上一种的不同之处在于,这一种方式采用本地早已下载好的软件包,并借此为基础,剖析其以依赖关系,之后从软件源上下载相应的包来解决依赖。而上一种方式中,不但拿来解决依赖关系的包是从源上下载的,我们真正想要安装的软件包也是从源上下载的。就如此点区别。
配置好了上面提及的几个软件源后,这个方式好多情况下都能高完美的解决问题。并且假如还是解决不了,这么我们就只得采用最后一种方式了。
3.善用网路搜索
网上有好多网站提供rpm搜索查询服务,例如rpmfind等等。并且我更喜欢的是rpmsearchlinux软件依赖,其网址为[url][/url]。这个网站不但提供了rpm软件包的搜索,还提供了依据所需的.so文件来搜索相应软件包的功能。
例如我们下载的软件在安装的时侯须要某个so文件,那我们可以在RpmSearch上按照这个文件的名子来进行搜索。在搜索时,我们还可以定义所查询到OS(操作系统)类型,比如Fedora7,Fedora8,CentOS等等。这个详尽查询的地址为:[url][/url]。搜索出结果后,我们可以下载安装了。其实redflag linux,安装的过程中我们还可能遇到新的依赖关系,这时侯我们须要重新考虑上述的几种方式。
其实,尽量使用第1、2两种方式,实在不行就借助RpmSearch进行自动查询安装,熟练之后,Linux软件包的依赖关系并不太难。我这儿是以Fedora为例,其他的版本的Linux在操作上略有不同,而且原理是一样的。你们可以多多尝试。