rpm与yum详解

何为rpm,何为yum

rpm:RPM全称是Red Hat Package Manager(Red Hat包管理器)。几乎所有的Linux发行版本都使用这种形式的软件包管理安装、更新和卸载软件。rpm有五种基本的操作功能:安装、卸载、升级、查询和验证。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。可通过rpm -help获取使用帮助
yum: 是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。yum的关键之处是要有可靠的repository,即yum是软件的仓库,它包含rpm的header, header包括了rpm的各种信息,包括描述,功能,提供的文件,依赖性等,真是收集了这些header并加以分析,才能自动化地完成余下地任务。(yum可以自动的处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装)


使用rpm

获取包的途径
1.系统发行的光盘或发行版官方站点或官方镜像站点(以稳定为主,因此软件版本相对较老)
2.程序项目官方站点(版本相对较高)
3.第三方组织 例如 Fedora-EPEL: epel https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/ 等

安装
-i:安装
-v: 显示安装过程中的详细信息
-replacepkg:重新安装
-test: 测试安装,不会真正的执行安装操作

升级
-U:如果有较旧版本程序包, 则升级安装;否则执行安装操作
-F : 如果有较旧版本程序包,则升级安装;否则停止安装操作

卸载
rpm -e file --nodeps 忽略依赖性只删除当前的软件

查询
-qa: 查询所有已经安装的包
-qi: 显示包的简要信息
-ql: 显示包里的文件列表
-qc: 只显示包里的配置文件
-qd: 显示说明文档
-qf: 查看某个文件是由哪个包提供的(后跟文件的路径)
-qR: 查看包的依赖关系

包来源合法性及完整性的验证:
rpm -import PUBKEY... (导入公钥)
rpm -K package_file...(检测软件包来源合法性和完整性)
rpm日常用法
安装没有依赖包的软件,比如

查询一个软件的已安装的rpm包

查询已经安装的包组

rpm实际应用

若意外删除某文件,可以利用rpm2cpio来解开rpm包恢复文件

  1. 模拟文件意外丢失(删除文件)
  2. 查询文件来自于哪一个已安装的包
    ![]
  3. 挂载光盘
  4. 复制rpm到一个临时目录
  5. 进入临时目录并解开rpm包

  6. 从解开的目录里找到需要的文件并复制到相关的目录下

使用yum


yum客户端

定义: 存放了众多rpm包,以及包的相关元数据的为文件(repodata)
配置文件:
指向仓库的位置以及各种配置信息,每个yum客户端可以多个可用的yum仓库
主配置文件: /etc/yum.conf
子配置文件:/etc/yum.repos.d/*.repo
yum仓库配置

     [repo_id] 仓库id具有唯一性
     name=仓库名称  (可以不写,默认name为repo_id)
     baseurl= 仓库路径 例如:https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/ 等
     enabled=1|0 设置是否启用仓库,默认启用
     gpgcheck=1|0 设置是否启用gpg检查,默认启用
     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 配置gpgcheck路径

内置变量
$releasever 当前操作系统的发行主版本号
$arch 平台 i486,i586,i686
$basearch 基础平台i386, x86_64
yum命令
列出:
repolist 列出所有的可用仓库
list all|installed|available 列出全部/已安装的/有效的仓库
grouplist 列出所有可用的包组
安装
install 安装
reinstall 重新安装
缓存
clean all 清除所有缓存
makecache 生成缓存
升级
checkupdate 检查可用升级
update package_name 如果有多个版本的升级包可用,可以指定具体版本来升级
卸载
remove | earse package_name 依赖于指定程序的其他包也会被删除
查询
info 查询详细信息
search 根据关键字模糊查询包名
provides 查询文件由哪个软件包提供
命令历史
yum history (方便于执行undo,redo操作)
yum的日常用法
安装(自动解决软件的依赖问题,并且自动安装依赖的包)


查看一个文件属于哪个包,但是包并未安装

查看可用的仓库

安装包组(应用yum可以成组安装)

删除包组

清除缓存


源码包的安装

rpm和yum的安装,都是在存在rpm包的前提下,如果我们所要的安装的软件没有现有的rpm包,那么我们该如何安装,这个时候我们需要使用源码来安装,以安装httpd的源码包为例:

  1. 获取源码包
    可以通过官网下载源码,也可以通过局域的服务器来获取获取了httpd的源码包
  2. 安装Development Tools
  3. ./configure 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成Makefile,执行过程中还需要根据提示安装apr-devel,apr-util-devel.pcre-devel三个包

  4. make 根据Makefile文件,构建应用程序
  5. make install 复制文件到相应的路径

  6. 安装后的配置,将二进制目录导入至PATH环境变量中,即将/app/apache24/bin写入/etc/profile.d/*.sh下,然后执行。

  7. 启动服务,检查是否安装成功

转载于:https://blog.51cto.com/13866567/2153357

你可能感兴趣的:(rpm与yum详解)