RPM概述及源代码编译安装过程小结

一、查询RPM软件包信息

1.1 RPM概述

  • RPM软件包最早由Red Hat公司提出,现以成为linux发行版中公认的软件包管理标准,其官方网站为http:www.rpm.org.
  • RPM包管理器通过建立统一的文件数据库,能够自动分析软件包之间的依赖关系,保持各应用程序在一个协调、有序的整体环境中运行。
  • RPM机制封装的软件包文件拥有约定成俗的命令格式,一般用:软件名-软件版本-发布次数.操作系统.硬件架构类型.rpm 的文件名形式。
    在这里插入图片描述

1.2 查询RPM软件包信息

  • RPM命令主要通过“-q”实现选项,主要针对当前系统中已安装的软件包;通过“-qp”选项可以针对尚未安装的RPM包文件进行查询。
  • 查询已安装的RPM软件包信息
使用命令的基本格式
rpm -q[子选项] [软件名]
常用选项有以下几种
-qa  ## 列出所有RPM安装包
-qi  ## 软件包的详细信息(查看指定软件包的名称,版本,许可协议,用途等描述信息)
-ql   ##查询某个软件包安装的目录和文件清单时
-qf  ## 查询某个软件是由哪一个安装包生成的
-qc  ## 查看软件包所有配置文件。如conf cnf ini 都是配置文件
-qd  ##查看软件包的文档 
例如,查询系统中已安装RPM软件包个数
[root@localhost ~]# rpm -qa | wc -l
例如: 查询是否已安装elinks 和lynx 软件包
    [root@localhost ~]# rpm -q elinks lynx

  • 查询未安装的RPM包文件
  • 使用“-qb”选项时,必须以RPM包文件的路径作为参数(可以有多个),而不是软件包名称。相关的子选项与使用“-q“查询时类似
  • qpi:查询指定软件包的名称、版本、许可协议、用途描述等详细信息。
  • qpl:查看该软件包准备要安装的所有目标目录、文件列表
使用命令的基本格式
rpm -qp[子选项] RPM包文件
常用选项有以下几种
-qpi
-qpl
-qpc
-qpd

二、安装、升级、卸载RPM包

  • 在日常系统管理工作中,安装、升级及卸载软件包时管理应用程序最基本的工作内容。
  • 使用rpm命令实现这些操作时,基本的命令选项如下所述:
-i:在当前系统中安装(Install)一个新的RPM包。
-e:卸载指定名称的软件包
-U:检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于”-i“选项
-F:检测并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装。
辅助安装、卸载软件包的命令
--force:强制安装某个软件包,当需要替换现已安装的软件包及文件,或者安装一个版本更久的软件时,可以使用
--nodeps:在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系
-h:在安装或者升级软件包的过程中,以“#”号显示安装进度
-v:显示软件安装过程中的详细信息。
  • 若要一次性安装多个RPM软件包,可以使用通配符“*”,这种方式在安装存在相互依赖关系的多个软件包时特别有用,系统会自动检查依赖性并决定安装顺序,而无需管理员去判断应该先装哪一个包。
  • 在安装一个新的软件包时,通常使用“-ivh”的组合选项,这样便于了解软件安装的过程信息,及时跟踪安装进度。
  • 若是使用新版本的软件包替换旧版本的软件包,只需将“-i”替换成“-U”即可。

2.1 升级安装包

命令使用格式
rpm [选项] RPM包文件
常用选项有
-i
-U
-F

2.2 卸载软件包

  • 卸载一个软件包时,主要使用“-e”选项。
命令的使用格式
rpm -e 软件名
例如:卸载已安装的 elinks软件
[root@localhost~]#rpm -e elinks

2.3 维护RPM数据库

  • 用于记录在Linux系统中安装,卸载,升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预。当RPM数据库发生损坏(误删文件,非法关机,病毒破坏等导致),且Linux系统无法自动完成修复时,当导致无法使用rpm命令正常的安装,卸载及查询软件包。这时候可以使用rpm命令的“–rebuilddb”或“–initdb”功能对RPM数据库进行重建。
例如
[root@localhost~]#rpm --rebuilddb
或者
[root@localhost~]#rpm --initdb

db的意思是数据库(database)
init的意思是初始化

三、源代码编译安装

3.1 源代码编译概述

  • 现代linux发行版本通常使用包管理机制对软件进行打包管理,省去了软件的编译安装过程,但是在有些情况下,仍然需要使用源代码编译的方式为系统安装新的应用程序:
    安装较新版本的应用程序时: 大多数的Linux发行版都提供了相当丰富的应用程序,而这些应用程序的版本往往滞后于该软件的最新源代码版本,所以下载应用程序的最新源代码包并编译安装,可以在程序功能,安全补丁等方面得到及时更新。
    当前安装的程序无法满足应用需求时: 对于RPM格式封装的应用程序,一般只包含了该软件所能实现的一小部分功能,而难以由用户自行修改,定制。通过对程序的源代码进行编译安装后,可以定制更灵活,更丰富的功能。许多Linux服务器程序都采用源代码编译的方式进行安装,以获得更适合于企业实际应用需求的服务。
    为应用添加新的功能时: 当需要利用现有的程序源代码进行适当的修改,以便增加新的功能时,必须释放出该软件的源代码,修改后再重新编译安装。

  • 使用源码安装的优点: 1、获得最新的软件版本,及时修复bug
    2、根据用户需要,灵活定制软件功能

  • 编译源代码需要有相应 的开发环境,对于自由软件来说,gcc和make是最佳的编译工具。Linux系统采用默认安装后没有安装gcc,我们可以使用rpm命令来安装gcc。所需的软件包在镜像文件中就有提供。

yum install gcc gcc-c++ -y

3.2 编译安装的基本过程

  • 1、下载源代码安装包文件,可以用wget+链接从网上下载到虚拟机,也可以从真机用传输到虚拟机。
  • 2、tar解压 : 解压并释放源代码包到指定的目录
  • 3、./configure配置:用途:设置安装目录、安装模块等选项
进入解压好的包:./configure --prefix=安装路径
  • 4、make编译: 用途:生成可执行的二进制文件
编译的过程主要是根据Makefile文件内的配置信息(若上一步的配置操作失败,将无法进行编译),将源代码文件进行编译而生成二进制的程序模块,动态链接库,可执行文件等。
配置完成后,只需要在源代码目录中执行“make”命令即可执行编译操作
  • 5、make install 安装:用途:复制二进制文件到系统,配置应用环境
编译完成后,就可以执行“make install”命令将软件的执行程序,配置文件,帮助文档等相关文件复制到Linux系统中了,也就是应用程序的最后“安装”过程。同样是在源代码目录中执行命令。

后面我将手动编译安装apache,来展示源代码安装的全过程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值