RPM 包管理与 yum安装源码包

  • 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_64CPU运行的平台。


  • RPM的命令和选项

  • 查询命令的一般用法

  • rpm{-q | --query} [select-options] [query-options]


  • �Cq  PACKAGE_NAME:查询指定的程序包是否已经被安装

  • wKiom1Z6SNiBhx1mAAAND1eQXpg231.png


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

  • wKioL1Z6SQuAhwlFAAAw-ZoQy9g992.png


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

  • wKioL1Z6SW-zdep2AAAKM-ie6UU593.png


  • -p , -packagePACKAGE_FILE:用于实现对未安装的程序包执行查询操作;

  • --whatprovidesCAPABILITY :查询指定的CAPABILITY(能力)由哪个程序包提供;

  • --whatrequiresCAPABILITY :查询指定的CAPBILITY被哪个包所依赖;

  • --changelog :查询rpm包的changelog


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

  • wKiom1Z6ZDXC2-CxAAAcbL53XRE041.png


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

  • wKioL1Z6ZIiy9GV0AAAT87wfjPM512.png


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

  • wKioL1Z6ZMWB2mTnAAAhHGX1tUE180.png


  • --scripts :查看程序包自带的脚本片段

  • -c ,--configfiles :查询指定的程序提供的配置文件;

  • -d , --docfiles:查询指定的程序包提供的文档;

  • --provides : 列出指定的程序包提供的所有CAPABILITY

  • 以上是查询命令的一些选项和示例,在安装程序包前和安装完成后都可以通过查询来验证。

      

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

  • wKiom1Z6ZOLQjC27AAAGUzbAtCo002.png

  • wKiom1Z6ZPyhBm-xAAAYjdKSIV8691.png


  • 安装命令的一般用法

  • rpm{-i|--install}{install-options]PACKAGE_FILE


  • 以安装 zsh 为例:

  • wKiom1Z6ZR7TYerPAAAflRtC3s8397.png

  • -i :安装的意思

  • -v :显示详细信息

  • -h :显示安装进度,每个#表示2%的进度

  • 注意:在Centos不同版本中一定要选对应的包,否则可能会报错。例如所依赖的包没有安装等;


  • 另外还有一些常用的选项:

  • --test :测试安装,检查并报告依赖关系及冲突消息等;

  • --nodeps :忽略依赖关系;不建议;

  • --replacepkgs: 重新安装;


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

  • wKiom1Z6ZVOA0jTmAAAJL5_1_ko168.png


  • 升级命令的一般用法

  • rpm{-U|--upgrade}{install-options]PACKAGE_FILE..

  • rpm{-F|--freshen}{install-options]PACKAGE_FILE..

  • wKioL1Z6ZYSwxKQ7AAARBfql4Ek900.png

  • -U:升级或安装程序包

  • -F:只是升级程序包

  • --oldpackage :降级;

  • --force :强制升级;

     

  • 卸载命令的一般用法

  • rpm{-e|--erase}[--allmatches] [--nodeps][--noscripts] [--test] PACKAGE_NAME..

  • --allmatches :卸载所有匹配指定名称的程序包的各版本;

  • --nodeps :忽略依赖关系

  • --test :测试卸载,dry run 模式

  • wKioL1Z6Za3DXgbvAAAZQ9aJNh4412.png

  • 卸载时可先查询需要卸载的包的完整名,然后卸载。




  • Yum工具

  • Yum YellowdogUpdate Modifier 的缩写,它是一个基于 RPM 包管理的软件包管理器。能够从指定的服务器自动下载RPM 包并且安装,和RPM相比它可以处理依赖性关系,并且一次安装所有依赖的软件包,并自动安装。

  • 除了系统上的程序包以外,Yum还使用了存储库,库是包的合集,可通过网络访问它们。

  • yum库配置文件中添加库的地址可以实现yum对包的下载、更新等管理。


  • 查看yum的配置文件

  • wKioL1Z6q33Qa5gPAAAMki6zAZ0592.png

  • 可以用rpm �Cqc 来查看指定程序的配置文件,其中/etc/yum.conf yum的主配置文件,它可以为所有的存储库提供公共配置。

  • 除了主配置文件以外还有各用户自己的配置文件/etc/yum.repos.d/*.repo

  • wKiom1Z6q4PyO7WpAAAQkiKaSEs681.png

  • 查看CentOS-Base.repo 配置文件的内容:

  • wKiom1Z6q5TRYWxhAABaF-gLcdw010.png

  • 其中最为关键的是baseurl ,它可以指定库的访问路径,并且可以添加多个;

     

  • Yum的一般用法:

  • 显示仓库列表:yum repolist (默认显示启用的仓库列表)

  • wKiom1Z6q6vD3hLMAAAoCBgqSns790.png

  • 显示程序包:yum list {available|installed|updates} [glob_exp1] [...]}

  • wKioL1Z6q9XB7fNlAAA8S0daP-Y797.png

     

  • 搜索一个rpm包:yum search [关键词]

  • wKiom1Z6q86Qej-8AABCB2EadMI814.png

     

      

  • 安装程序包:install package1 [package2] [...]

  • wKioL1Z6q-ziRAyxAAAIxngpg2Q889.png

  • 在安装过程中会提示 是否安装,y则安装,n则不安装;如果嫌麻烦可以加 �Cy选项默认回答“yes”。


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

     

  • 卸载程序包:remove  | erase package1 [package2] [...] 

  • wKiom1Z6q_7xe2ovAABVenXpDWk933.png  

  • 注意:不添加y选项 则默认不卸载!在卸载时要注意不要把其他重要的rpm包卸载掉,以免其他服务受影响;


  • 以上是yum的一些常用的命令,并且所用的包都是rpm编译好的程序包。下面就来说一说如何安装程序的源码包。

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


  • 安装一个源代码包,通常有三个步骤:

  • 1./configure通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;

  • 2make根据makefile文件,构建应用程序;

  • 3、make  install:相当于install命令;

     

  • 在安装源代码包之前我们得先获取想要安装的源码包,下面以安装httpd源代码包为例:

  • 首先要配置库的配置文件,在修改配置文件之前最好先做备份;

  • wKiom1Z6rDOzpFVdAAAl6gjpUeI950.png

  • CentOS-Base.repo配置文件中添加指定的URL,如果不指定的话后面下载源码包时会报错。

  • wKioL1Z6rFLAGrReAABnAo7JhPk947.png

  • 切换到/usr/local/src目录下,最好把源码包下载到这个路径下,这个路径一般为默认路径,方便以后同事查看;

  • wKiom1Z6rNyhx3t6AAAE6DZh4b4727.png

  • 找到源代码包的地址并下载

  • wKiom1Z6rQaS5FrwAAD2LCxTcrE046.png


  • 下载后解压缩源代码包

  • wKioL1Z6rSmhHaPjAAAHq5AYH4M679.png


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

  • wKiom1Z6rSTANrxBAAAFc-oV8bA347.png

  • wKiom1Z6rTKiy8VwAAAGVskAEbA910.png

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

  • wKioL1Z6rViCXyCWAAAFtN_GyWA648.png

  • wKiom1Z6rVPwFWy3AAAFnQ9qpQY504.png

     

  • 完成后执行最后一步:make install

  • wKioL1Z6rXLxTAatAAAcKjBE8Bs951.png

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

     

  • 完成源代码包的安装后要启用服务,查看服务所在的目录

  • spacer.gif

  • Apachectl文件为apache服务的文件

     

  • 启用apache服务

  • spacer.gif


  • 最后查看服务是否启用:

  • spacer.gif

  • 查看80端口,有则服务处于监听状态,服务正在运行。



你可能感兴趣的:(rpm,yum,源码包)