怎么解决linux如何安装依赖包linux软件的依赖问题

您所在的位置: &
详细介绍Linux软件包依赖问题
详细介绍Linux软件包依赖问题
Linux软件包依赖关系是一个比较麻烦的问题,是在操作系统安装的时候没有选择全部的软件包,追加其他的一些应用服务时都有可能出现这个问题。
Linux软件包依赖关系让很多使用Linux的人感到很麻烦。在安装Linux系统时,不是选择安装所有的软件包。在完成安装后,若再进行软件安装的话,就可能会遇到一些依赖关系的问题,如在安装某些编程软件包时,系统就可能会提示一些错误信息。说需要其他的一些软件包的支持。
遇到这种Linux软件包依赖关系的话,该如何处理呢?在谈这个具体的解决措施之前,我先跟大家说说在哪些情况下容易出现软件包的依赖关系问题。
一是在操作系统安装的时候,没有选择全部的软件包。大部分时候出于安全或者其他方面的原因,Linux系统管理员往往不会选择安装全部的软件包。而只是安装一些运行相关服务所必要的软件包。但是有时候系统管理员可能并不清楚哪些软件包是必须要装的,否则后续的一些服务将无法启动;而那些软件包则是可选的。由于在系统安装的时候很难一下子弄清楚这些内容,故在Linux系统安装完毕后,再部署其他一些软件包的时候,就容易出现这个问题。
二是在Linux服务器上追加其他的一些应用服务时,容易出现类似的问题。如有一次企业需要使用一个Oracle数据库,我就在原先的文件服务器上安装Oracle数据库。但是在Linux操作系统上安装Oracle服务器是一个很头疼的问题,需要安装不少的软件包。而我一开始部署Linux文件服务器的时候又不知道后来需要安装Oracle数据库,故不少的软件包都没有装。而且后来发现,不少的软件包其实在Linux安装盘中还没有,需要自己到网上去下。所以,如果要在原先已经部署好的Linux服务器中追加一些应用服务时,很容易出现这个软件包的依赖问题。
其实解决这个Linux软件包依赖问题说简单也不简单,说复杂也不复杂。我下面总结了几个方法,各位若有需要的话可以借鉴一下。
一、根据错误提示信息在安装光盘中寻找。
在安装软件包时如果遇到软件依赖关系问题时,通常情况下系统都会提示相关的信息。如提示“libgd.so.1.8 is needey by php-4.2.2-17”等等。这就表示安装PHP程序时,需要先安装libgd.so软件包。当遇到这个问题时,我建议系统管理员可以根据这个提示信息,先从Linux系统的安装盘中查找一下是否有这个软件包。
如上图所示,在Linux安装盘中的RPMS目录下面就存放着大量的软件包。通常情况下,像上面的libgd.so等常见的软件包都可以从这个光盘中找到。所以系统管理员根据系统的错误提示信息,就可以了解到安装某个软件之前先要安装那个软件包。然后从系统光盘中找到这个软件包,并进行安装即可。另外需要说明的是,向RedHat操作系统,如果采用的是CD安装盘,则其可能有很多张光盘。而这些软件包往往不是存储在一张CD光盘中的。不过可以肯定的是,每张光盘下都会有RPMS这个目录。当系统管理员不知道某个软件包存储在哪个盘中的话,则可以一张张的找过去。虽然比较麻烦一点,但是大部分情况下都会有收获的。
不过如果采用这个方法有一个限制。像安装Oracle这种大型的应用软件就不怎么适用。因为安装这种大型的软件本身就比较花费时间。如果等到安装失败之后再根据错误提示来安装软件包的话,则重复来重复去会浪费很多的时间,而且也会让系统产生很多的垃圾文件。为此除非是一些小型的软件包,否则的话,最好还是根据下面我要介绍的方法来做,以节省软件安装的时间。
二、参考官方的文档。
通常情况下,一些软件的官方文档会说明安装它们的软件需要哪些软件包。如在安装Oracle数据库时,就必须需要安装不少的软件包。到底需要安装哪些软件包,在Oracle的官方网站上都会有详细的说明。我在安装Oracle数据库时,就先安装这个说明,一一来验证Linux系统中是否安装了这些软件包。如果没有安装的话,就马上装上去。此时各位Linux系统管理员不要抱着侥幸心理,已经不安装不会有大问题,这是大错特错了。对于Oracle公司官方网站建议的软件包在Oracle数据库系统安装之前必须一五一十的安装上去。否则的话轻则导致数据库安装失败,重者的话会导致后续数据库运行不稳定。
其实不光是Oracle数据库系统,其他的一些应用软件对Linux系统都会有类似的要求。它们要求在安装它们的应用软件之前,Linux系统必须安装有某些软件包,否则的话安装就会失败。所以我建议各位Linux系统管理员,在安装这些软件之前,最好先到官方网站上去寻找类似的文档,然后对照文档的内容去验证Linux系统是否安装了这些软件包。如此的话就可以避免软件包依赖关系的问题。另外,在网络上也可以寻找到很多有用的价值。有些安装过这个软件的Linux系统管理员,会把自己安装过程中系统遇到的软件包依赖关系列举出来,会一一说明需要先安装哪些软件包。这些网络上的文档虽然其专业性可能没有官方提供的文档那么专业。但是对我们来说也具有很大的参考价值。
三、从专业网络上查询。
为了正确安装某些软件包,需要安装一些文件。可是有时候系统管理员可能根据系统的提示还不能够确定到底安装哪些软件包才会有这些文件。特别是对于一些不常用的软件包或者系统管理员第一次接触的软件包往往会遇到这种问题。此时,系统管理员就可以到一些专业的网站上去查询。这里我给大家介绍一个很不错的网站,即http://rpmfind.net。系统管理员只需要在这个网站搜索的地方输入需要的文件名字,如libgd.so,则搜索结果中就会显示需要安装哪个软件包才具有这个文件。找到这个软件包的名字之后,只需要从光盘或者网络上下载这个软件包进行安装即可。当然,在安装这些软件包的时候,可能还会遇到其他软件包依赖关系的问题。如安装php软件包需要libgd.so文件,而这个文件属于gb软件包。但是在安装gb软件包时,可能这个软件包跟其他软件包又具有依赖关系,又需要安装其他软件包才行。此时系统管理员就需要耐心的一一按顺序进行解决了。
可见大部分情况下,在遇到软件包依赖关系问题的时候,操作系统提供的文件名字与软件包名字都会有直接的联系。有可能文件的名字就是软件包的名字。但是有些时候文件的名字与软件包的名字会相差甚远。此时大部分系统管理员可能光凭文件名字无法找到对应的软件包。此时就需要借助笔者上面谈到的一些专业网站,去查询软件包的名字了。
另外我还有一个小建议。当系统管理员安装了某个软件之后,如果存在软件包之间的依赖关系,则最好能够拿本子或者通过其他手段记录下来。因为在以后的工作中很有可能还会需要安装这些软件。如此的话,在下次安装的时候就不用这么麻烦了。可以对照以前的笔记直接安装需要的软件包。毕竟在同一个地方摔倒多次不是什么光彩的事情。
以上这些就是我解决Linux软件包依赖关系问题的绝招。系统管理员过掌握了这些招数的话,则绝大部们的软件包依赖关系问题会迎刃而解。
【编辑推荐】
【责任编辑: TEL:(010)】
关于的更多文章
智能化运维是用机器来代替运维人员,在最少人工干预下,结合运用
随着云计算、物联网、大数据、移动互联网的大发展,你应该知道这些。
讲师: 10人学习过讲师: 8人学习过讲师: 14人学习过
Linux系统的魅力之一就是你可以直接从终端使用命令行
开源的世界是一个分享的世界,在这个世界里,有辛勤奉
Linux强大的适用性和创新性、开放性在桌面环境方面得
本书采用“如何解决问题”的方式阐述Ruby编程,涵盖了以下内容:Ruby术语和基本原理;数字、字符串等低级数据类型的操作;正则表
51CTO旗下网站Ubuntu解决包依赖关系_Linux教程_Linux公社-Linux系统门户网站
你好,游客
Ubuntu解决包依赖关系
来源:Linux社区&
作者:speedme
解决包依赖关系:
出现的错误有:
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是& 因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件& 包尚未被创建或是它们已被从新到(Incoming)目录移出。& 下列信息可能会对解决问题有所帮助:& & 下列软件包有未满足的依赖关系:& &libtiff4-dev : 依赖: libjpeg-dev& E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。&
上网查了下主要是因为版本的问题。安装新的时必然要卸载旧的,但卸载的时候可能安装下一个包又需要这个包,所以产生了依赖(个人理解,不知到对了没)
纠结了很久突然发现每次出现这个问题的时候,都是在同时安装很多包的情况下发生的,如这一次的安装命令是
sudo apt-get install build-essential libgtk2.0-dev libjpeg62-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev
于是我就把上面的命令分解成一个一个包安装,于是就发现成功了。因为这样安装他会重新卸载一些。
相关资讯 & & &
& (04/11/:35)
& (02/04/:15)
& (01/29/:07)
& (07/05/:25)
& (02/01/:27)
& (12/28/:36)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 194, 距离下一级还需 6 积分
论坛徽章:0
各位大侠,今天在给linux 编译安装软件时,那些依赖关系让我感觉到特别的头痛,不知道大家有没有什么省心的办法,例如,在打算安装某软件时,如何提前知道该软件需要的所有依赖包?如果是看文档 看哪个?INSTALL,REDEME,还是DOCS? 有些好像都没有找到我想要的。
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
论坛徽章:34
论坛徽章:34
或者 rpm -qpR file.rpm
白手起家, 积分 31, 距离下一级还需 169 积分
论坛徽章:0
先建立一个yum仓库..
然后直接 yum -y install 安装..
解决一切依赖性问题..
论坛徽章:379
用yum安装软件最省事了
白手起家, 积分 194, 距离下一级还需 6 积分
论坛徽章:0
恩 如果不是RPM&&而是通过编译安装的呢 ,要知道linux下很多的软件在YUM源中不全,大多数 需要编译安装 ,对于这部分 ,有什么好的办法解决依赖关系吗 ?或者说是 如何提前知道某软件需要的所有依赖关系?debian下好像可以 ,fedora下是否也有类似的?
巨富豪门, 积分 27842, 距离下一级还需 12158 积分
论坛徽章:0
你编译安装的时候,如果缺少什么库文件,会有报错提示,然后根据提示,安装需要的库文件。
论坛徽章:34
编译安装的,就看里面的 INSTALL 或者 README 么。
论坛徽章:1
也有 yum 不过去的时候。
论坛徽章:0
也有 yum 不过去的时候。
snow888 发表于为什么Linux软件安装包会有依赖关系,而Windows软件安装包不需要? - 知乎5被浏览225分享邀请回答02 条评论分享收藏感谢收起01 条评论分享收藏感谢收起

我要回帖

更多关于 linux 查看软件依赖 的文章

 

随机推荐