rpm管理

系统上rpm命令管理程序包:
安装、卸载、升级、查询、校验、数据库维护

安装:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
-v: verbose
-vv:
-h: 以#显示程序包管理执行进度;每个#表示2%的进度

rpm -ivh PACKAGE_FILE ...

[install-options]
--test: 测试安装,但不真正执行安装过程;dry run模式;
--nodeps:忽略依赖关系;
--replacepkgs: 重新安装;

--nosignature: 不检查来源合法性;
--nodigest:不检查包完整性;

--noscipts:不执行程序包脚本片断;
%pre: 安装前脚本; --nopre
%post: 安装后脚本; --nopost
%preun: 卸载前脚本; --nopreun
%postun: 卸载后脚本; --nopostun

升级:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

upgrage:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”;
freeshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作;

rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...

--oldpackage:降级;
--force: 强行升级;

注意:(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此,对直接安装新版本内核;
(2) 如果原程序包的配置文件安装后曾被修改,长级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留;

查询:
rpm {-q|--query} [select-options] [query-options]

[select-options]
-a: 所有包
-f: 查看指定的文件由哪个程序包安装生成

-p /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件做查询操作;

--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供;
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;

[query-options]
--changelog:查询rpm包的changlog
-c: 查询程序的配置文件
-d: 查询程序的文档
-i: information
-l: 查看指定的程序包安装后生成的所有文件;
--scripts:程序包自带的脚本片断
-R: 查询指定的程序包所依赖的CAPABILITY;
--provides: 列出指定程序包所提供的CAPABILITY;

用法:
-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, ...
-qa

卸载:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
[--notriggers] [--test] PACKAGE_NAME ...

校验:
rpm {-V|--verify} [select-options] [verify-options]

S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ

包来源合法性验正及完整性验正:
完整性验正:SHA256
来源合法性验正:RSA

公钥加密:
对称加密:加密、解密使用同一密钥;
非对称加密:密钥是成对儿的,
public key: 公钥,公开所有人
secret key: 私钥, 不能公开

导入所需要公钥:
rpm --import /PATH/FROM/GPG-PUBKEY-FILE

CentOS 7发行版光盘提供的密钥文件:RPM-GPG-KEY-CentOS-7

数据库重建:
rpm {--initdb|--rebuilddb}
initdb: 初始化
如果事先不存在数据库,则新建之;否则,不执行任何操作;

rebuilddb:重建
无论当前存在与否,直接重新创建数据库;

回顾:Linux程序包管理的实现、rpm包管理器

rpm命令实现程序管理:
安装:-ivh, --nodeps, --replacepkgs
卸载:-e, --nodeps
升级:-Uvh, -Fvh, --nodeps, --oldpackage
查询:-q, -qa, -qf, -qi, -qd, -qc, -q --scripts, -q --changlog, -q --provides, -q --requires
校验:-V

导入GPG密钥:--import, -K, --nodigest, --nosignature
数据库重建:--initdb, --rebuilddb

时间: 2024-07-28 18:46:42

rpm管理的相关文章

Linux RPM管理

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序" rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名.在Fedora .Redhat.Mandriva.SuSE.YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用: 一个RPM 包中的应用程序,有时除

rpm管理软件包,以及源码安装详解

一.RPM包的管理    www.2cto.com rpm软件包的一个例子: sudo-1.7.4p5-11.el6.i686.rpm 其中包括软件名(sudo),版本号(1.7.4p5),发行号(11.el6)和硬件平台(i686) 1.卸载 [[email protected] ~]# rpm -e sudo 如果其它软件包有依赖关系,卸载时会产生提示信息,可以使用--nodeps强行卸载 [[email protected] ~]# rpm -e --nodeps samba 2.安装 光

RPM管理工具

RPM简介: RPM全称为RedHat Package Manager,是由红帽公司借鉴SUSE发展起来的软件管理机制. RPM特点: RPM是通过实现编译并且打包成为RPM文件后再进行安装的.RPM存在一个特性:当要以RPM安装软件的,RPM会检查在Linux数据库上是否已经安装了那些相互依赖的程序,如果数据库显示依赖的软件有缺省,那么便不能安装.需要解决包的依赖关系,那么rpm文件就可以被安装到linux系统上了.安装完成后相关的信息会被写入 /var/lib/rpm rpm包的命名格式:

RPM管理,计划任务与性能监控

=========== RPM 软件包管理: 相关命令: rpm -ivh 软件包名称 rpm -e 软件包名称     rpm -U 软件名称 软件包信息查询: 相关命令: rpm -q 查询指定软件包是否已经安装 -qa 查询系统中已经安装的所有软件 -qi 查询指定安装软件包的详细信息    -ql 查询指定软件的安装路径与文件列表    -qc 查询指定软件的配置文件 -qf 查询指定文件为哪个软件所安装          -qp 查询某个尚未安装的软件包的详细信息 ==========

rpm管理环境包和代码包

Author: JinDate: 20140610System: CentOS release 6.5 (Final) 06-09-2014c零:问题配置文件问题,不打包使用的配置文件参考配置文件后缀.default 有个不替换操作 %config(noreplace) %{etcdir}/%{configfile} 新的安装为 /usr/local/redis/etc/redis.conf.rpmnew版本号更改: :%s/2.8.7/2.8.10/g 一般软件,游戏代码使用另外的 一.基本流

rpm程序包管理器详解

1. 程序包管理器的功能 我们知道,由程序员编写并提供的程序源代码要转换成目标二进制格式才能在计算机上运行起来,但用户要在平台上使用时需要手动编译安装后才能使用,对于普通用户来说有一定难度.因此为了降低普通用户对应用程序的使用难度,程序员可在提供源代码的同时提供已在特定环境下编译好的程序文件,只要用户的平台环境和程序员的平台环境相同,就可以通过解压程序员提供的二进制格式文件即可使用,而无需自己手动编译安装. 一个已编译好的程序由二进制程序.库文件.配置文件和帮助手册等组成,而程序包管理器的功能就

linux程序包管理 rpm yum 编译

rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE] 安装:-i, --install 升级:-U, --update, -F, --freshen 卸载:-e, --erase 查询:-q, --query 校验:-V, --verify 数据库维护:--builddb, --initdb 安装:rpm {-i|--install} [install-options] PACKAGE_FILE ... rpm  -ivh  PACKAGE_FILE ... GENERAL

学习日志---linuxの RPM软件包管理器

rpm包的使用: rpm包命名格式: 源程序:name-version.tar.{gz|bz2|xz}  打包在一起的源码 version: major.minor.release rpm包:name-version-release.arch.rpm  这是打包好的二进制程序了 release:通常包含rpm的制作发行号,还包含适用的OS arch:这个是适用于哪种硬件架构,还有位数 例子:bash-4.3.2-2.el6.x86_64.rpm OS平台: el6: redhat enterpr

Linux程序包管理之RPM

一.RPM的简介 由于程序源代码到可被计算机识别并运行的指令是需要多步骤处理的:程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接. 这里以C,C++为例做为说明.程序员写完C,C++源代码后需要把源代码进行预处理,即通过预处理器把源代码分割或处理成为特定的符号用来支持宏调用.预处理后进一步通过编译器(gcc)编译为目标代码(object code),它由接近于机器语言的代码组成.目标代码通过编译器编译后才能生成可供CPU识别的机器代码.机器指令.由于C,C++在