刚才看见有人讨论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在操作上略有不同,但是原理是一样的。大家可以多多尝试。
分享到:
相关推荐
Linux软件包管理 软件包管理简介 软件包命名规则 httpd-2.2.15-15.el6.centos.1.i686.rpm httpd 软件包名 2.2.15 软件版本 15 软件发布的次数 el6.contos 适合的Linux平台 i686 适合的...
linux环境的Qualcomm Package Manager软件包和依赖库,是Qcom Hexagon搭建的前置软件包(注:Ubuntu 18.04安装ok,20.04安装存在问题)
常用的Linux中的rpm包管理之包命名与依赖性。介绍的很简单,容易明白。
linux下面安装oracle的必需软件包,整理保存。
glibc-devel-2.3.4-2.13.i386.rpm cpp-3.4.4-2.i386.rpm glibc-kernheaders-2.4-9.1.98.EL.i386.rpm glibc-headers-2.3.4-2.13.i386.rpm gcc-3.4.4-2.i386.rpm
centos7.6 smb samba
运行install.packages ,注意哪些软件包失败并查找它们的依赖关系非常耗时-特别是在制作Docker映像时。 {pkg.deps}的目标是帮助找到软件包及其依赖项的系统要求。 我考虑两种情况: 我想安装(新)软件包并获取...
依赖解析器该项目是有关如何使用软件包管理器(例如pip或apt)解决依赖关系并计算安装新软件包所需的额外磁盘空间的研究。 这是有关图论的学校项目的一部分。问题计算安装软件包所需的总额外磁盘空间。 软件包管理器...
pkg-构建linux软件包 pkg是一个独立于平台的小型工具,用于构建Linux .deb或.rpm软件包。 值得注意的是,pkg不依赖于诸如rpmbuild或dpkg-*工具套件之类的系统实用程序。 pkg的大部分魔力是由提供的,pkg添加了...
64位32位linux上安装oracle11g所需要依赖的软件包,本人花了大半天找个。基本上覆盖了所有需要的软件包elfutils-libelf-0.125-3.el5.x86_64,elfutils-libelf-devel-0.125-3.el5.x86_64,gcc-4.1.2-46.el5.x86_64....
本人费了一天的工服,终于搞明白安装过程了,把所有依赖安装包全放在上边了,下边是安装命令。附加的软件包有需要的自己安装 rpm -ivh kernel-headers-2.6.18-238.el5.i386.rpm rpm -ivh glibc-headers-2.5-58.i386....
06.2.1 软件包管理-rpm命令管理-包命名与依赖性.mp4 06.2.2 软件包管理-rpm命令管理-安装升级与卸载.mp4 06.2.3 软件包管理-rpm命令管理-查询.mp4 06.2.4 软件包管理-rpm命令管理-校验和文件提取.mp4 06.3.1 ...
squid是linux平台下的一款代理软件,配置简单、访问高效。可用以网络管理之中
对于想配置一个的交互蜜罐的朋友,honeyd可谓是最好的一款产品,大家平时实验可以用到,方便学习
标识任何Arch Linux软件包不拥有也不创建的文件。 安装 该软件包在Arch Linux官方存储库中提供。 用法 以超级用户身份运行脚本。 有关选项和自定义,请参见随附的页。 在确定哪些文件可能无关紧要时应格外小心,尤其...
64位linux服务器上安装smb的所需rpm包,包括其依赖。 本人在redhat enterprise linux 6 server安装成功。 具体安装步骤见http://blog.csdn.net/zxnlmj/article/details/21187821
但是我愿意 “ butido”可以代表... 依赖关系和元信息都可以在构建中使用。 在构建或提交之前,之中或之后计算的所有内容(包括构建日志)都将写入到postgres数据库中。 可以查询该数据库以获取软件包,构建信息,日
Linux 调试智能卡相关资源,包含pcsc-lite、ccid、libusb等安装包,包含多个版本的
Apt网站 一个基于Web的工具,用于显示基于DebianLinux发行版中的软件包依赖性。 寻找此工具的较早版本? 检查。 这个工具目前正在被重写,以提高效率和开放性(想想 API!)。
通过积累保留的linux 32位 gcc各种依赖包