Linux之rpm包管理

rpm包管理



注意:内核不推荐升级,如果需要新版内核,可进行安装,linux可多版本内核共存,启动时进行内核选择即可,以免造成不稳定因素。
/var/lib/rpm 不要破坏,几乎不可重建,重建后数据也没有

主要掌握:
rpm -qa "vsft*" 查询vsft开头的包
rpm -e vsftpd 卸载
rpm -q vsftpd &> /dev/null | rpm -i /media/Packages/vsftpd- 安装
rpm -ql tree:查询包内文件
rpm -qf /bin/cat:查询包来自哪个文件
rpm -qi tree:查看包信息
rpm2cpio /media/Packages/tree-1.6.0-10.el7.x86_64.rpm | cpio -tv 预览包内容
rpm -q --scripts postfix
rpm -ivh https://aliyun.os 可以走网络路径安装软件包
rpm -qpi /media/Packages/tree-1.6.0-10.el7.x86_64.rpm 在软件没安装的情况下,进到光盘内查询包信息。
rpm -qc bash : 列出包内配置文件。
rpm -rR bash:查询bash以来于哪些包
rpm -V tree:查看tree属性是否被修改过。
rpm --import /media/RPM-GPG-KEY-CentOS-7 导入公钥
rpm -e gpg-pubkey-f4a80eb5 卸载公钥
rpm -K /media/Packages/tree-1.6.0-10.el7.x86_64.rpm 验证包合法性



rpm {-i|--install} [install-options] PACKAGE_FILE…

-v: verbose
-vv:
-h: 以#显示程序包管理执行进度
rpm -ivh PACKAGE_FILE ...

[install-options]

--test: 测试安装,但不真正执行安装,即dry run模式
--nodeps:忽略依赖关系
--replacepkgs | replacefiles
--nosignature: 不检查来源合法性
--nodigest:不检查包完整性
--noscripts:不执行程序包脚本
%pre: 安装前脚本 --nopre
%post: 安装后脚本 --nopost
%preun: 卸载前脚本 --nopreun
%postun: 卸载后脚本 --nopostun

rpm包升级

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

-------upgrade:安装有旧版程序包,则“升级”
如果不存在旧版程序包,则“安装”
--------freshen:安装有旧版程序包,则“升级”
如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...

--oldpackage:降级
--force: 强制安装

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

-a:所有包
-f:查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作
--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
rpm2cpio 包文件|cpio –itv 预览包内文件
rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件

[query-options]

--changelog:查询rpm包的changelog
-c:查询程序的配置文件
-d:查询程序的文档
-i:information
-l:查看指定的程序包安装后生成的所有文件
--scripts:程序包自带的脚本
--provides:列出指定程序包所提供的CAPABILITY
-R:查询指定的程序包所依赖的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 ...

当包卸载时,对应的配置文件不会删除, 以FILENAME.rpmsave形式保留

包校验
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

导入所需要公钥

rpm -K|checksig rpmfile 检查包的完整性和签名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7
rpm -qa “gpg-pubkey*”

原文地址:https://blog.51cto.com/5033330/2367559

时间: 2024-08-05 08:38:39

Linux之rpm包管理的相关文章

Linux的rpm包管理

我们都知道,windows的程序无法直接在linux中运行,windows中大量的木马和病毒也无法被linux识别,所有的软件包都必须针对linux再做单独的开发. 软件包分类 源码包 (把源代码直接开放的包) 脚本安装包(源码包写一个安装界面,不需要手动安装) 二进制包(RPM包.系统默认包) 源码包的优点: 1.开源,如果有足够的能力,可以修改源代码 2.可以自由选择所需的功能 3.软件是编译安装,所以更加适合自己的系统,更加的稳定也效率更高 4.卸载方便 缺点: 1.安装步骤较多,尤其在安

Linux基本命令——RPM包管理工具

WHAT?什么是RPM? RPM是一种软件包格式,文件的扩展名为".rpm",其管理机制最早由Red Hat公司提示,后来随着版本升级,融入更多的优秀特性,先已成为众多Linu发行版中公认的软件包管理标准. WHY?为什么要使用它? RPM包管理器通过建立统一的文件数据库,对在Linux系统中安装.卸载.升级的各种.rpm软件包进行详细的记录,并能够自动分析软件包之间的依赖关系,保持各应用程序在一个协调.有序的整体环境中运行. WHERE?在哪里使用? 很多Linux主流的软件都有.r

Linux学习—rpm包管理

前言 在linux上,一个软件通常由二进制程序,库文件,配置文件和帮助文件组成.其中: 二进制程序一般都放在/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin和/usr/local/sbin这几个目录下边: 库文件都放在/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib和/usr/local/lib64这些目录下: 配置文件一般都是放在/etc这个目录下: 而最基本的man帮助文件则是放在/usr/share/man

Linux下RPM包管理

概述 一种用于互联网下载包的打包及安装工具,它包含在某些linux分发版中.它生成具有.RPM扩展名的文件.RPM是Redhat Package Manager(Redhat软件包管理工具)的缩写.这一文件格式虽然打上了Redhat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux.S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用.可以算是公认的行业标准了. RPM包的名称格式 apache-1.3.23-11.i386.rpm - “apache”:软件名

Linux中rpm包管理器

包全名: 1.操作的包是没有安装的软件包时,使用全名,而且要注意路径 2.例如:jdk-8u131-linux-x64.rpm包名: 1.操作的是已经安装好的软件包,使用包名,是搜索/var/lib/rpm/中的文件数据库 2.例如:jdk-8u131-linux-x64 1.安装 rpm -ivh jdk-8u131-linux-x64.rpm 参数:-ivh 说明:安装.显示信息.显示进度 备注: a.用rpm命令安装的时候,需要跟包全名 b.rpm安装过程中,可能会出现依赖的关系,不让你装

linux软件包管理——rpm包管理

软件运行环境API:Application Programming Interface 应用程序接口(应用程序和操作系统之间的接口) 凡是符合该api标准的应用程序都可以在支持该api的操作系统上编译通过 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接  静态编译:自身包含所有需要调用的库文件  动态编译:自身不包含,需要时调用共享库文件(.so文件)ABI:Application Binary Interface 应用程序二进制接口 规定了二进制文件的格式.

linux软件包管理之一(rpm包管理)

开场白 1.软件的安装卸载是很平常的事情,但是在linux上面却也这么的不简单.Linux的其中一个哲学思想就是 一个程序只做一件事,并且做好. 组合小程序来完成复杂任务.这样做有很多好处.但世界上的东西总是两面的,有得必有失.各个小程序之间往往会存在着复杂的依赖关系. 2.再往前走一步.软件最初的安装方式只有一种,那就是源代码编译安装,这种方式安装的软件更贴近本机的系统运行环境,但也更复杂.不仅要解决软件之间的依赖关系(所依赖的软件还要再编译安装),还要配置开发编译环境(可能会抓狂的),一切都

【Linux相识相知】rpm包管理

我们日常在使用Windows的时候,如果要安装某个软件,最简单的方法就是在程序包的官网直接下载软件包到本地,一般是以.exe或者.msi格式的文件,然后一直下一步下一步就能安装成功了,但是在使用linux的操作系统的时候也许不是这么的友好,即使现在有的linux发行版也可以通过简单的搜索点击安装来实现软件包的安装,但这并不一种很好的安装方法,因为你必须安装桌面环境,消耗和占用一定的内存资源,除非只是你日常使用.本次博客就如何使用rpm命令来实现centos上的软件包的安装与管理,rpm也许不是最

Linux程序包管理之rpm包管理

Linux程序包管理 软件包管理 功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序包的安装.升级.卸载.查询.校验.数据库维护. API:Application ProgramInterface应用程序接口: ABI:Application BinaryInterface应用二进制接口: Unix-like和linux在ABI层次是相同的 linux程序包:ELF格式: 但是与Windows相差甚远 windows程序包:exe,msi格式: API层次兼容不一定A