首页 > 代码库 > Linux程序包管理之RPM、YUM

Linux程序包管理之RPM、YUM

RPM

简介

     RPM:redhat package manager, RPM is Package Manager;是红帽公司研发的一种包管理器

其功能主要有安装、卸载、查询、升级和校验;由此,下面对其功能做详细介绍:

1.1 发行号;

在介绍其功能之前,先看一下其发行号的

eg:bash-4.3.2-1.x86_64.rpm

name(包名)-Major(主版本号).Minor(次版本号).Release(发行号)-release.arch(适用硬件平台).rpm

注意:-release,rpm包自己的发行号,与源代码的发行号无关;仅用于标识对rpm自身的修订


1.2安装;

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


rpm -ivh [install-options] PACKAGE_FILE

i:install

        v:安装过程详细程度,想再详细,则-vv,-vvv,...

        h:hash,显示安装包进度条,#显示

[install-options]:

--replacepkgs:重新安装

--nodeps: 忽略依赖关系

--test: 测试安装,而不执行真正的安装过程;


1.3卸载

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

rpm -e PACKAGE_NAME ...

--nodeps: 忽略依赖关系

-test: 卸载测试

注意:如果包的配置文件安装后曾被改动过,卸载时,此文件将不会删除,而是被重命名(原文件加.rpmsave后缀)并保留;


1.4升级

用较高版本程序包替换安装原有较老的程序包的过程

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

         如果有较旧版本程序包,则升级安装;否则,则执行安装操作;

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

         如果有较旧版本程序包,则升级安装;否则,中止;

          rpm -Uvh [install-options] PACKAGE_FILE ...

         rpm -Fvh

          [install-options]

  --oldpackage:降级安装;

  --force: 忽略冲突,强制执行过程;


注意:不要对内核包执行升级操作;linux支持多版本内核并存,因此,对新版本内核可直接安装;如果原程序包的配置文件安装后曾被改动,升级时,新版本的文件并不会直接覆盖老版本的文件,而是把新版本的文件重命(加后缀.rpmnew)名后保留;


1.5查询


检查某包是否已经安装,或检查安装的所有包

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

      [select-options]:

      1、查询某包是否安装:

       rpm -q PACKAGE_NAME ...

      2、查询已安装的所有包:

       rpm -qa 

      3、查询某文件是由哪个包安装生成:

       rpm -qf /path/to/somefile

      4、查询尚未安装包的相关信息:

rpm -qpl PACKAGE_FILE

rpm -qpi PACKAGE_FILE


1.6校验

   目的:检查包安装之后生成的文件是否发生了改变

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

   常用用法:rpm -V PACKAGE_NAME


      S file Size differs                                                                     文件大小改变

      M Mode differs (includes permissions and file type)             模式改变(包括许可和文件类型)

      5 digest (formerly MD5 sum) differs                                       MD5校验和不一致

      D Device major/minor number mismatch                               主次设备号不匹配

      L readLink(2) path mismatch                                                   readLink(2)路径不匹配

      U User ownership differs                                                         属主不一样

      G Group ownership differs                                                      属组不一样

      T mTime differs                                                                       修改时间不一样

      P caPabilities differ                                                                  包提供功能改变


1.7包来源合法性及完整性验正:

rpm --import PUBKEY ...

rpm {-K|--checksig} [--nosignature] [--nodigest] PACKAGE_FILE ...

--nosignature: 不检查来源合法性

--nodigest: 不检查完整性


1.8公共数据库:/var/lib/rpm

重建数据库

rpm {--initdb|--rebuilddb}

初始化:--initdb

如果事先不存在数据,则会新之;否则,不执行任何操作

重新构建:--rebuilddb

无论当前是否已经存在数据库,都会直接重建并覆盖现有数据库;



YUM

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

其主要功能简介:

2.1安装:

yum install PACKAGE_NAME ... (不指定版本号则通常为yum仓库里面最新版本)     

yum install PACKAGE-VERSION (如果要安装指定的版本的程序)

yum reinstall PACKAGE_NAME ...(重装指定的程序包)

 

2.2升级:

yum update PACKAGE_NAME      (更新到最新版本)

yum update PACKAGE-VERSION  (  升级到指定版本)

yum downgrade PACKAGE_NAME (降级)

yum check-update       (检查可用升级)

        

2.3 卸载:

yum erase|remove PACKAGE_NAME  (删除卸载程序包)

注意:依赖于指定程序包的其它包,会被一并卸载;


2.4查询:

yum list  (列出所有包文件,可搭配grep查询软件包,如yum list | grep kernel)

yum repolist  (列出所有可用yum仓库)

yum info PACKAGE_NAME  (显示包详细信息,即使没有安装)

yum search KEYWORD  ( 根据关键字模糊查询包名或包的sumary信息包含此KEYWORD的相关列表;)

yum provides|whatprovides /path/to/somefile

2.5包组管理:

yum grouplist    (显示所有包组)

yum groupinfo "GROUP_NAME"     (显示指定包组的相关信息)

yum groupinstall "GROUP_NAME"       (安装包组-method1)       

yum install @GROUP_NAME       (安装包组-method2)

yum groupremove "GROUP_NAME"  (卸载包组-method1)

yum remove @"GROUP_NAME"   (卸载包组-method2)

yum groupupdate "GROUP_NAME"      (升级包组)

       

2.6yum安装本地rpm包文件:

yum localinstall /path/to/rpm_package_file ...  (适用CentOS7之前版本,如:CentOS6)

yum install /path/to/rpm_package_file ...   (适用CentOS 7)



2.7其他yum选项:

--enablerepo=       (启用指定的yum仓库)

--disablerepo=       (禁用某yum仓库)

注意:优先级高于/etc/yum.repos.d/*.repo配置文件中定义的属性;

-y: 自动回答为yes   (常用于想自动安装程序包)

--nogpgcheck         (忽略程序包校验)


更多信息请参考:https://access.redhat.com/search/browse/solutions#?&portal_language=zh_CN,en&portal_component=yum




本文出自 “正则表达式用法” 博客,请务必保留此出处http://burgess8909.blog.51cto.com/9607271/1587168

Linux程序包管理之RPM、YUM