Linux系统程序包管理工具 RPM

什么是RPM

RPM全名是“RedHat Package Manager”,简称为RPM,这套软件管理机制是由RedHat这家公司发展而来的。RPM是以一种数据库记录的方式来将你所需要的软件安装到你的Linux系统的一套管理机制。其最大的特点就是将你要安装的软件先编译过,并且打包成为RPM机制的安装包,通过包装好的软件里面默认的数据库记录这个软件安装时必须具备的依赖属性软件,具备就安装、不具备就不予安装。

程序的组成部分

编译之前:源代码

编译文件

二进制程序:/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, /etc/DIR, /usr/local/{etc,conf}

帮助文件:/usr/share/man, /usr/share/doc

man手册:/usr/share/man, /usr/local/share/man

程序包命名格式

rp-pppoe -        3.1      -       5           .i386             .rpm

软件名称     软件的版本信息    发布的次数    适合的硬件平台      扩展名

目前的distributions在发布软件时,都会将软件的内容分为一般使用与开发使用两大类:而后者一般都不会安装,因为终端用户大部分不会去开发软件

pam-x x.rpm

pam-devel-x x.rpm

程序包获取方法

系统的发行光盘镜像或官方站点

挂载光盘:

mount -r /dev/cdrom /media/

官方站点

mirrors.sohu.com

mirrors.163.com

mirrors.aliyun.com

网址:

http://rpmfind.net

http://rpm.pbone.net

http://pkge.org

注意:安装之前要验证其合法性;

rmp使用方法

安装

-ivh:安装、显示安装过程、显示安装进度

#rpm -ivh zsh-5.0.2-14.el7.x86_64.rpm
准备中...          ################################# [100%]
正在升级/安装...
1:zsh-5.0.2-14.el7 ################################# [100%]

--nodeps:忽略依赖关系;副作用:安装成功但未必能运行成功

--replacepkgs:覆盖安装:重新安装并覆盖原有的文件

--force:强制安装

rpm -ivh --force zsh-5.0.2-14.el7.x86_64.rpm

升级:

    -Uvh:如果安装了老版本就升级,否则就安装

#rpm -Uvh zsh-5.0.2-14.el7.x86_64.rpm 
准备中...################################# [100%]
	 软件包 zsh-5.0.2-14.el7.x86_64 已经安装

-Fvh:如果安装了老版本就升级,否则就退出

    --oldpackage;降级到旧版本

--nodeps:忽略依赖关系

注意:一定不要对内核升级;linux允许多内核共存,所以可以安装多个不同版本内核

注意:如果程序包的配置文件安装后曾被修改,升级时,新版本的文件不会覆盖老版本的配置文件而把新版本的配置文件重命名(.rpmnew)后保存

卸载:

    -evh:卸载、并显示执行过程

    

--test:测试卸载

--allmatches:如果一个程序包同时安装多个版本,则此选项一次全部卸载

注意:如果程序包的配置文件安装后曾被修改,卸载时,此文件通常不会被删除,而是被重命名加后缀(.rpmsave)后留存

查询:

    -q:查询某包是否安装

#rpm -q zsh-5.0.2-14.el7.x86_64.rpm 
未安装软件包 zsh-5.0.2-14.el7.x86_64.rpm

-qa:查询已安装的所有包

#rpm -qa | grep "zsh"

    -qf:查询某文件由哪个包安装生成

#rpm -qf /etc/passwd
setup-2.8.71-5.el7.noarch

-qpi:查询尚未安装的包文件的相关信息

#rpm -qpi gcc-4.8.5-4.el7.x86_64.rpm
Name        : gcc
Version     : 4.8.5
Release     : 4.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Development/Languages
Size        : 39010978
License     : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
Signature   : RSA/SHA256, 2015年11月25日 星期三 22时30分54秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : gcc-4.8.5-4.el7.src.rpm
Build Date  : 2015年11月19日 星期四 23时01分53秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://gcc.gnu.org
Summary     : Various compilers (C, C++, Objective-C, Java, ...)
Description :
The gcc package contains the GNU Compiler Collection version 4.8.
You‘ll need this package in order to compile C code.

-ql:查询某包安装后生成了哪些文件列表

#rpm -ql zsh|less
/bin/zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc
/usr/lib64/zsh
/usr/lib64/zsh/5.0.2
/usr/lib64/zsh/5.0.2/zsh
/usr/lib64/zsh/5.0.2/zsh/attr.so
/usr/lib64/zsh/5.0.2/zsh/cap.so
...

-qc:查询某包安装后生成的配置文件路径

#rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc

-qd:查询某包安装后生成的所有帮助文件

#rpm -qd zsh
/usr/share/doc/zsh-5.0.2/BUGS
/usr/share/doc/zsh-5.0.2/CONTRIBUTORS
/usr/share/doc/zsh-5.0.2/FAQ
/usr/share/doc/zsh-5.0.2/FEATURES
/usr/share/doc/zsh-5.0.2/LICENCE
/usr/share/doc/zsh-5.0.2/MACHINES
/usr/share/doc/zsh-5.0.2/NEWS
/usr/share/doc/zsh-5.0.2/README
/usr/share/doc/zsh-5.0.2/completion-style-guide
/usr/share/doc/zsh-5.0.2/zsh-development-guide
/usr/share/doc/zsh-5.0.2/zshprompt.pl
...

-q --changelog:查看某包制作时随版本变化的changelog信息

* 五 8月 14 2015 Kamil Dudka <[email protected]> - 5.0.2-14
- fix alias handling in command substitution (#1253555)

* 四 7月 30 2015 Kamil Dudka <[email protected]> - 5.0.2-13
- fix parser regression introduced by the fix for bug #1241023

* 三 7月 08 2015 Kamil Dudka <[email protected]> - 5.0.2-12
- fix command substitutions to parse contents as they are read in (#1241023)

* 五 5月 22 2015 Kamil Dudka <[email protected]> - 5.0.2-11
- fix SIGSEGV of the syntax check in ksh emulation mode (#1222867)

* 一 5月 18 2015 Kamil Dudka <[email protected]> - 5.0.2-10
- signal safety when updating global state (#1163823)
...

    -q --provides 查询某包提供的capabilities

#rpm -q --provides zsh
config(zsh) = 5.0.2-14.el7
zsh = 5.0.2-14.el7
zsh(x86-64) = 5.0.2-14.el7

-q --requires:查询某包所依赖的capabilities

#rpm -q --requires zsh
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/bin/zsh
/sbin/install-info

-q --scripts:查询某包安装或卸载时执行的脚本

#rpm -q --scripts zsh
postinstall scriptlet (using /bin/sh):
if [ ! -f /etc/shells ] ; then
    echo "/bin/zsh" > /etc/shells
else
    grep -q "^/bin/zsh$" /etc/shells || echo "/bin/zsh" >> /etc/shells
fi

if [ -f /usr/share/info/zsh.info.gz ]; then
# This is needed so that --excludedocs works.
/sbin/install-info /usr/share/info/zsh.info.gz /usr/share/info/dir   --entry="* zsh: (zsh).			An enhanced bourne shell."
fi

:
preuninstall scriptlet (using /bin/sh):

脚本有四类:

preinstall:安装过程开始之前执行的脚本

postinstall:安装过程后执行的脚本

preuninstall:卸载前执行的脚本

postuninstall:卸载过程完成之后执行的脚本

时间: 2024-10-19 14:03:17

Linux系统程序包管理工具 RPM的相关文章

Linux下程序包管理工具RPM

实验环境: CentOS release 6.6 (Final)  一台 IP地址:172.16.249.230 RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:在CentOS .Redhat.Fedora .SuSE.YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用: 一.RPM程序包管理的用途: 1.可以安装.删除.升级和管理软件:当然也支持在线安装和升级软件:

CentOS系统程序包管理之---rpm、yum和编译

一.程序包管理器 1.软件的运行 2.程序包管理 将编译好的文件打包成一个或有限的几个文件,可用于实现便捷的安装.卸载.升级.查询,校验等程序管理. centos常用的程序管理器有rpm和yum 二.程序包管理器之RPM  1.rpm是什么    RPM 是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的.RPM包管理器(RPM)是一个强大的命令行驱动的包管理系统能够安装.卸载.验证.查询和更新计算机软

Linux系统程序包管理

Linux程序包管理 API:Application Program Interface ABI:Application Binary INnterface Unix-like,系统上的二级制格式的应用程序文件格式为 ELF Windows系统的二级制格式的应用程序文件格式为: exe,msi 库级别的虚拟化: Linux:WinE,可以实现在Linux系统上运行Windows的二进制可执行程序 Windows:Cywin,可以实现在Windows系统上运行Linux的位二进制可执行程序 各种编

Linux系统程序包管理---YUM

YUM 一. CentOS: yum, dnf 1.YUM: (Yellow dogUpdate Modifier),rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具 2.yum repository: yum repo 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata) 注意: repodata目录所在的位置就是仓库所指向的路径 3.文件服务器: ftp:// http:// file:///(本地的,默认是光盘)

Linux基础——程序包管理(rpm)

获取程序包的途径    1.    系统发行版的光盘或官方文件服务器        http://mirrors.aliyun.com         http://mirrors.163.com         http://mirrors.souhu.com    2.    项目的官方站点    3.    第三方组织         EPEL         搜索引擎            http://pkgs.org             http://rpmfind.net  

linux程序包管理之rpm程序包管理器与yum前端工具

这里主要讲以CentOS为例,rpm程序包管理器的相关内容: CentOS的程序包管理器:   1) 程序包的命名规则:        源代码包:            software_name-VERSION.tar.gz            VERSION:major.minor.release                major:主版本号,通常代表重大功能改进的版本分支:                minor:次版本号,通常代表在某个版本的分支中的某个功能发生变化:     

Linux程序包管理工具简介

一.Linux程序包管理器-RPM RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件.Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装.RPM 有五种操作模式,分别为:安装.卸载.升级.查询和验证. 1.RPM 安装操作 命令: rpm -i 需要安装的包文件名 例: rpm -i example.rpm 安装 example.rpm 包 rpm -iv example.rpm 安装

RPM(RPM Package Manager)程序包管理工具的常见使用方法

软件包有两种: 二进制格式的软件包和源码程序包. 如何选择适合自己的二进制格式的软件包? 1.根据CPU架构选择软件包 二进制格式的软件包就是已经把源程序转化为CPU所支持的指令集,它可以直接运行的.因为不同架构的CPU指令集不完全一样的.所以二进制格式的 软件包通常会标识适用于那种架构的CPU. CPU 常见平台arch:     1).Power  造价高.性能强劲     2).简化板的 PowerPC     3).UItraSparc     4).x86 功耗低,性能接近服务器级架构

linux之程序包管理器(rpm)

linux下的程序包可支持多种工具编写的,如C.C++.PERL等. 但是这种高级语言编写出来的代码是我们人能看懂的,但是计算机是看不懂的,那么计算机怎么执行,怎么了解人要它做什么呢? 这就需要我们做一些转换了,把人能读懂的语言让机器也能识别,这个过程就是由编译器完成的,通常是吧代码语言转换成二进制语言. 过程:预处理.编译.汇编.链接 一个程序的运行大部分时间是离不开库的. 什么是库呢?库也是一种程序,只不过与其他程序不同,库没有执行入口,不能独立运行,只能被其他独立运行的程序调用的时候才能执