Linux基础——程序包管理(rpm)
Posted super2279
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础——程序包管理(rpm)相关的知识,希望对你有一定的参考价值。
获取程序包的途径
1. 系统发行版的光盘或官方文件服务器
http://mirrors.aliyun.com
http://mirrors.163.com
http://mirrors.souhu.com
2. 项目的官方站点
3. 第三方组织
EPEL
搜索引擎
http://pkgs.org
http://rpmfind.net
http://rpm.phone.net
rpm命令管理
rpm [OPTIONS] PACKAGE_FILE|PACKAGE_NAME
PACKAGE_FILE: 包全名,例如httpd-2.4.6-88.el7.centos.src.rpm
PACKAGE_NAME: 包名,例如httpd
安装:rpm-ivh PACKAGE_FILE
-i:install 安装
-v:输出详细信息
-h:输出进度条,每个#表示2%的进度
一般在安装rpm包时,使用以上选项即可
特殊选项及用法:rpm -ivh [INSTALL-OPTIONS] PACKAGE_FILE
INSTALL-OPTIONS:
--test:测试安装,并非正真执行安装,作用为检查依赖关系及冲突消息等
--nodepts:忽略依赖关系,不建议使用,虽然忽略依赖可以安装成功,但是有可能不能使用
--replacepkgs:重新安装
--nosignature:忽略签名信息,及不检查包的来源合法性
--nodigest:忽略包的完整性,及不检查包的完整性
--noscripts:忽略脚本
注意:rpm在创建时,可以有四种类型的脚本文件,分别为
安装开始前运行的脚本文件:preinstall
安装完成后运行的脚本文件:postinstall
卸载开始前运行的脚本文件:preuninstall
卸载完成后运行的脚本文件:postuninstall
--noscripts:参数即为忽略以上全部四种脚本
--nopre:忽略preinstall脚本
--nopost:忽略postinstall脚本
--nopreun:忽略preuninstall脚本
--nopostun:忽略postuninstall脚本
升级:rpm -Uvh PACKAGE_FILE 升级并安装(如果之前没有安装,则之间进行安装)
rpm -Fvh PACKAGE_FILE 升级(必须针对之前已经完成安装的rpm包,如果之前没有安装,则不进行安装)
特殊选项及用法:rpm -Uvh|Fvh [UPGRADE-OPTIONS] PACKAGE_FILE
--oldpackage:降级
--force:强制升级
注意:(1)一定不要对内核进行升级,如果想使用新版内核,则直接安装即可(因为Linux支持多种内核版本共存)
(2)如果之前修改过配置文件,则升级后,配置文件并不会覆盖,而是任然保留原有已经修改过的文件,新安装的配置文件则会重命名后保存,重命名的格式为FILENAME.rmpnew
卸载:rpm -e PACKAGE_NAME(注意,此处为PACKAGE_NAME,并非PACKAGE_FILE)
特殊选项及用法:rpm -e [EARSE_OPTIONS] PACKAGE_NAME
--allmatches:卸载所有版本
--nodepts:忽略依赖关系(有些rpm包在卸载时,因为有依赖无法卸载,可以使用该选项直接卸载)
--test:测试卸载,并非正真卸载,DRY RUN模式(俗称“干跑”)
查询:rpm -q [SELECT-OPTIONS] [QUERY-OPTIONS]
[SELECT-OPTIONS]
PACKAGE_NAME:直接跟一个PACKEGE_NAME,可以查询该rpm包是否安装及其版本信息
-a:查询所有安装的rpm包
注意:当要查询一个rmp是否已安装时,一般使用rpm -qa | grep XXX
-f FILE_NAME:查询该文件由哪个rpm包安装时生成
-p PACKAGE_FILE:用于实现对未安装的rpm包执行查询操作
--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个rpm包提供
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个rpm包依赖
[QUERY-OPTIONS]
--changelog:查询rpm包的changelog
-l:安装时生成的所有文件列表
-i:rpm包的所有详细信息
-c:查询rpm包提供的配置文件
-d:查询rpm包提供的文档
--provides:列出该rpm包所能提供的所有CAPABILITY
-R:查询该rpm包的依赖关系
--scripts:查看rpm包自带的脚本文件
常用方法: rpm -ql PACKAGE_NAME
rpm -qf FILE_NAME
rpm -qc PACKAGE_NAME
rpm -qd PACKAGE_NAME
rpm -qpl PACKAGE_FILE
rpm -qpi PACKAGE_FILE
rpm -qpc PACKAGE_FILE
校验:rpm -V [SELECT-OPTIONS] [VERIFY-OPTIONS]
主要作用在于验证包的合法性和完整性
导入信任的包制作者的密钥,密钥的保存位置为光盘镜像种的RPM-GPG-KEY-XXX
rpm --import 密钥文件
导入完成后在执行安装操作的同时自动完成验证
如果手动验证,则使用rpm -K PACKAGE_FILE
数据库维护:rpm [DB-OPTIONS]
[DB-OPTIONS]
--initdb:初始化数据库
--rebuild:重新创建数据库
注意: rpm包的管理数据库路径为/var/lib/rpm/
数据库操作很危险,最好不要使用
以上是关于Linux基础——程序包管理(rpm)的主要内容,如果未能解决你的问题,请参考以下文章
2018-3-14Linux系统管理(12) Linux程序包管理yum前端管理工具