之前我在介绍RPM包安装的方法时曾经提到过RPM包是有依赖性要求的(《RPM包管理器使用入门》),有一些RPM包在安装的时候会先检查自身所需要的其它包或库是否已经安装,如果没有则拒绝进行安装,不巧这几天尝试安装一部基于Linux的服务器时就遇上了……
预备安装的是一部LAMP(Linux+Apache+MySQL+PHP)服务器,系统使用Redhat Enterprise Linux AS4 Update4进行最小系统安装(Mini),然后在上面手动安装其它包,结果在安装Apache的时候就遇到了:
# rpm -ivh httpd-2.0.52-25.ent.i386.rpm
出现提示:
error: Failed dependencies:
httpd-suexec is needed by httpd-2.0.52-25.ent.i386
Suggested resolutions:
httpd-suexec-2.0.52-25.ent.i386.rpm
出错提示为:
错误:依赖关系失败;
httpd这个包需要httpd-suexec先行安装于系统;
解决提示:先安装httpd-suexec包
好,等我反过来,先运行:
# rpm -ivh httpd-suexec-2.0.52-25.ent.i386.rpm
出现提示:
error: Failed dependencies:
httpd = 2.0.52-25.ent is needed by httpd-suexec-2.0.52-25.ent.i386
Suggested resolutions:
httpd-2.0.52-25.ent.i386.rpm
出现了完全相反的提示,httpd-suexec包需要先行安装httpd包……
反复试了几次都这样,当时就傻眼了,甲安装的时候需要乙,而乙安装的时候又说需要甲……
后来在ChinaUnix论坛一位前辈的指导下,使用RPM管理器的--aid参数,尝试让RPM管理器自行解决包依赖关系问题,终于获得成功,并且一次性就把2个包一起安装到了系统中……
操作指令为:
# rpm -ivh --aid httpd-2.0.52-25.ent.i386.rpm
注意,--aid参数和-ivh不同,有2个“减号”……
安装过程中RPM先安装httpd包,在遇到与httpd-susexec包有依赖性的时候自动安装httpd-susexec包中的部分,1条指令结束后2个包就都安装到了系统中……
通过RPM管理器查询:
# rpm -qa | grep httpd
httpd-2.0.52-25.ent.i386.rpm
httpd-suexec-2.0.52-25.ent.i386.rpm
OK,一次非常有趣的安装经历……
其它软件模块的安装正在学习、尝试、失败、成功中……
posted on 2014-04-26 23:54
回忆之城 阅读(161)
评论(0) 编辑 收藏 引用 所属分类:
unix/linux