rpm包管理功能详解

CentOS系统上rpm命令管理程序包:

共有六个部分:安装、升级、卸载、查询和校验、数据库维护(查询是重中之重)

rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE]

安装:-i, --install

升级:-U, --update, -F, --freshen

卸载:-e, --erase

查询:-q, --query

校验:-V, --verify

数据库维护:--builddb, --initdb

1、安装:

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

rpm  -ivh  PACKAGE_FILE ...

GENERAL OPTIONS:

-v:verbose,详细信息

-vv:更详细的输出

[install-options]:

-h:hash marks输出进度条;每个#表示2%的进度;

--test:测试安装,检查并报告依赖关系及冲突消息等;

--nodeps:忽略依赖关系;不建议;

--replacepkgs:重新安装

--nosignature:不检查包签名信息,不检查来源合法性;

--nodigest:不检查包完整性信息;

操作:先将光盘挂载到/media/cdrom

/dev/sr0 on /media/cdrom type iso9660 (ro,relatime)
[[email protected] Packages]#  cd /media/cdrom/Packages/
[[email protected] Packages]# ll
、、、、
-r--r--r--. 2 root root   2488816 11月 26 00:07 zsh-5.0.2-14.el7.x86_64.rpm
-r--r--r--. 2 root root    472768 11月 26 00:07 zsh-html-5.0.2-14.el7.x86_64.rpm
-r--r--r--. 2 root root     83640 7月   4 2014 zziplib-0.13.62-5.el7.i686.rpm
-r--r--r--. 2 root root     83176 7月   4 2014 zziplib-0.13.62-5.el7.x86_64.rpm
-r--r--r--. 2 root root    140088 7月   4 2014 zziplib-devel-0.13.62-5.el7.i686.rpm
-r--r--r--. 2 root root    140092 7月   4 2014 zziplib-devel-0.13.62-5.el7.x86_64.rpm
-r--r--r--. 2 root root     35380 7月   4 2014 zziplib-utils-0.13.62-5.el7.x86_64.rpm
[[email protected] Packages]#

以zsh-5.0.2-14.el7.x86_64.rpm为例进行安装

[[email protected] Packages]# rpm -ivh zsh-5.0.2-14.el7.x86_64.rpm 
警告:zsh-5.0.2-14.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zsh-5.0.2-14.el7                 ################################# [100%]
[[email protected] Packages]#

安装完成! 检测 已有/bin/zsh 下图:

[[email protected] Packages]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
/bin/zsh
[[email protected] Packages]#

2、升级:

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

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

rpm  -Uvh PACKAGE_FILE ...升级或安装;

rpm  -Fvh PACKAGE_FILE ...升级

--oldpackage:降级;

--force:强制升级;

注意:(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核;

(2) 如果原程序包被改过,新程序包不会复盖改动过的程序包,而是新建一个.new结

尾的文件。

3、卸载:

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ..

--allmatches:卸载所有匹配指定名称的程序包的各版本;

--nodeps:忽略依赖关系

--test:测试卸载,dry run模式

[[email protected] Packages]# rpm -e zsh
[[email protected] Packages]#

卸载时,只需要输入zsh就可以了,因为安装程序中已有名字,直接删除就可以查找到文件

4、查询:

rpm {-q|--query} [select-options] [query-options]

[select-options]

PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;

-a, --all:查询所有已经安装过的包;

-f  FILE:查询指定的文件由哪个程序包安装生成;

-p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;

--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;

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

[query-options]

--changelog:查询rpm包的changlog;

-l, --list:程序安装生成的所有文件列表;

-i, --info:程序包相关的信息,版本号、大小、所属的包组,等;

-c, --configfiles:查询指定的程序包提供的配置文件;

-d, --docfiles:查询指定的程序包提供的文档;

--provides:列出指定的程序包提供的所有的CAPABILITY;

-R, --requires:查询指定的程序包的依赖关系;

--scripts:查看程序包自带的脚本片断;

总结用法:

-qi  PACKAGE(查询安装包的信息),

-qf FILE(查询文件由哪个包生成),

-qc PACKAGE(查询包的配置文件),

-ql PACKAGE(查询安装包的列表),

[[email protected] Packages]# rpm -ql zsh
/bin/zsh
/etc/skel/.zshrc

-qd PACKAGE(查询安装包的相关doc文档)

-qpi  PACKAGE_FILE(干跑模式下,查询安装包的相关信息),

-qpl PACKAGE_FILE(干跑模式下,查询已安装的包列表),

-qpc PACKAGE_FILE, (干跑模式下,查询安装包的配置文件)

5、校验:

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

比如修改一下其中的这个文件:

/usr/share/zsh/5.0.2/functions/zmv

[[email protected] Packages]# file /usr/share/zsh/5.0.2/functions/zmv
/usr/share/zsh/5.0.2/functions/zmv: ASCII text
[[email protected] Packages]# vim /usr/share/zsh/5.0.2/functions/zmv

# function zmv {
# zmv, zcp, zln:
#
# This is a multiple move based on zsh pattern matching.  To get the full
# power of it, you need a postgraduate degree in zsh.  However, simple
# tasks work OK, so if that‘s all you need, here are some basic examples:
#   zmv ‘(*).txt‘ ‘$1.lis‘

删除了一个空白行后

[[email protected] Packages]# vim /usr/share/zsh/5.0.2/functions/zmv

# function zmv {
# zmv, zcp, zln:
# This is a multiple move based on zsh pattern matching.  To get the full
# power of it, you need a postgraduate degree in zsh.  However, simple
# tasks work OK, so if that‘s all you need, here are some basic examples:

进行校验:

[[email protected] Packages]# rpm -V zsh
S.5....T.    /usr/share/zsh/5.0.2/functions/zmv
[[email protected] Packages]#

比对校验结果!

包来源合法性验正和完整性验正:

来源合法性验正:

完整性验正:

获取并导入信任的包制作者的密钥:

对于CentOS发行版来说:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

验正:

(1) 安装此组织签名的程序时,会自动执行验正;

(2) 手动验正:rpm -K PACKAGE_FILE

6、数据库重建:

rpm管理器数据库路径:/var/lib/rpm/

查询操作:通过此处的数据库进行;

获取帮助:

CentOS 6:man rpm

CentOS 7:man rpmdb

rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]

--initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操

--rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;

时间: 2024-10-15 01:41:24

rpm包管理功能详解的相关文章

rpm包管理功能全解

rpm包管理功能全解            linux rpm问题:怎样查看rpm安装包的安装路径                     rpm -qa l grep  xxxxxx.rpm                    rpm的命令:rpm  [OPTIONS]  [PACKAGE_FILE]            安装:-i, --install            升级:-U, --update, -F, --freshen            卸载:-e, --erase 

第17期马哥Linux学习之rpm包管理功能全解

RPM包管理器最早是由Red Hat公司研发的一款Linux上的程序包管理器,文件包的后缀名为".rpm".目前是GNU/Linux下软件包资源最丰富的软件包类型之一. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rpm包命名格式: name-VERSION-release.arch.rpm 包的名字-版本号-发行号.架构平台.rpm VERSION:major.min

RPM包管理工具详解

RPM是Red Hat 和centos下的一个软件包管理机制,可使用yum安装,自动解决依赖关系. dpkg是Ubuntu下的一个软件包管理的工具,可使用apt-get 安装软件包,自动解决依赖关系. RPM是以数据库记录的方式将软件安装到linux系统上的.官方站点:http://rpm.org/ SRPM(source rpm)  ,这个软件包含有源代码,提供了参数配置文件(configure和makefile) 扩展名是以  .src.rpm格式来命名的. RPM软件命名格式: 软件名-软

jdk5.0 新增的 Concurrent包主要功能详解

我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这 些依然没有JDK自带的功能使用起来方便.而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait(). notify()和synchronized等,每每需要考虑性能.死锁.公平性.资源管理以及如何避免线程安全性方面带来的危害等诸多因素,往往会采用 一些较为复杂的安全策略,加重了程序员的开发负担.万幸的是,在JDK1

rpm程序包管理器详解

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

使用RPM软件包管理命令详解

RPM软件包是各种Linux发行版本中应用较为广泛的软件包之一.RPM软件包以其强大的功能得到了多数Linux发行版本的支持和广大Linux使用者的爱护. RPM软件包管理机制最早是由 Red Hat公司提出的,后来随着版本的升级逐渐融入更多的优秀特性,称为众多Linux发行版中公认的软件包管理标准,官方站点https://www.rpm.org 使用RPM软件包管理器通过建立统一的文件数据库,对在Linux操作系统中安装.卸载.升级的各种.rpm软件包进行详细的记录,并能够自动分析软件包之间的

linux下rpm软件包管理命令详解

1.linux下软件的基本概念 程序需要用到的重要文件:配置文件,指令,库文件,帮助信息 /etc, /bin, /sbin, /lib,/usr/share/man 1.1.系统启动需用到的程序路径,必须在根文件系统的分区上 /etc, /bin, /sbin, /lib,/usr/share/man 1.2.系统启动后需用到的操作作系统核心功能或必要功能程序路径 /etc,/usr/bin,/usr/sbin/,/usr/lib,/usr/share/man 1.3.用户安装的第三方程序所需

NPM 包管理工具详解,使用教程

NPM 包管理工具 1.1 定义:什么是 NPM NPM 全称 Node Package Manager,它是 JavaScript 的包管理工具, 并且是 Node.js 平台的默认包管理工具.通过NPM 可以安装.共享.分发代码,管理项目依赖关系. 可从NPM服务器下载别人编写的第三方包到本地使用. 可从NPM服务器下载并安装别人编写的命令行程序到本地使用. 可将自己编写的包或命令行程序上传到NPM服务器供别人使用. 其实我们可以把 NPM 理解为前端的 Maven.我们通过 npm 可以很

fiddler抓包常用功能详解

一.基础部分: 1.设置代理ip及端口,tools --> telerik fiddler options --> connections -->勾选 " Allow romote computers to connect",端口修改成自己想要的端口号. 2.设置手机代理或浏览器代理,手机进入与fiddler相同局域网络WIFI --> 修改网络 --> 代理选择"手动" --> 输入ip.端口(浏览器设置代理不作描述). 二.f