设为首页 收藏本站
查看: 464|回复: 0

[经验分享] RPM 包管理与 yum安装源码包

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-24 08:59:16 | 显示全部楼层 |阅读模式
  • RPM工具
  • RPM 是 Red HatPackage Manager 的缩写,是由Redhat所开发一款包管理程序。目前Redhat系的Linux使用rpm可以完成软件的安装、查询、卸载、升级等工作。
  • 需要注意的是,RPM包之间存在依赖性的问题;在安装一个包的过程中可能需要安装其它包,并且其它包又有所依赖的包。所以必须先安装好所有所依赖的包后才能安装自己想要安装的包。
  • 获取程序包的途径:优先选择系统附带的光盘或到官方的服务器下载;项目的官方站点下载。
  • 每个rpm包名称都由“—”和“.”分隔为几部分。以bash-4.1.2-33.el6.x86_64 这个包为例,bash为包名;4.1.2 为版本号;33.el6 为包的发行号;x86_64为CPU运行的平台。


  • RPM的命令和选项
  • 查询命令的一般用法
  • rpm{-q | --query} [select-options] [query-options]

  • –q  PACKAGE_NAME:查询指定的程序包是否已经被安装
  • wKiom1Z6SNiBhx1mAAAND1eQXpg231.jpg


  • -a ,--all :查询所有已经安装过的包;
  • wKioL1Z6SQuAhwlFAAAw-ZoQy9g992.jpg


  • -f FILE :查询指定的文件由哪个程序包安装生成的;
  • wKioL1Z6SW-zdep2AAAKM-ie6UU593.jpg

  • -p , -packagePACKAGE_FILE:用于实现对未安装的程序包执行查询操作;
  • --whatprovidesCAPABILITY :查询指定的CAPABILITY(能力)由哪个程序包提供;
  • --whatrequiresCAPABILITY :查询指定的CAPBILITY被哪个包所依赖;
  • --changelog :查询rpm包的changelog;

  • -l ,--list :程序包安装生成的所有文件列表
  • wKiom1Z6ZDXC2-CxAAAcbL53XRE041.jpg

  • --i ,--info :程序包相关的信息,版本号、大小、所属的包组,等;

  • wKioL1Z6ZIiy9GV0AAAT87wfjPM512.jpg

  • -R , --requires:查询指定的程序包的依赖关系;
  • wKioL1Z6ZMWB2mTnAAAhHGX1tUE180.jpg

  • --scripts :查看程序包自带的脚本片段
  • -c ,--configfiles :查询指定的程序提供的配置文件;
  • -d , --docfiles:查询指定的程序包提供的文档;
  • --provides : 列出指定的程序包提供的所有CAPABILITY;
  • 以上是查询命令的一些选项和示例,在安装程序包前和安装完成后都可以通过查询来验证。

  • 我把系统光盘挂载到了 /media/cdrom/上,那么我可以切换到/media/cdrom/Packages 中查看有哪些rpm包
  • wKiom1Z6ZOLQjC27AAAGUzbAtCo002.jpg

  • wKiom1Z6ZPyhBm-xAAAYjdKSIV8691.jpg

  • 安装命令的一般用法
  • rpm{-i|--install}{install-options]PACKAGE_FILE

  • 以安装 zsh 为例:
  • wKiom1Z6ZR7TYerPAAAflRtC3s8397.jpg
  • -i :安装的意思
  • -v :显示详细信息
  • -h :显示安装进度,每个#表示2%的进度
  • 注意:在Centos不同版本中一定要选对应的包,否则可能会报错。例如所依赖的包没有安装等;

  • 另外还有一些常用的选项:
  • --test :测试安装,检查并报告依赖关系及冲突消息等;
  • --nodeps :忽略依赖关系;不建议;
  • --replacepkgs: 重新安装;

  • 安装完成后可以检查一下是否已经安装
  • wKiom1Z6ZVOA0jTmAAAJL5_1_ko168.jpg

  • 升级命令的一般用法
  • rpm{-U|--upgrade}{install-options]PACKAGE_FILE..
  • rpm{-F|--freshen}{install-options]PACKAGE_FILE..
  • wKioL1Z6ZYSwxKQ7AAARBfql4Ek900.jpg
  • -U:升级或安装程序包
  • -F:只是升级程序包
  • --oldpackage :降级;
  • --force :强制升级;

  • 卸载命令的一般用法
  • rpm{-e|--erase}[--allmatches] [--nodeps][--noscripts] [--test] PACKAGE_NAME..
  • --allmatches :卸载所有匹配指定名称的程序包的各版本;
  • --nodeps :忽略依赖关系
  • --test :测试卸载,dry run 模式
  • wKioL1Z6Za3DXgbvAAAZQ9aJNh4412.jpg
  • 卸载时可先查询需要卸载的包的完整名,然后卸载。



  • Yum工具
  • Yum 是YellowdogUpdate Modifier 的缩写,它是一个基于 RPM 包管理的软件包管理器。能够从指定的服务器自动下载RPM 包并且安装,和RPM相比它可以处理依赖性关系,并且一次安装所有依赖的软件包,并自动安装。
  • 除了系统上的程序包以外,Yum还使用了存储库,库是包的合集,可通过网络访问它们。
  • 在yum库配置文件中添加库的地址可以实现yum对包的下载、更新等管理。


  • 查看yum的配置文件
  • wKioL1Z6q33Qa5gPAAAMki6zAZ0592.jpg
  • 可以用rpm –qc 来查看指定程序的配置文件,其中/etc/yum.conf 为yum的主配置文件,它可以为所有的存储库提供公共配置。
  • 除了主配置文件以外还有各用户自己的配置文件/etc/yum.repos.d/*.repo
  • wKiom1Z6q4PyO7WpAAAQkiKaSEs681.jpg
  • 查看CentOS-Base.repo 配置文件的内容:
  • wKiom1Z6q5TRYWxhAABaF-gLcdw010.jpg
  • 其中最为关键的是baseurl ,它可以指定库的访问路径,并且可以添加多个;

  • Yum的一般用法:
  • 显示仓库列表:yum repolist (默认显示启用的仓库列表)
  • wKiom1Z6q6vD3hLMAAAoCBgqSns790.jpg
  • 显示程序包:yum list {available|installed|updates} [glob_exp1] [...]}
  • wKioL1Z6q9XB7fNlAAA8S0daP-Y797.jpg

  • 搜索一个rpm包:yum search [关键词]
  • wKiom1Z6q86Qej-8AABCB2EadMI814.jpg


  • 安装程序包:install package1 [package2] [...]
  • wKioL1Z6q-ziRAyxAAAIxngpg2Q889.jpg
  • 在安装过程中会提示 是否安装,y则安装,n则不安装;如果嫌麻烦可以加 –y选项默认回答“yes”。

  • 升级程序包:update [package1] [package2] [...]

  • 卸载程序包:remove  | erase package1 [package2] [...]
  • wKiom1Z6q_7xe2ovAABVenXpDWk933.jpg   
  • 注意:不添加y选项 则默认不卸载!在卸载时要注意不要把其他重要的rpm包卸载掉,以免其他服务受影响;

  • 以上是yum的一些常用的命令,并且所用的包都是rpm编译好的程序包。下面就来说一说如何安装程序的源码包。
  •     Rpm包都是源代码经过编译然后打包好的程序包,那如果用户自己修改定制一些其他的功能的话只能安装源代码包了。常见的源代码包一般都是用C语言开发的, Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件。所以如果系统中没有安装gcc就没有办法去编译源代码。可以使用 yum install -y gcc 来完成安装。 wKioL1Z6rCnhX7-nAAAHi7HqyNk131.jpg

  • 安装一个源代码包,通常有三个步骤:
  • 1、./configure:通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;
  • 2、make:根据makefile文件,构建应用程序;
  • 3、make  install:相当于install命令;

  • 在安装源代码包之前我们得先获取想要安装的源码包,下面以安装httpd源代码包为例:
  • 首先要配置库的配置文件,在修改配置文件之前最好先做备份;
  • wKiom1Z6rDOzpFVdAAAl6gjpUeI950.jpg
  • 在CentOS-Base.repo配置文件中添加指定的URL,如果不指定的话后面下载源码包时会报错。
  • wKioL1Z6rFLAGrReAABnAo7JhPk947.jpg
  • 切换到/usr/local/src目录下,最好把源码包下载到这个路径下,这个路径一般为默认路径,方便以后同事查看;
  • wKiom1Z6rNyhx3t6AAAE6DZh4b4727.jpg
  • 找到源代码包的地址并下载
  • wKiom1Z6rQaS5FrwAAD2LCxTcrE046.jpg

  • 下载后解压缩源代码包
  • wKioL1Z6rSmhHaPjAAAHq5AYH4M679.jpg


  • 在httpd-2.2.29目录中查看解压缩后的源码包,并运行. /configure脚本检查和分析包之间的 依赖关系并生成makefile文件:
  • wKiom1Z6rSTANrxBAAAFc-oV8bA347.jpg
  • wKiom1Z6rTKiy8VwAAAGVskAEbA910.jpg

  • 查看是否为makefile文件生成,如果有则执行下一步:make命令,根据makefile文件中的配置进行编译:
  • wKioL1Z6rViCXyCWAAAFtN_GyWA648.jpg
  • wKiom1Z6rVPwFWy3AAAFnQ9qpQY504.jpg

  • 完成后执行最后一步:make install
  • wKioL1Z6rXLxTAatAAAcKjBE8Bs951.jpg
  • make install 会创建相应的目录以及文件。当完成安装后,会在/usr/local目录下多了一个apache2目录,这就是apache所安装的目录了。

  • 完成源代码包的安装后要启用服务,查看服务所在的目录
  • wKioL1Z6vZ_yn98UAAAZlKYsotU398.jpg
  • Apachectl文件为apache服务的文件

  • 启用apache服务
  • wKioL1Z6vbqiASUCAAAHEvrUUnc318.jpg

  • 最后查看服务是否启用:
  • wKioL1Z6vdKi-R2dAACot_VEL9s471.jpg
  • 查看80端口,有则服务处于监听状态,服务正在运行。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-155495-1-1.html 上篇帖子: kickstart部署 下篇帖子: RHEL7启动配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表