rpm包管理、yum

博客:http://www.51aixue.cn/2017/05…

rpm包管理

安装

用法:rpm -ivh 包名1 包名2 … 【安装的时候多个包用空格隔开】

  • -i:install安装

  • -v:显示安装信息

  • -vv:显示更详细的安装信息

  • -h: hash,以#的个数显示安装进度,一个#代表2%的进度

  • –test:测试是否能安装

  • –replacepkgs:重新安装【重新安装或升级,原来的配置文件不会被覆盖,新安装的配置文件将会以.rpmnew为后缀的文件】

  • –nodeps:忽略依赖关系安装

  • –force:强制安装,当该应用的其他版本已存在,可以使用–force强制安装当前版本

[root@localhost ~]# rpm -ivh zsh-4.3.10-7.el6.i686.rpm 
warning: zsh-4.3.10-7.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY【没有校验包的合法性】
Preparing...                                                            (########################################### [100%]【准备进度】
   1:zsh                                                                (########################################### [100%]【安装进度】

【--test进行安装测试】
[root@localhost ~]# rpm -ivh php-mysql-5.3.3-38.el6.i686.rpm  --test  
warning: php-mysql-5.3.3-38.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
        php-common(x86-32) = 5.3.3-38.el6 is needed by php-mysql-5.3.3-38.el6.i686【依赖php-mysql-5.3.3-38.el6.i686包】
        php-pdo(x86-32) is needed by php-mysql-5.3.3-38.el6.i686【依赖】
        
【忽略依赖关系安装】          
[root@localhost ~]# rpm -ivh --nodeps php-mysql-5.3.3-38.el6.i686.rpm 
warning: php-mysql-5.3.3-38.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                                                            (########################################### [100%]
   1:php-mysql                                                          (########################################### [100%]

卸载

用法:rpm -e 包名【–erase的缩写】

  • -e:卸载

  • -nodeps:忽略依赖关系进行卸载

[root@localhost ~]# rpm -e zsh
[root@localhost ~]# rpm -e php-mysql

查询

rpm -q 包名,查询某单个包是否安装

rpm -qa ,查询所有的安装包,可以使用通配符【如rpm -qa php*】

rpm -qi 包名,查询包的描述信息

rpm -ql 包名,查询包安装之后在当前系统生成的文件列表

rpm -qf 文件名,查询某文件是那个包安装生成的

rpm -qd 包名,查询某个包安装后生成的帮助文档

rpm -qc 包名,查询某个安装包生成的配置文件

rpm -q –scripts 包名,查询包安装过程涉及到的一些脚本【preinstall:安装前执行的脚本;postinstall:安装后执行的脚本;preuninstall卸载前执行的脚本;postuninstall卸载后执行的脚本】

查询尚未安装的rpm包文件的信息【注意:未安装】:

rpm -qpl 包名 ,查询安装后生成的文件列表

rpm -qpi 包名 ,查询该包的描述信息

【rpm -q】
[root@localhost ~]# rpm -q zsh-4.3.10-7.el6.i686.rpm 
package zsh-4.3.10-7.el6.i686.rpm is not installed
【rpm -qa】
[root@localhost ~]# rpm -qa bash*
bash-4.1.2-29.el6.i686
【rpm -qi】
[root@localhost ~]# rpm -qi bash
Name        : bash                         Relocations: (not relocatable)【是否支持用户自定义安装路径】
Version     : 4.1.2                             Vendor: CentOS
Release     : 29.el6                        Build Date: 2014年10月16日 星期四 21时54分23秒
Install Date: 2017年04月16日 星期日 23时18分13秒      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Shells【功能相近的包分组】     Source RPM: bash-4.1.2-29.el6.src.rpm【源码的rpm包】
Size        : 3107746                          License: GPLv3+
Signature   : RSA/SHA1, 2014年10月18日 星期六 03时56分20秒, 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.

【查询未安装的】
[root@localhost ~]# ls
anaconda-ks.cfg     php-mysql-5.3.3-38.el6.i686.rpm  公共的  图片  音乐
install.log         read.sh                          模板    文档  桌面
install.log.syslog  zsh-4.3.10-7.el6.i686.rpm        视频    下载
[root@localhost ~]# rpm -qpi zsh-4.3.10-7.el6.i686.rpm 【该包还没安装】
warning: zsh-4.3.10-7.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Name        : zsh                          Relocations: (not relocatable)
Version     : 4.3.10                            Vendor: CentOS
Release     : 7.el6                         Build Date: 2013年11月25日 星期一 01时37分44秒
Install Date: (not installed)               Build Host: c6b9.bsys.dev.centos.org
Group       : System Environment/Shells     Source RPM: zsh-4.3.10-7.el6.src.rpm
Size        : 4777026                          License: BSD
Signature   : RSA/SHA1, 2013年11月25日 星期一 03时30分40秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://zsh.sunsite.dk/
Summary     : A powerful interactive shell
Description :
The zsh shell is a command interpreter usable as an interactive login
shell and as a shell script command processor.  Zsh resembles the ksh
shell (the Korn shell), but includes many enhancements.  Zsh supports
command line editing, built-in spelling correction, programmable
command completion, shell functions (with autoloading), a history
mechanism, and more.
[root@localhost ~]# 

升级

rpm -U:升级安装新版本【rpm -Uvh 包名】

rpm -F:在旧版本的基础上升级【rpm -Fvh 包名】

–nodeps:升级时忽略依赖关系

校验

rpm -V 包名,检查安装包安装后是否被改变过

  • 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

【安装好后做个小修改】
[root@localhost ~]# vi /usr/share/zsh/4.3.10/functions/_tpconfig
[root@localhost ~]# rpm -V zsh
【注】S.5....T.    /usr/share/zsh/4.3.10/functions/_tpconfig

检验来源合法及完整性

检验包完整性:通过单向加密机制(md5|sh1)

检验来源合法性:通过公钥加密机制(RSA)

用法:rpm -K 包名【-K的长选项是–checksig】

[root@localhost ~]# rpm -K zsh-4.3.10-7.el6.i686.rpm 
zsh-4.3.10-7.el6.i686.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#c105b9de) 【md5 NOT OK代表包不完整,原因是MISSING KEYS代表缺省公钥】
[root@localhost CentOS_6.6_Final]# ls【进入到光盘的挂载目录】
CentOS_BuildTag           repodata
EULA                      RPM-GPG-KEY-CentOS-6
GPL                       RPM-GPG-KEY-CentOS-Debug-6
images                    RPM-GPG-KEY-CentOS-Security-6
isolinux                  RPM-GPG-KEY-CentOS-Testing-6
Packages                  TRANS.TBL
RELEASE-NOTES-en-US.html
[root@localhost CentOS_6.6_Final]# rpm --import RPM-GPG-KEY-CentOS-6【导入公钥】
[root@localhost CentOS_6.6_Final]# cd ~
[root@localhost ~]# rpm -K zsh-4.3.10-7.el6.i686.rpm 
zsh-4.3.10-7.el6.i686.rpm: rsa sha1 (md5) pgp md5 OK【RSA,sha1都OK了】
[root@localhost ~]# rpm -K --nodigest zsh-4.3.10-7.el6.i686.rpm 【不检查完整性】
zsh-4.3.10-7.el6.i686.rpm: rsa (md5) pgp OK
[root@localhost ~]# rpm -K --nosignature zsh-4.3.10-7.el6.i686.rpm 【不检查来源合法性】       
zsh-4.3.10-7.el6.i686.rpm: sha1 md5 OK

重建

数据库路径:/var/lib/rpm/

rpm –initdb:初始化,如果数据库不存在新建该数据库

rpm –rebuilddb:重建,直接重建数据库覆盖原有的

[root@localhost ~]# ls -lh /var/lib/rpm
总用量 58M
-rw-r--r--. 1 root root 4.9M 5月   7 18:01 Basenames
-rw-r--r--. 1 root root  12K 4月  16 23:28 Conflictname
-rw-r--r--. 1 root root  24K 5月   7 18:37 __db.001
-rw-r--r--. 1 root root 184K 5月   7 18:37 __db.002
-rw-r--r--. 1 root root 1.3M 5月   7 18:37 __db.003
-rw-r--r--. 1 root root 480K 5月   7 18:37 __db.004
-rw-r--r--. 1 root root 1.1M 5月   7 18:01 Dirnames
-rw-r--r--. 1 root root 5.0M 5月   7 18:01 Filedigests
-rw-r--r--. 1 root root  20K 5月   7 18:29 Group
-rw-r--r--. 1 root root  20K 5月   7 18:29 Installtid
-rw-r--r--. 1 root root  48K 5月   7 18:29 Name
-rw-r--r--. 1 root root  24K 5月   7 14:44 Obsoletename
-rw-r--r--. 1 root root  45M 5月   7 18:29 Packages
-rw-r--r--. 1 root root 1.3M 5月   7 18:29 Providename
-rw-r--r--. 1 root root 668K 5月   7 18:29 Provideversion
-rw-r--r--. 1 root root  12K 5月   7 18:29 Pubkeys
-rw-r--r--. 1 root root 452K 5月   7 18:01 Requirename
-rw-r--r--. 1 root root 268K 5月   7 18:01 Requireversion
-rw-r--r--. 1 root root  92K 5月   7 18:01 Sha1header
-rw-r--r--. 1 root root  84K 5月   7 18:01 Sigmd5
-rw-r--r--. 1 root root  12K 4月  16 23:28 Triggername

yum

简介

当使用rpm安装的时候经常出现依赖关系,yum基于对rpm包的管理,它能根据rpm包的依赖关系,把依赖的那些包一同安装;yum是rpm的前端管理工具,它不能脱离rpm,并不是说有了yum就不用rpm了

既然它要安装依赖的包,所以它需要远程的服务器仓库,它基于C/S【客户端/服务器】架构。需要配置文件去指定一些配置

配置文件

配置文件包含仓库位置路径、缓存大小、缓存路径及相关各种配置信息;每个yum命令行可以指向多个仓库,仓库间可以有优先级等相关配置;它分为[main]公共配置文件和[repo]仓库配置文件

[mian]

[root@localhost ~]# cat /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever【缓存目录,后面的$basearch、$releasever是变量,不同的应用中进行相应的替换】
keepcache=0【删除缓存中已经安装的软件包,1表示不删除】
debuglevel=2
logfile=/var/log/yum.log
exactarch=1【表示服务器端的版本要和当前版本的rpm完全一致,0表示不限制】
obsoletes=1
gpgcheck=1【检验数据包的完整性及来源合法性】
plugins=1【是否支持yum使用插件】
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d【如果要配置你自己的仓库在下面直接添加配置或者在/etc/yum.repos.d下创建相应的.repo文件去配置】

配置自己的repo

各仓库的定义: /etc/yum.repos.d/*.repo (必须以repo结尾的文件才有效,每个repo文件中可以配置一至多个仓库)

  • [repositoryid]【仓库标识,必须是唯一的】

  • name=string【仓库名称,仓库的描述信息】

  • baseurl=仓库的访问路径【支持ftp,http,nfs,file】【file代表本地file:///】

  • enabled={0|1}【0表示不使用该仓库】

  • gpgcheck={0|1}【如果不写该字段,它会继承main中的配置】

  • gpgkey=公钥文件【可以在本地或服务器】

  • cost=1000【定义此仓库的开销,默认是1000,开销越低越被优先使用】

配置本地的yum仓库

【挂载光盘】

[root@localhost yum.repos.d]# mount /dev/cdrom  /media/CentOS_6.6_Final/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost yum.repos.d]# ls  /media/CentOS_6.6_Final/  
CentOS_BuildTag           repodata
EULA                      RPM-GPG-KEY-CentOS-6
GPL                       RPM-GPG-KEY-CentOS-Debug-6
images                    RPM-GPG-KEY-CentOS-Security-6
isolinux                  RPM-GPG-KEY-CentOS-Testing-6
Packages                  TRANS.TBL
RELEASE-NOTES-en-US.html

【删除原有的仓库,创建一个自己的仓库】

[root@localhost yum.repos.d]# ls
centos.repo
[root@localhost yum.repos.d]# cat centos.repo 
[base_1]【仓库名base_1】
name=CentOS6.6 i686 relase
baseurl=file:///media/CentOS_6.6_Final/
enabled=1
gpgcheck=1【启用校验,下面必须指定公钥】
gpgkey=file:///media/CentOS_6.6_Final/RPM-GPG-KEY-CentOS-6【公钥路径】

【安装示例】

[root@localhost yum.repos.d]# yum install zsh
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
解决依赖关系
--> 执行事务检查
---> Package zsh.i686 0:4.3.10-7.el6 will be 安装
--> 完成依赖关系计算

依赖关系解决

==========================================================================
 软件包       架构          版本                    仓库             大小
==========================================================================
正在安装:
 zsh          i686          4.3.10-7.el6            base_1          2.1 M

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

总下载量:2.1 M
Installed size: 4.6 M
确定吗?[y/N]:y
下载软件包:
运行 rpm_check_debug 
执行事务测试
事务测试成功
执行事务
  正在安装   : zsh-4.3.10-7.el6.i686                                  1/1 
  Verifying  : zsh-4.3.10-7.el6.i686                                  1/1 

已安装:
  zsh.i686 0:4.3.10-7.el6                                                 

完毕!

【查看缓存】

[root@localhost yum.repos.d]# 
[root@localhost yum.repos.d]# ls /var/cache/yum
i386
[root@localhost yum.repos.d]# ls /var/cache/yum/i386/
6
[root@localhost yum.repos.d]# ls /var/cache/yum/i386/6
base_1 timedhosts.txt
[root@localhost yum.repos.d]# ls /var/cache/yum/i386/6/base_1
58c6bae3c98b6582453b524f1d75cec03224efbf772fc398cc525f5e1c185e05-primary.sqlite
cachecookie
packages
repomd.xml

【配置自己的仓库的时候要先查看自己的OS平台el6,以及cpu架构i686】

[root@localhost yum.repos.d]# uname -a
Linux localhost.localdomain 2.6.32-504.el6.i686 #1 SMP Wed Oct 15 03:02:07 UTC 2014 i686 i686 i386 GNU/Linux

执行流程

看了例子后,执行流程就好理解了:第一次访问仓库时请求仓库服务器的元数据并下载到本地缓存目录中,然后检索下载安装包及其相关依赖包并进行安装,安装完成后最后再删除缓存目录中的这些安装包,保留元数据。之后再次下载安装包会先去仓库服务器查询元数据的校验码,并和本地元数据校验码进行比较,如果校验码相同,则直接忽略;如果不同就重新下载元数据并对本地缓存目录中的元数据进行覆盖,从而完成缓存有效性验证。【数据:程序包;元数据:repodata(请求的安装包及依赖包的名称、大小、版本、依赖关系等属性)】

yum的命令

仓库相关

repolist [all|enabled|disabled] 【列出当前yum所有可用仓库,yum repolist (等价于yum repolist enabled)】

[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
仓库标识                    仓库名称                                 状态
base_1                      CentOS6.6 i686 relase                    4,926【该仓库包的个数】
repolist: 4,926【总数】

缓存相关

clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]【清理yum缓存,包安装以后可以进行清理缓存】

yum makecache【yum缓存创建,makecache自动连接至每一个可用仓库,下载其元数据,将其创建为缓存】

程序包查看相关

yum list [ all | installed | availsble ]【列出rpm包】

yum info 包名 【列出包的描述信息】

yum grouplist【列出所有的包组】

yum groupinfo “包组名” 【显示该包组的信息】

yum info 包名 【列出包的描述信息】

[root@localhost yum.repos.d]# yum info zsh
已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
已安装的软件包
Name        : zsh
Arch        : i686
Version     : 4.3.10
Release     : 7.el6
Size        : 4.6 M
Repo        : installed
From repo   : base_1
Summary     : A powerful interactive shell
URL         : http://zsh.sunsite.dk/
License     : BSD
Description : The zsh shell is a command interpreter usable as an
            : interactive login shell and as a shell script command
            : processor.  Zsh resembles the ksh shell (the Korn shell),
            : but includes many enhancements.  Zsh supports command line
            : editing, built-in spelling correction, programmable command
            : completion, shell functions (with autoloading), a history
            : mechanism, and more.

yum grouplist【列出所有的包组】

[root@localhost yum.repos.d]# yum grouplist
已加载插件:fastestmirror, refresh-packagekit, security
设置组进程
Loading mirror speeds from cached hostfile
base_1/group_gz                                    | 214 kB     00:00 ... 
已安装的组:
   Java 平台
   NFS 文件服务器
   Perl 支持
   SNMP 支持
....
Installed Language Groups:
   不丹语支持 [dz]
   中文支持 [zh]
   乌尔都语支持 [ur]
   亚美尼亚语支持 [hy]
...

程序包安装相关

yum install 包名1 [包名2] […],支持多个包同时安装

yum reinstall 包名1 [包名2] […],程序包重新(覆盖)安装

yum update 包名1 [包名2] […],程序包升级【如果指定明确的版本号,就按照该版本号升级,否则就会自动升级到最新版】

yum downgrade 包名1 [包名2] […],程序包降级

yum check-update,检查程序包有哪些可用升级

卸载安装包相关

remove | erase 包名1 [包名2] […]【卸载安装包的依赖包会把安装包也卸载,但卸载安装包不会卸载其关联的依赖包】

[root@localhost yum.repos.d]# yum install php【安装php主包】
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
解决依赖关系
--> 执行事务检查
---> Package php.i686 0:5.3.3-38.el6 will be 安装
--> 处理依赖关系 php-common(x86-32) = 5.3.3-38.el6,它被软件包 php-5.3.3-38.el6.i686 需要
--> 处理依赖关系 php-cli(x86-32) = 5.3.3-38.el6,它被软件包 php-5.3.3-38.el6.i686 需要
--> 执行事务检查
---> Package php-cli.i686 0:5.3.3-38.el6 will be 安装
---> Package php-common.i686 0:5.3.3-38.el6 will be 安装
--> 完成依赖关系计算

依赖关系解决

==========================================================================
 软件包            架构        版本                   仓库           大小
==========================================================================
正在安装:
 php               i686        5.3.3-38.el6           base_1        1.1 M
为依赖而安装:【有两个依赖包】
 php-cli           i686        5.3.3-38.el6           base_1        2.2 M
 php-common        i686        5.3.3-38.el6           base_1        528 k

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

总下载量:3.9 M
Installed size: 13 M
确定吗?[y/N]:y
下载软件包:
--------------------------------------------------------------------------
总计                                       45 MB/s | 3.9 MB     00:00     
运行 rpm_check_debug 
执行事务测试
事务测试成功
执行事务
  正在安装   : php-common-5.3.3-38.el6.i686                           1/3 
  正在安装   : php-cli-5.3.3-38.el6.i686                              2/3 
  正在安装   : php-5.3.3-38.el6.i686                                  3/3 
  Verifying  : php-common-5.3.3-38.el6.i686                           1/3 
  Verifying  : php-5.3.3-38.el6.i686                                  2/3 
  Verifying  : php-cli-5.3.3-38.el6.i686                              3/3 

已安装:
  php.i686 0:5.3.3-38.el6                                                 

作为依赖被安装:
  php-cli.i686 0:5.3.3-38.el6        php-common.i686 0:5.3.3-38.el6       

完毕!
[root@localhost yum.repos.d]# yum remove php【卸载php主包】
已加载插件:fastestmirror, refresh-packagekit, security
设置移除进程
解决依赖关系
--> 执行事务检查
---> Package php.i686 0:5.3.3-38.el6 will be 删除
--> 完成依赖关系计算

依赖关系解决

==========================================================================
 软件包       架构          版本                   仓库              大小
==========================================================================
正在删除:【并没有依赖包】
 php          i686          5.3.3-38.el6           @base_1          3.3 M

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

Installed size: 3.3 M
确定吗?[y/N]:N
在用户的命令下退出
[root@localhost yum.repos.d]# yum remove php-cli【卸载依赖包】
已加载插件:fastestmirror, refresh-packagekit, security
设置移除进程
解决依赖关系
--> 执行事务检查
---> Package php-cli.i686 0:5.3.3-38.el6 will be 删除
--> 处理依赖关系 php-cli(x86-32) = 5.3.3-38.el6,它被软件包 php-5.3.3-38.el6.i686 需要
--> 执行事务检查
---> Package php.i686 0:5.3.3-38.el6 will be 删除
--> 完成依赖关系计算

依赖关系解决

==========================================================================
 软件包          架构         版本                  仓库             大小
==========================================================================
正在删除:【php主包也被卸载】
 php-cli         i686         5.3.3-38.el6          @base_1         6.3 M
为依赖而移除:
 php             i686         5.3.3-38.el6          @base_1         3.3 M

事务概要
==========================================================================
Remove        2 Package(s)

Installed size: 9.6 M
确定吗?[y/N]:N
在用户的命令下退出

程序(包|组)查询相关

yum search 关键字,例如:yum search mysql【搜索结果只要在程序包名称和描述信息包含mysql关键字就会被显示出来】

yum provides|whatprovides 包名|路径(/PATH/TO/SOMEFILE) 【查询指定文件由哪个程序包安装生成】

[root@localhost yum.repos.d]# yum provides /etc/passwd
已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
setup-2.8.14-20.el6_4.1.noarch : A set of system configuration and setup
                               : files
Repo        : base_1
匹配来自于:
Filename    : /etc/passwd



setup-2.8.14-20.el6_4.1.noarch : A set of system configuration and setup
                               : files
Repo        : installed
匹配来自于:
Other       : 提供依赖满足:/etc/passwd

管理整个包组

列出所有包组:grouplist

显示指定包组详情:groupinfo group1 […]

安装:groupinstall group1 [group2] […]【整个包组的所有rpm包都被安装,卸载升级同理】

卸载:groupremove group1 [group2] […]

升级:groupupdate group1 [group2] […]

注意:红帽7不支持groupinstall、groupremove和groupupdate,红帽6和7都可直接用install、remove或update来管理包组【方法为: install + @ + 包组名 ,如yum install @”Ruby 支持” 】

安装本地rpm包

yum install rpm包 【-–nogpgcheck: 禁止做包校验】

yum --nogpgcheck install rpm包 或者 yum install rpm包 --nogpgcheck,
但是不能 
yum install --nogpgcheck rpm包【这样被当作包名】

yum配置文件中的四个宏

用于保存当前平台的相信息;

(1) $raleasever: 当前OS发行版的主版本号;例如,对CentOS 6.6 x86_64,主版本号为6;

(2) $arch:平台 如:i386, i486,i586

(3) $basearch: 基础平台, 例如i686, i586, i486以及i386的基础平台同为i386;

(4) $YUM0-$YUM9

类比php中的$_SERVER[“HTTP_CLIENT_IP”]

[root@localhost yum.repos.d]# cat  /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever【$_SERVER["HTTP_CLIENT_IP"],根据不同的环境进行不同的赋值给变量】
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

python可以打印出这几个变量

[root@localhost yum.repos.d]# python
Python 2.6.6 (r266:84292, Jan 22 2014, 09:37:14) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yum,pprint
>>> yb = yum.YumBase()
>>> pprint.pprint(yb.conf.yumvar,width=1)
{'arch': 'i686',
 'basearch': 'i386',
 'infra': 'stock',
 'releasever': '6',
 'uuid': 'ca2cc53f-9ef1-4927-85b2-f675082a5e2f'}
>>> quit()
    原文作者:Big_fat_cat
    原文地址: https://segmentfault.com/a/1190000009324222
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞