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

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

你可能感兴趣的:(rpm和yum软件包管理日常使用汇总)