在安装软件时,如果碰到依赖性问题,就是说缺少哪个文件或包时,不要慌,做以下三步工作,首先用下面的命令查找一下包有没有(首先声明,这里的包只是一个例子)
rpm -qa | grep 包名
包名不要带版本号,可以不是完整的包名,例如 rpm -qa | grep libsmbclient,功能是看一看包是不有,或者版本对不对,这主要解决不同Linux发行版本之间的安装包互用,其实不同发行版本的包是可以互用的。 有该包但可能与版本号之间的写法不一样,如libsmbclient-1.1.1.a与 libsmbclient-1.1.1a是一样的包,只是不同发行商的叫法不同,那么对于要安装的软件包就可以使用rpm --force强制安装参数。
第二步如果出现缺少libsmbclient.so.1.1或才libsmbclient.a字样,首先用
ls /usr/lib/libsmb*
ls /lib/libsmb*
看一看系统中有没有,如果显示有libsmbclient.so.1.0,libsmbclient.so的话那好了,首先试试创建链接
ln -s libsmbclient.so libsmbclient.so.1.1
再来安装软件,一般说来是可以用相近版本叫的文件来做链接的,如果出现运行错误,再考虑上网拉包下来。有时某个软件包缺少的包是你用make 编译的,那么只要能做好链接,就可以在安装时使用--nodeps参数,不进行依赖性检查,有时你的系统中确实没有这个包,那么就上网拉吧。
一般.la 和.a 文件在带devel字样的包中,而so文件在除去lib后的文件中,如上例smbclient,这只是一般情况,另外你找到包后,先看看包里提不提供你所需要的文件,上面这个网站这有每个包中文件的列表。拉下来的这个包如果又有依赖性关系,则重复上面三个步骤,不要一见缺少文件就上网拉。

