刚才看见有人讨论Linux软件包的依赖问题,软件的依赖关系确实是一个比较令人头痛的问题,尤其是对新手来讲。我个人而言,解决这种依赖关系中要有三个方法。(以下皆以Fedora为例)

  1.尽量安装软件源上已经有的安装软件
  这听起来似乎是废话一样,但实际上有很多时候我们从网上随意下载一个软件包,然后费尽心思解决了依赖关系以后,却可能不经意间发现――原来这个软件在 系统的软件源上有现成的,我们只要yum install filename,系统就可以自动分析和解决依赖关系,并且将所需的软件搞定了。这种事情常有发生,但很好解决,我们只要下载安装软件之前看看软件源上是 否已经有我们所想要的软件就可以了。

  当然,我们不能只依赖系统自带的源,那个源上的软件并非十分丰富,我们需要Livna以及Freshrpms上的源。现以Livna源为例,联网之后,终端输入:

  sudo rpm -ivh [url]http://rpm.livna.org/livna-release-8.rpm[/url]
  sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-livna

  即可。

  这样就可以轻松使用Livna上丰富的软件源了。至于Freshrpms和Fedora_cn的源,安装方法类似,如果有不懂的可以去Google一下。

  2.使用yum localinstall
  如果我们想安装的软件在源上没有找到,那我们可以先从其他地方把软件包下载下来,然后尝试使用yum localinstall这个命令来进行安装。利用这个命令,系统可以自动分析依赖关系,然后去下载相应的软件包以解决依赖关系。

  这个方法和上一种的不同之处在于,这一种方法采用本地已经下载好的软件包,并以此为基础,分析其以依赖关系,然后从软件源上下载相应的包来解决依赖。而上一种方法中,不但用来解决依赖关系的包是从源上下载的,我们真正想要安装的软件包也是从源上下载的。就这么点区别。

  配置好了前面提到的几个软件源后,这个方法很多情况下都能高完美的解决问题。但是如果还是解决不了,那么我们就只好采用最后一种方法了。

  3.善用网络搜索
  网上有很多网站提供rpm搜索查询服务,比如rpm find等等。但是我更喜欢的是rpm search,其网址为 [url]http://rpm.pbone.net[/url]。这个网站不但提供了rpm软件包的搜索,还提供了根据所需的.so文件来搜索相应软件包的功能。

  比如我们下载的软件在安装的时候需要某个so文件,那我们可以在Rpm Search 上根据这个文件的名字来进行搜索。在搜索时,我们还可以定义所查询到OS(操作系统)类型,例如Fedora 7, Fedora 8, CentOS 等等。这个详细查询的地址为:[url]http://rpm.pbone.net/index.php3/stat/2/simple/2[/url] 。搜索出结果后,我们可以下载安装了。当然,安装的过程中我们还可能遇见新的依赖关系,这时候我们需要重新考虑上述的几种方法。

  总之,尽量使用第1、2两种方法,实在不行就利用Rpm Search进行手动查询安装,熟练以后,Linux软件包的依赖关系并不太难。我这里是以Fedora为例,其他的版本的Linux在操作上略有不同,但是原理是一样的。大家可以多多尝试。