rpm 和 yum 详解

程序包管理:

内核功能:进程管理,内存管理,网络协议栈,驱动程序

应用程序:

(1)包管理器:打包,包管理(安装、升级、卸载、查询及校检)

种类主要分为两种:deb和rpm

1:程序包的组成部分

二进制程序:可执行的文件  文件在/bin /sbin /usr/bin /usr/sbin

库文件:程序运行依赖于库文件,也可实现供其他程序调用等功能 ,文件通常在/lib64  /usr/lib64

配置文件:纯文本文件,定义程序的特性  文件通常在 /etc

帮助文件:man手册、info文件 等

2:包管理器的功能:

制作程序包;安装程序包;卸载程序包;升级程序包;查询程序包;校检程序包(主要检测来源的合法性和完整性)

3:rpm包

命令格式:

源程序的命令格式:testapp-version.tar.gz

例:base-4.2.4.tar.gz

rpm包的命名格式:name-version-release.arch.rpm

例:  bash-4.2.4-1.el7.x86_64.rpm

注:其中version包含:主版本号major,次版本号minor,发行号release安装在哪种平台上面arch

分包机制:

rpm包可以分为两类包:核心包和支包。一个程序可能很多功能,但是其中可能有不少功能使用不上,

例:核心包testapp-version支包:testapp-devel-version

其他功能:包和包之间存在依赖的关系;rpm数据库在/var/lib/rpm/中

4:如何获取rpm包

1:发行版提供的程序包

http://mirrors.163.com

2:项目的官方站点

3:搜索引擎

http://rpmfind.net

4:EPEL

(CentOS识别光盘用的设备文件:/dev/cdrom)

[[email protected] mycdrom]# ls Packages | wc
   3205    3205  124269
[[email protected] mycdrom]#

(2)rpm程序管理包的使用

1:安装

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

常用选项:-ivh   安装并显示过程

--nodeps  忽略依赖关系安装  (可能导致程序无法使用)

--replacepkgs:重新安装程序包

例:

[[email protected] ~]# ll /tmp/mycdrom/
总用量 558
-r--r--r--. 2 root root     14 8月   5 05:25 CentOS_BuildTag
dr-xr-xr-x. 3 root root   2048 8月   5 05:40 EFI
-r--r--r--. 2 root root    212 11月 27 2013 EULA
-r--r--r--. 2 root root  18009 11月 27 2013 GPL
dr-xr-xr-x. 3 root root   2048 8月   5 05:50 images
dr-xr-xr-x. 2 root root   2048 8月   5 05:40 isolinux
dr-xr-xr-x. 2 root root 528384 8月   5 05:48 Packages
-r--r--r--. 2 root root   1354 7月  25 20:37 RELEASE-NOTES-en-US.html
dr-xr-xr-x. 2 root root   4096 8月   5 05:50 repodata
-r--r--r--. 2 root root   1706 11月 27 2013 RPM-GPG-KEY-CentOS-6
-r--r--r--. 2 root root   1730 11月 27 2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r--. 2 root root   1730 11月 27 2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r--. 2 root root   1734 11月 27 2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r--. 1 root root   3380 8月   5 05:50 TRANS.TBL
[[email protected] ~]# rpm -ivh zsh-4.3.11-4.el6.centos.x86_64.rpm
error: open of zsh-4.3.11-4.el6.centos.x86_64.rpm failed: 没有那个文件或目录
[[email protected] ~]# cd /tmp/mycdrom/Packages/
[[email protected] Packages]# rpm -ivh zsh-4.3.11-4.el6.centos.x86_64.rpm
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]
[[email protected] Packages]#
[[email protected] Packages]# rpm -ivh --test zsh-4.3.11-4.el6.centos.x86_64.rpm --replacepkgs
Preparing...                ########################################### [100%]
[[email protected] Packages]#

2:升级

格式:

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

如果有旧版程序包,则升级之;如果没有则安装之

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

如果有旧版程序包,则升级之,如果没有则不安装

命令选项:

--nodeps  忽略依赖关系

--oldpackage  降级

--force  强力升级

3:卸载

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

[--notriggers] [--test] PACKAGE_NAME ...

(卸载时,程序所依赖的程序会一同被卸载)

[email protected] ~]# rpm -q zsh
zsh-4.3.11-4.el6.centos.x86_64
[[email protected] ~]# rpm -e zsh-4.3.11-4.el6.centos.x86_64

[[email protected] ~]# 
[[email protected] ~]# rpm -q zsh
package zsh is not installed
[[email protected] ~]#

4:查询

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

命令选项:

-qa:查询本机所安装的所有程序包

-qf 【where】查询此处文件由哪个程序包安装生成

-qc:查询程序包安装成为的配置文件

-qd:查询程序包安装完成生产的文档

-ql:查询程序包安装所有文件的列表

-q --scripts:查询程序包相关的脚本:

preinstall: 安装前脚本

postinstall:安装后脚本

preuninstall: 卸载前脚本

postuninstall: 卸载后脚本

-p: 查询针对是未安装的程序包文件;

[[email protected] ~]# rpm -qa | wc -l
244
[[email protected] ~]# rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
[[email protected] ~]# rpm -qd bash
/usr/share/doc/bash-4.1.2/COPYING
/usr/share/info/bash.info.gz
/usr/share/man/man1/..1.gz
/usr/share/man/man1/:.1.gz
/usr/share/man/man1/[.1.gz
/usr/share/man/man1/alias.1.gz
/usr/share/man/man1/bash.1.gz
/usr/share/man/man1/bashbug.1.gz
/usr/share/man/man1/bg.1.gz
/usr/share/man/man1/bind.1.gz
/usr/share/man/man1/break.1.gz
/usr/share/man/man1/builtin.1.gz
/usr/share/man/man1/builtins.1.gz
/usr/share/man/man1/caller.1.gz
/usr/share/man/man1/cd.1.gz
/usr/share/man/man1/command.1.gz
/usr/share/man/man1/compgen.1.gz
/usr/share/man/man1/complete.1.gz
/usr/share/man/man1/compopt.1.gz
/usr/share/man/man1/continue.1.gz
/usr/share/man/man1/declare.1.gz
/usr/share/man/man1/dirs.1.gz
/usr/share/man/man1/disown.1.gz
/usr/share/man/man1/enable.1.gz
/usr/share/man/man1/eval.1.gz
/usr/share/man/man1/exec.1.gz
/usr/share/man/man1/exit.1.gz
/usr/share/man/man1/export.1.gz
/usr/share/man/man1/fc.1.gz
/usr/share/man/man1/fg.1.gz
/usr/share/man/man1/getopts.1.gz
/usr/share/man/man1/hash.1.gz
/usr/share/man/man1/help.1.gz
/usr/share/man/man1/history.1.gz
/usr/share/man/man1/jobs.1.gz
/usr/share/man/man1/let.1.gz
/usr/share/man/man1/local.1.gz
/usr/share/man/man1/logout.1.gz
/usr/share/man/man1/mapfile.1.gz
/usr/share/man/man1/popd.1.gz
/usr/share/man/man1/pushd.1.gz
/usr/share/man/man1/read.1.gz
/usr/share/man/man1/readonly.1.gz
/usr/share/man/man1/return.1.gz
/usr/share/man/man1/set.1.gz
/usr/share/man/man1/sh.1.gz
/usr/share/man/man1/shift.1.gz
/usr/share/man/man1/shopt.1.gz
/usr/share/man/man1/source.1.gz
/usr/share/man/man1/suspend.1.gz
/usr/share/man/man1/times.1.gz
/usr/share/man/man1/trap.1.gz
/usr/share/man/man1/type.1.gz
/usr/share/man/man1/typeset.1.gz
/usr/share/man/man1/ulimit.1.gz
/usr/share/man/man1/umask.1.gz
/usr/share/man/man1/unalias.1.gz
/usr/share/man/man1/unset.1.gz
/usr/share/man/man1/wait.1.gz
[[email protected] ~]# rpm -qi bash
Name        : bash                         Relocations: (not relocatable)
Version     : 4.1.2                             Vendor: CentOS
Release     : 33.el6                        Build Date: 2015年07月24日 星期五 02时58分07秒
Install Date: 2015年08月20日 星期四 17时29分50秒      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Shells     Source RPM: bash-4.1.2-33.el6.src.rpm
Size        : 3142151                          License: GPLv3+
Signature   : RSA/SHA1, 2015年07月25日 星期六 04时37分16秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.gnu.org/software/bash
Summary     : The GNU Bourne Again shell
Description :
The GNU Bourne Again shell (Bash) is a shell or command language
interpreter that is compatible with the Bourne shell (sh). Bash
incorporates useful features from the Korn shell (ksh) and the C shell
(csh). Most sh scripts can be run by bash without modification.
[[email protected] ~]#

5:校验

rpm {-V|--verify} [select-options] [verify-options]

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

6:检验包来源的合法性和完整性

包的完整性:单向加密

包的合法性:非对称加密

导入密钥:rpm --import /PATH/TO/KEY_FILE

校验:rpm -K /PATH/TO/RPM_FILE

(3)程序包的前段管理器:yum

1 :文件服务器,通过yum所支持的文件共享机制,将个rpm包通过文件服务共享

文件服务器: ftp://hostname/PATH/TO/REPO

http://hostname/PATH/TO/REPO

file:///PATH/TO/REPO

repository:仓库

2:yum程序的配置文件

/etc/yum.conf

定义全局配置,对所有仓库适用的配置

/etc/yum.repos.d/*.repo

一个文件通常用于一个或一组功能相近相关的仓库

定义一个仓库指向

【repo_ID】

name=仓库所描述的信息

baseurl=仓库的访问路径

enabled=1|0

gpgcheck=1|0

gpgkey=公钥文件

cost=定义仓库的开销(作用次序)

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# ll
总用量 24
-rw-r--r--. 1 root root 1991 8月   4 00:13 CentOS-Base.repo
-rw-r--r--. 1 root root  647 8月   4 00:13 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  289 8月   4 00:13 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 8月   4 00:13 CentOS-Media.repo
-rw-r--r--. 1 root root 6259 8月   4 00:13 CentOS-Vault.repo

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

定义仓库可使用变量:

$releasever:引用当前系统的主版本号

$basearch:当前系统的基本架构

i386, i486, i586, i686: i386

例:http://mirrors.magedu.com/CentOS/$releasever/os/$basearch

3: yum命令的使用

格式:  yum [options] [command] [package ...]

安装:install

卸载:remove

升级:update

查询:info  ;  search keyword  ;list all   ;provides where   查询指定文件由哪个安装包安装

重新安装:reinstall

降级:downgrade

清理缓存:clean all

生成缓存:makecache

包组管理:

grouplist 列出所有的包组

groupinfo  显示包组信息

groupinstall  安装指定包组

groupmove 卸载包组

[[email protected] yum.repos.d]# yum install zsh
已加载插件:fastestmirror
设置安装进程
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.pubyun.com
 * updates: mirrors.aliyun.com
解决依赖关系
--> 执行事务检查
---> Package zsh.x86_64 0:4.3.11-4.el6.centos will be 安装
--> 完成依赖关系计算

依赖关系解决

===================================================================================================
 软件包            架构                 版本                              仓库                大小
===================================================================================================
正在安装:
 zsh               x86_64               4.3.11-4.el6.centos               base               2.2 M

事务概要
===================================================================================================
Install       1 Package(s)

总下载量:2.2 M
Installed size: 5.0 M
确定吗?[y/N]:y
下载软件包:
zsh-4.3.11-4.el6.centos.x86_64.rpm                                          | 2.2 MB     00:02     
运行 rpm_check_debug 
执行事务测试
事务测试成功
执行事务
  正在安装   : zsh-4.3.11-4.el6.centos.x86_64                                                  1/1 
  Verifying  : zsh-4.3.11-4.el6.centos.x86_64                                                  1/1 

已安装:
  zsh.x86_64 0:4.3.11-4.el6.centos                                                                 

完毕!
[[email protected] yum.repos.d]# yum list zsh*
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.yun-idc.com
 * updates: mirrors.aliyun.com
已安装的软件包
zsh.x86_64                                   4.3.11-4.el6.centos                              @base
可安装的软件包
zsh-html.x86_64                              4.3.11-4.el6.centos                              base 
[[email protected] yum.repos.d]#

光盘当做本地仓库

[[email protected] yum.repos.d]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.pubyun.com
 * updates: mirrors.aliyun.com
仓库标识                                  仓库名称                                            状态
base                                      CentOS-6 - Base                                     6,575
extras                                    CentOS-6 - Extras                                      35
updates                                   CentOS-6 - Updates                                    298
repolist: 6,908
[[email protected] yum.repos.d]# mv CentOS-Base.repo CentOS-Base.backup
[[email protected] yum.repos.d]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
repolist: 0
[[email protected] yum.repos.d]# ll /tmp/mycdrom/
总用量 558
-r--r--r--. 2 root root     14 8月   5 05:25 CentOS_BuildTag
dr-xr-xr-x. 3 root root   2048 8月   5 05:40 EFI
-r--r--r--. 2 root root    212 11月 27 2013 EULA
-r--r--r--. 2 root root  18009 11月 27 2013 GPL
dr-xr-xr-x. 3 root root   2048 8月   5 05:50 images
dr-xr-xr-x. 2 root root   2048 8月   5 05:40 isolinux
dr-xr-xr-x. 2 root root 528384 8月   5 05:48 Packages
-r--r--r--. 2 root root   1354 7月  25 20:37 RELEASE-NOTES-en-US.html
dr-xr-xr-x. 2 root root   4096 8月   5 05:50 repodata
-r--r--r--. 2 root root   1706 11月 27 2013 RPM-GPG-KEY-CentOS-6
-r--r--r--. 2 root root   1730 11月 27 2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r--. 2 root root   1730 11月 27 2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r--. 2 root root   1734 11月 27 2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r--. 1 root root   3380 8月   5 05:50 TRANS.TBL
[[email protected] yum.repos.d]# vim
[[email protected] yum.repos.d]# vim local-iso-repo
时间: 2024-10-14 13:02:08

rpm 和 yum 详解的相关文章

linux rpm和yum详解

rpm 定义:包管理器 rpm程序包的组成部分: 二进制程序:/bin, /sbin,/ /usr/bin, /usr/sbin, 库文件:/lib64, /usr/lib64 配置文件:/etc 帮助文件:manual, info, 包文件名格式: bash-4.2.4-1.el7.x86_64.rpm 包文件名-版本号(4为主版本号,2为次版本号,4为包的版本号)-rpm包的版本号(1.el7)-系统架构(x86_64) 常用选项: -q 查询 -qa: 查询本机已经安装的所有程序包:   

linux中rpm 、yum详解

一.程序包的组成: 1.底层内核:进程管理.内存管理.网络协议栈.驱动程序等 2.应用程序 :各种应用 使大家更好的通过它完成工作. 二.一个合格的程序包包含以下内容: 1.二进制程序,通常在linux /bin./sbin./usr/bin. /usr/sbin等目录下. 2.库文件.通常在linux /lib./lib64./usr/lib./usr/lib64等目录下. 3.配置文件.一般存放在linux /etc目录下. 4.说明和帮助文档,Linux man 和 info文件中. 三.

Linux之YUM 详解

一.yum是什么        yum = Yellow dog Updater, Modified        主要功能是更方便的添加/删除/更新RPM包.        它能自动解决包的倚赖性问题.        它能便于管理大量系统的更新问题 二.yum 的运用格式及常用参数 yum [option] "包名" 有些记不住的包名 可以使用通配符* 来一次安装多个前端一直的软件包 -h,--help     显示帮助信息,并退出 -t,--tolerant  忍受发生的错误 -y

CentOs之yum详解及程序的编译安装

CentOs之yum详解 yum的地位:yum是rpm的前端管理工具,而且依赖于rpm.  yum仓库:yum repository,仓库里存储了众多rpm包,以及包的相关的元数据文件.yum仓库里会有个repodata目录存在. yum支持的文件服务器类型: ftp://  http:// file:///(本地服务器,例光盘)   /nfs:// 查看yum的信息: [[email protected]]# rpm -q yum ------查看yum命令的安装包是哪个 yum-3.4.3-

Linux 的yum详解

Linux 的yum详解: rpm包在安装过程中经常会出现一些依赖关系,这就是yum安装方式诞生的背景. YUM 全称yellowdog Update Modifier yum最大的好处就是一站式解决软件包的安装,可以自动安装所需依赖环境. yum的配置文件: /etc/yum.conf                              # 为所有仓库提供公共配置 /etc/yum.repos.d/*.repo      # 为仓库的指向提供配置 yum缓存地址: /var/cache/

linux命令之yum详解

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[opt

rpm的用法 详解

Linux rpm 命令参数使用详解[介绍和应用] RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序" rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. 常用命令组合: -ivh:安装显示安装进度--install--verbose--hash-Uvh:升级软件包--Updat

17、Linux软件包管理工具yum详解

yum介绍 yum客户端的使用 配置文件项作说明: 案例repo配置文件. 创建yum源命令(yum-config-manager) yum list相关命令 yum安装 yum更新和升级 yum查找和显示 yum删除程序 查看仓库 实战演练本地yum仓库(光盘) YUM内置变量 创建YUM仓库(http) yum介绍 yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安

linux基础--包管理工具yum详解

rpm常用命令 安装 -ivh:安装rpm包 --nodeps:忽略依赖关系强制安装 --replacepkg:无论软件包是否已被安装,都强行安装软件包 卸载 -e:卸载rpm包 --nodeps:忽略依赖关系强制卸载 升级 -Uvh:升级软件包--Update -Fvh:只有安装在系统上的包才会升级 --nodeps:忽略依赖关系升级 查询 -q:查看安装包名称 -qa:查看是否安装指定rpm包 -qf:查找指定文件属于哪个RPM软件包 -qi:查看安装包的详细信息 -qc:查看安装包的配置文