rpm命令

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。


语法:

rpm(选项)(参数)


选项:

-a:查询所有套件;

-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;

-c:只列出组态配置文件,本参数需配合"-l"参数使用;

-d:只列出文本文件,本参数需配合"-l"参数使用;

-e<套件档>或--erase<套件档>:删除指定的套件;

-f<文件>+:查询拥有指定文件的套件;

-h或--hash:套件安装时列出标记;

-i:显示套件的相关信息;

-i<套件档>或--install<套件档>:安装指定的套件档;

-l:显示套件的文件列表;

-p<套件档>+:查询指定的RPM套件档;

-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;

-R:显示套件的关联性信息;

-s:显示文件状态,本参数需配合"-l"参数使用;

-U<套件档>或--upgrade<套件档>:升级指定的套件档;

-v:显示指令执行过程;

-vv:详细显示指令执行过程,便于排错。


RPM安装软件包

RPM软件包的下载地址有:

http://rpmfind.net

http://rpm.pbone.net

http://pkgs.org


[root@Feet tmp]# rpm -ivh python-2.7.5-16.el7.x86_64.rpm 


rpm与yum实现程序包的管理_Linux


   

rpm 安装时常用的选项与参数说明

可下达的选项

代表意义

--nodeps

使用时机:当发生软件属性相依问题而无法安装,但你执意安装时            
危险性: 软件会有相依性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性相依, 则可能会造成该软件的无法正常使用!

--replacefiles

使用时机: 如果在安装的过程当中出现了『某个文件已经被安装在你的系统上面』的资讯,又或许出现版本不合的信息 (confilcting files) 时,可以使用这个参数来直接覆盖文件。            
危险性: 覆盖的动作是无法复原的!所以,你必须要很清楚的知道被覆盖的文件是真的可以被覆盖喔!否则会欲哭无泪!

--replacepkgs

使用时机: 重新安装某个已经安装过的软件!如果你要安装一堆 RPM 软件文件时,可以使用 rpm -ivh *.rpm ,但若某些软件已经安装过了, 此时系统会出现『某软件已安装』的资讯,导致无法继续安装。此时可使用这个选项来重复安装喔!

--force

使用时机:这个参数其实就是 --replacefiles 与 --replacepkgs 的综合体!

--test

使用时机: 想要测试一下该软件是否可以被安装到使用者的 Linux 环境当中,可找出是否有属性相依的问题。范例为:            
rpm -ivh pkgname.i386.rpm --test

--justdb

使用时机: 由於 RPM 数据库破损或者是某些缘故产生错误时,可使用这个选项来升级软件在数据库内的相关资讯。

--nosignature

使用时机: 想要略过数码签章的检查时,可以使用这个选项。

--prefix 新路径

使用时机: 要将软件安装到其他非正规目录时。举例来说,你想要将某软件安装到 /usr/local 而非正规的 /bin, /etc 等目录, 就可以使用『 --prefix /usr/local 』来处理了。

--noscripts

使用时机:不想让该软件在安装过程中自行运行某些系统命令。            
说明: RPM 的优点除了可以将文件放置到定位之外,还可以自动运行一些前置作业的命令,例如数据库的初始化。 如果你不想要让 RPM 帮你自动运行这一类型的命令,就加上他吧!





RPM 升级

-Uvh

后面接的软件即使没有安装过,则系统将予以直接安装; 若后面接的软件有安装过旧版,则系统自动升级至新版;

-Fvh

如果后面接的软件并未安装到你的 Linux 系统上,则该软件不会被安装;亦即只有已安装至你 Linux 系统内的软件会被『升级』!


--oldpackage:降级


RPM 查询

[root@Feet tmp]# rpm -qa | grep python

rpm与yum实现程序包的管理_程序_02



RPM 卸载

[root@Feet tmp]# rpm --nodeps -e python

rpm与yum实现程序包的管理_Linux_03



============================================================


yum命令


软件包管理

yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。


语法:

yum [options] COMMAND


参数:

check 检查 RPM 数据库问题

check-update 检查是否有可用的软件包更新

clean 删除缓存数据

deplist 列出软件包的依赖关系

distribution-synchronization 已同步软件包到最新可用版本

downgrade 降级软件包

erase 从系统中移除一个或多个软件包

fs Creates filesystem snapshots, or lists/deletes current snapshots.

fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots.

groups 显示或使用、组信息

help 显示用法提示

history 显示或使用事务历史

info 显示关于软件包或组的详细信息

install 向系统中安装一个或多个软件包

langavailable Check available languages

langinfo List languages information

langinstall Install appropriate language packs for a language

langlist List installed languages

langremove Remove installed language packs for a language

list 列出一个或一组软件包

load-transaction 从文件名中加载一个已存事务

makecache 创建元数据缓存

provides 查找提供指定内容的软件包

reinstall 覆盖安装软件包

repo-pkgs 将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。

repolist 显示已配置的源

search 在软件包详细信息中搜索指定字符串

shell 运行交互式的 yum shell

swap Simple way to swap packages, instead of using shell

update 更新系统中的一个或多个软件包

update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system

updateinfo Acts on repository update information

upgrade 更新软件包同时考虑软件包取代关系

version 显示机器和/或可用的源版本。


选项:

-h, --help 显示此帮助消息并退出

-t, --tolerant 忽略错误

-C, --cacheonly 完全从系统缓存运行,不升级缓存

-c [config file], --config=[config file] 配置文件路径

-R [minutes], --randomwait=[minutes] 命令最长等待时间

-d [debug level], --debuglevel=[debug level] 调试输出级别

--showduplicates 在 list/search 命令下,显示源里重复的条目

-e [error level], --errorlevel=[error level] 错误输出级别

--rpmverbosity=[debug level name] RPM 调试输出级别

-q, --quiet 静默执行

-v, --verbose 详尽的操作过程

-y, --assumeyes 回答全部问题为是

--assumeno 回答全部问题为否

--version 显示 Yum 版本然后退出

--installroot=[path] 设置安装根目录

--enablerepo=[repo] 启用一个或多个软件源(支持通配符)

--disablerepo=[repo] 禁用一个或多个软件源(支持通配符)

-x [package], --exclude=[package] 采用全名或通配符排除软件包

--disableexcludes=[repo] 禁止从主配置,从源或者从任何位置排除

--disableincludes=[repo] disable includepkgs for a repo or for everything

--obsoletes 更新时处理软件包取代关系

--noplugins 禁用 Yum 插件

--nogpgcheck 禁用 GPG 签名检查

--disableplugin=[plugin] 禁用指定名称的插件

--enableplugin=[plugin] 启用指定名称的插件

--skip-broken 忽略存在依赖关系问题的软件包

--color=COLOR 配置是否使用颜色

--releasever=RELEASEVER 在 yum 配置和 repo 文件里设置 $releasever 的值

--downloadonly 仅下载而不更新

--downloaddir=DLDIR 指定一个其他文件夹用于保存软件包

--setopt=SETOPTS 设置任意配置和源选项

--bugfix Include bugfix relevant packages, in updates

--security Include security relevant packages, in updates

--advisory=ADVS, --advisories=ADVS

Include packages needed to fix the given advisory, in

updates

--bzs=BZS Include packages needed to fix the given BZ, in

updates

--cves=CVES Include packages needed to fix the given CVE, in

updates

--sec-severity=SEVS, --secseverity=SEVS

Include security relevant packages matching the

severity, in updates



实例:


部分常用的命令包括:

 自动搜索最快镜像插件:yum install yum-fastestmirror

 安装yum图形窗口插件:yum install yumex

 查看可能批量安装的列表:yum grouplist


安装指定的安装包

[root@Feet ~]# yum install mariadb\* -y

rpm与yum实现程序包的管理_Linux_04


安装指定的程序组

[root@Feet ~]# yum groups install web\* -y

rpm与yum实现程序包的管理_软件包_05



更新和升级

yum update #全部更新

yum update package1 #更新指定程序包package1

yum check-update #检查可更新的程序

yum upgrade package1 #升级指定程序包package1

yum groupupdate group1 #升级程序组group1


查找和显示

yum info package1 #显示安装包信息package1

yum list #显示所有已经安装和可以安装的程序包

yum list package1 #显示指定程序包安装情况package1

yum groupinfo group1 #显示程序组group1信息yum search string 根据关键字string查找安装包


删除程序

yum remove &#124; erase package1 #删除程序包package1

yum groupremove group1 #删除程序组group1

yum deplist package1 #查看程序package1依赖情况


清除缓存

yum clean packages #清除缓存目录下的软件包

yum clean headers #清除缓存目录下的 headers

yum clean oldheaders #清除缓存目录下旧的 headers


yum源的配置

[root@Feet yum.repos.d]# cd /etc/yum.reops.d

[root@Feet yum.repos.d]# vim aa.repo

rpm与yum实现程序包的管理_管理工具_06