rpm和yum软件包管理日常使用汇总

今天这篇文章做个测试,发一篇老公的专业文章,看看在这里有没有人感兴趣

rpm命令

    1、安装rpm包

        命令格式:rpm -i /path/to/your-rpm-file

        一般组合起来使用:-ivh

        命令格式:rpm -ivh /path/to/your-rpm-file

    2、卸载rpm包

        命令格式:rpm -e 包名

    3、查询

        查询所有已经安装包:rpm -qa

        配合grep的使用:rpm -qa |grep openssl

                                  rpm -qa |grep "openssl\|curl"

        查询包的摘要信息:rpm -qi 包名

        查询包安装生成的文件清单:rpm -ql 包名

        查询某文件是由哪个rpm包安装生成的:rpm -qf /path/to/some_file

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

        查询包安装生成的帮助文档:rpm -qd 包名

        查询包相关的脚本:rpm -q --scripts 包名

        对未安装的RPM包查询信息,使用"-p",可以与其他查询相关的其他选项组合使用。

        命令格式:rpm -qpi /path/to/your-rpm-file

    4、升级软件

        命令格式:rpm -Uvh /path/to/your-rpm-file

        命令格式:rpm -Fvh /path/to/your-rpm-file

    5、校验RPM包

        命令格式:rpm -V 包名

        对已经安装的软件,进行将要。若无输出,则表示已安装的软件没有被修改。若软件被修改,则会输出信关信息。具体请查看RPM相关手册。

    6、RPM的数据库

        数据库文件位于:/var/lib/rpm

        若库损坏,很多RPM的查询将无法使用。

        对损坏的数据库,可以进行数据库重建:

        rpm --initdb  #新建数据库

        rpm--rebuilddb    #重建数据库

    7、RPM常用选项:

        -i:表示安装。

        -v,-vv, -vvv:表示详细信息。

        -h:以"#"号显示安装进度。

        -q:查询指定包名。

        -e:卸载指定包名。

        -U:升级软件,若未软件尚未安装,则安装软件。

        -F:升级软件。

        -V:对RPM包进行验证。

        --nodeps:忽略依赖关系。

        --query:查询指定包名。同-q选项。

        --hash:同-h。

      --install:表示安装,同-i选项。

        --test:仅作测试,不真正执行,可用于测试安装,测试卸载。

      --replacepkgs:重新安装。替换原有的安装。

        --force:忽略软件包及文件的冲突。

      --initdb:新建RPM的数据库。

      --rebuilddb:重建RPM的数据库。

      --percent:以百分比的形式输出安装的进度。

        RPM包的查询:

        rpm -q:查询某一个RPM包是否已安装

        rpm -qi:查询某一个RPM包的详细信息

        rpm -ql:列出某RPM包中所包含的文件。

        rpm -qf:查询某文件是哪个RPM包生成的。

        rpm -qa:列出当前系统所有已安装的包

yum命令

1、YUM客户端的配置

YUM的配置方式是基于分段配置的。

主配置文件:/etc/yum.conf

YUM的片段配置:/etc/yum.repos.d/*.repo

主配置文件配置了一个特殊的仓库,名称为main。main是为其他仓库提供默认的全局配置的。

配置文件字段作用:

[main]                                                                        #main仓库

cachedir=/var/cache/yum/$basearch/$releasever  #rpm包缓存位置

keepcache=0                                                            #rpm包是否长期保存

debuglevel=2                                                            #日志级别

logfile=/var/log/yum.log                                          #日志文件

exactarch=1                                                              #下载的rpm包是否需要与本地平台完全匹配

obsoletes=1

gpgcheck=1                                                              #是否需要自动来源合法性检测

plugins=1

installonly_limit=5

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release

其他配置文件,CentOS中/etc/yum.repos.d/目录下的配置文件只有CentOS-Base.rep有效。

配置文件中的一些配置项作说明:

[ ... ]:仓库的名称。不能重复。

name:对仓库的描述,该项必须有。

baseurl:配置仓库的路径。用于指定一个url。

mirrorlist:指向一个镜像列表,里面有多个url。

enabled:是否启用当前仓库。值为1或0,默认为1。

gpgcheck:是否需要gpg校验。值为1或0,默认为1。

gpgkey:验证RPM包的密钥文件路径。该文件可以在远处服务器上,也可以在本地。

cost:仓库优先级的配置。值越低,表示访问的代价越低,也即优先使用。

2、yum命令使用

yum list all

结果说明:

第一列:软件包名称.平台名称。

第二列:软件版本号-release号。

第三列:安装情况。

若显示@则表示该软件已经通过仓库安装。如@anaconda 表示已经通过anaconda仓库安装。

install,则表示系统已经安装,未通过仓库安装。

若无@或不是install,则表示尚未安装。如base,表示未安装,包位于base仓库中。updates,表示未安装,包位于updates仓库中。

例如yum list all|grep openssl显示结果:

Repodata is over 2 weeks old. Installyum-cron? Or run: yum makecache fast

openssl.x86_64 1:1.0.2k-12.el7 @anaconda

openssl-libs.x86_64 1:1.0.2k-12.el7 @anaconda

xmlsec1-openssl.x86_64 1.2.20-7.el7_4 @anaconda

apr-util-openssl.x86_64 1.5.2-6.el7 base

openssl.x86_64 1:1.0.2k-16.el7 base

openssl-devel.i686 1:1.0.2k-16.el7 base

openssl-devel.x86_64 1:1.0.2k-16.el7 base

yum list all 包名

查看yum仓库中指定包名的软件包,可以使用通配符例如

yum list all openssl

Loaded plugins: fastestmirror

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

Loading mirror speeds from cached hostfile

* base: mirrors.nwsuaf.edu.cn

* extras: mirrors.huaweicloud.com

* updates: mirrors.nwsuaf.edu.cn

Installed Packages

openssl.x86_64 1:1.0.2k-12.el7 @anaconda

Available Packages

openssl.x86_64

Installed Package:表示已经安装的包。

Avaliable Package:表示没有安装,但可以安装的包。

yum listinstalled

只显示已经安装的包

yum listavailable

只显示没有安装,但可安装的包。

yum list updates

查看所有可更新的包。

yum list extras

显示不属于任何仓库的,额外的包。

yum listobsoletes

显示被废弃的包

yum list recent

新添加进yum仓库的包

yum search 查询名

模糊匹配搜索

例如:

yum search cmak

Loaded plugins: fastestmirror

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

Loading mirror speeds from cached hostfile

* base: mirrors.nwsuaf.edu.cn

* extras: mirrors.tuna.tsinghua.edu.cn

* updates: mirrors.nwsuaf.edu.cn

======================================================================================================================N/S matched: cmak =======================================================================================================================

cmake-gui.x86_64 : Qt GUI for cmake

cmake.x86_64 : Cross-platform make system

Name and summary matches only, use"search all" for everything.

yum repolist

查看当前能够使用的yum仓库

yum repolist all

显示所有仓库

yumrepolist enabled

显示启用的仓库

yum repolistdisabled

显示禁用的仓库

yum info 包名

显示软件包的摘要信息

类似于rpm -qi 包名,yum info没有rpm -qi显示全。但可以显示出安装状态(Installed Packages,Available Packages)

yum provides 文件和 yum whatprovides 文件

查询某个文件是由哪个软件包生成的

yum clean [packages | metadata | expire-cache | rpmdb | plugins | all ]

yum仓库若更新,则本地缓存就没有意义了。所以本地缓存需要清空。

yum makecache

yum客户端会下载远程yum的文件。在本地生成缓存。

yum [-y] install包1 包2 ... 包n

安装应用程序

yum [-y]reinstall 包1 包2 ... 包n

重新安装软包

yum update 包1 包2 ... 包n

升级软件包

yum update-to 包-版本号

update-to可以指定版本号。

yum check-update

检测可升级的包

yum remove 包1 包2 ... 包n

卸载软件包

若该包被依赖,则该卸载可能会导致一些问题。如A依赖B,若卸载B,则A也会被卸载

yuminstall/update rpm包路径

或者使用localinstall,localupdate。在RHEL5/CentOS5下必须使用localinstall,localupdate

yumlocalinstall/localupdate rpm包路径

yum localinstall --nogpgcheck

--nogpgcheck选项,可以避免yum作校验

yum grouplist

查看yum仓库里的包组

yum groupinfo 包组名

显示指定的包组信息

yum [-y]groupinstall 包组1 包组2 ... 包组n

安装包组

yum [-y]groupupdate包组1 包组2 ... 包组n

升级包组

yum [-y] groupremove包组1 包组2 ... 包组n

卸载包组

yum history

查看此前安装卸载等操作历史

rpm命令

    1、安装rpm包

        命令格式:rpm -i /path/to/your-rpm-file

        一般组合起来使用:-ivh

        命令格式:rpm -ivh /path/to/your-rpm-file

    2、卸载rpm包

        命令格式:rpm -e 包名

    3、查询

        查询所有已经安装包:rpm -qa

        配合grep的使用:rpm -qa |grep openssl

                                  rpm -qa |grep "openssl\|curl"

        查询包的摘要信息:rpm -qi 包名

        查询包安装生成的文件清单:rpm -ql 包名

        查询某文件是由哪个rpm包安装生成的:rpm -qf /path/to/some_file

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

        查询包安装生成的帮助文档:rpm -qd 包名

        查询包相关的脚本:rpm -q --scripts 包名

        对未安装的RPM包查询信息,使用"-p",可以与其他查询相关的其他选项组合使用。

        命令格式:rpm -qpi /path/to/your-rpm-file

    4、升级软件

        命令格式:rpm -Uvh /path/to/your-rpm-file

        命令格式:rpm -Fvh /path/to/your-rpm-file

    5、校验RPM包

        命令格式:rpm -V 包名

        对已经安装的软件,进行将要。若无输出,则表示已安装的软件没有被修改。若软件被修改,则会输出信关信息。具体请查看RPM相关手册。

    6、RPM的数据库

        数据库文件位于:/var/lib/rpm

        若库损坏,很多RPM的查询将无法使用。

        对损坏的数据库,可以进行数据库重建:

        rpm --initdb  #新建数据库

        rpm--rebuilddb    #重建数据库

    7、RPM常用选项:

        -i:表示安装。

        -v,-vv, -vvv:表示详细信息。

        -h:以"#"号显示安装进度。

        -q:查询指定包名。

        -e:卸载指定包名。

        -U:升级软件,若未软件尚未安装,则安装软件。

        -F:升级软件。

        -V:对RPM包进行验证。

        --nodeps:忽略依赖关系。

        --query:查询指定包名。同-q选项。

        --hash:同-h。

      --install:表示安装,同-i选项。

        --test:仅作测试,不真正执行,可用于测试安装,测试卸载。

      --replacepkgs:重新安装。替换原有的安装。

        --force:忽略软件包及文件的冲突。

      --initdb:新建RPM的数据库。

      --rebuilddb:重建RPM的数据库。

      --percent:以百分比的形式输出安装的进度。

        RPM包的查询:

        rpm -q:查询某一个RPM包是否已安装

        rpm -qi:查询某一个RPM包的详细信息

        rpm -ql:列出某RPM包中所包含的文件。

        rpm -qf:查询某文件是哪个RPM包生成的。

        rpm -qa:列出当前系统所有已安装的包

yum命令

1、YUM客户端的配置

YUM的配置方式是基于分段配置的。

主配置文件:/etc/yum.conf

YUM的片段配置:/etc/yum.repos.d/*.repo

主配置文件配置了一个特殊的仓库,名称为main。main是为其他仓库提供默认的全局配置的。

配置文件字段作用:

[main]                                                                        #main仓库

cachedir=/var/cache/yum/$basearch/$releasever  #rpm包缓存位置

keepcache=0                                                            #rpm包是否长期保存

debuglevel=2                                                            #日志级别

logfile=/var/log/yum.log                                          #日志文件

exactarch=1                                                              #下载的rpm包是否需要与本地平台完全匹配

obsoletes=1

gpgcheck=1                                                              #是否需要自动来源合法性检测

plugins=1

installonly_limit=5

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release

其他配置文件,CentOS中/etc/yum.repos.d/目录下的配置文件只有CentOS-Base.rep有效。

配置文件中的一些配置项作说明:

[ ... ]:仓库的名称。不能重复。

name:对仓库的描述,该项必须有。

baseurl:配置仓库的路径。用于指定一个url。

mirrorlist:指向一个镜像列表,里面有多个url。

enabled:是否启用当前仓库。值为1或0,默认为1。

gpgcheck:是否需要gpg校验。值为1或0,默认为1。

gpgkey:验证RPM包的密钥文件路径。该文件可以在远处服务器上,也可以在本地。

cost:仓库优先级的配置。值越低,表示访问的代价越低,也即优先使用。

2、yum命令使用

yum list all

结果说明:

第一列:软件包名称.平台名称。

第二列:软件版本号-release号。

第三列:安装情况。

若显示@则表示该软件已经通过仓库安装。如@anaconda 表示已经通过anaconda仓库安装。

install,则表示系统已经安装,未通过仓库安装。

若无@或不是install,则表示尚未安装。如base,表示未安装,包位于base仓库中。updates,表示未安装,包位于updates仓库中。

例如yum list all|grep openssl显示结果:

Repodata is over 2 weeks old. Installyum-cron? Or run: yum makecache fast

openssl.x86_64 1:1.0.2k-12.el7 @anaconda

openssl-libs.x86_64 1:1.0.2k-12.el7 @anaconda

xmlsec1-openssl.x86_64 1.2.20-7.el7_4 @anaconda

apr-util-openssl.x86_64 1.5.2-6.el7 base

openssl.x86_64 1:1.0.2k-16.el7 base

openssl-devel.i686 1:1.0.2k-16.el7 base

openssl-devel.x86_64 1:1.0.2k-16.el7 base

yum list all 包名

查看yum仓库中指定包名的软件包,可以使用通配符例如

yum list all openssl

Loaded plugins: fastestmirror

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

Loading mirror speeds from cached hostfile

* base: mirrors.nwsuaf.edu.cn

* extras: mirrors.huaweicloud.com

* updates: mirrors.nwsuaf.edu.cn

Installed Packages

openssl.x86_64 1:1.0.2k-12.el7 @anaconda

Available Packages

openssl.x86_64

Installed Package:表示已经安装的包。

Avaliable Package:表示没有安装,但可以安装的包。

yum listinstalled

只显示已经安装的包

yum listavailable

只显示没有安装,但可安装的包。

yum list updates

查看所有可更新的包。

yum list extras

显示不属于任何仓库的,额外的包。

yum listobsoletes

显示被废弃的包

yum list recent

新添加进yum仓库的包

yum search 查询名

模糊匹配搜索

例如:

yum search cmak

Loaded plugins: fastestmirror

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

Loading mirror speeds from cached hostfile

* base: mirrors.nwsuaf.edu.cn

* extras: mirrors.tuna.tsinghua.edu.cn

* updates: mirrors.nwsuaf.edu.cn

======================================================================================================================N/S matched: cmak =======================================================================================================================

cmake-gui.x86_64 : Qt GUI for cmake

cmake.x86_64 : Cross-platform make system

Name and summary matches only, use"search all" for everything.

yum repolist

查看当前能够使用的yum仓库

yum repolist all

显示所有仓库

yumrepolist enabled

显示启用的仓库

yum repolistdisabled

显示禁用的仓库

yum info 包名

显示软件包的摘要信息

类似于rpm -qi 包名,yum info没有rpm -qi显示全。但可以显示出安装状态(Installed Packages,Available Packages)

yum provides 文件和 yum whatprovides 文件

查询某个文件是由哪个软件包生成的

yum clean [packages | metadata | expire-cache | rpmdb | plugins | all ]

yum仓库若更新,则本地缓存就没有意义了。所以本地缓存需要清空。

yum makecache

yum客户端会下载远程yum的文件。在本地生成缓存。

yum [-y] install包1 包2 ... 包n

安装应用程序

yum [-y]reinstall 包1 包2 ... 包n

重新安装软包

yum update 包1 包2 ... 包n

升级软件包

yum update-to 包-版本号

update-to可以指定版本号。

yum check-update

检测可升级的包

yum remove 包1 包2 ... 包n

卸载软件包

若该包被依赖,则该卸载可能会导致一些问题。如A依赖B,若卸载B,则A也会被卸载

yuminstall/update rpm包路径

或者使用localinstall,localupdate。在RHEL5/CentOS5下必须使用localinstall,localupdate

yumlocalinstall/localupdate rpm包路径

yum localinstall --nogpgcheck

--nogpgcheck选项,可以避免yum作校验

yum grouplist

查看yum仓库里的包组

yum groupinfo 包组名

显示指定的包组信息

yum [-y]groupinstall 包组1 包组2 ... 包组n

安装包组

yum [-y]groupupdate包组1 包组2 ... 包组n

升级包组

yum [-y] groupremove包组1 包组2 ... 包组n

卸载包组

yum history

查看此前安装卸载等操作历史

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,928评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,748评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,282评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,065评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,101评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,855评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,521评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,414评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,931评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,053评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,191评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,873评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,529评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,074评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,188评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,491评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,173评论 2 357

推荐阅读更多精彩内容