Linux界中,软件管理器主要有两大门类,一类是以red hat为首的rpm管理安装机制,使用的代表系统有Fedora、centOS、SUSE等;另一类是以debian为首的dpkg管理安装机制,使用的代表系统有B2D、debian、ubuntu等
我们现在就以centOS为主要系统来进行介绍rpm和yum
1.rpm命令
(1)查询软件安装信息
由于yum命令的存在,rpm现在主要的目的还是用于软件安装信息的查询
命令格式:rpm -qa
rpm -q【i l c d R】已安装的软件名称
rpm -qf 存在于系统上的某个文件名
常用参数说明:
-qa:查看当前系统上所有已安装的文件

-q :查询后续跟的软件是否有安装

-qi:查询后续所接软件的详细信息(information),包含开放商、版本与说明等
例如:rpm -qi wget

-ql:列出后续软件的所有文件与目录所在的完整名(list)
例如:rpm -ql python

-qc:列出后续软件在/etc目录下的配置文件名
例如:rpm -qc wget

-qd:列出后续软件的所有帮助信息、说明文件(docs)(例如man)

-qR:列出后续软件的依赖软件所含的文件

-qf:列出后续接的文件属于哪个软件

(2)安装软件
命令格式:rpm -ivh 软件包
例如:rpm -ivh Agent
常用参数详解:
-i:安装模式
-h:显示安装的信息
-v:显示进度
(3)卸载软件
命令格式:rpm -ev 软件包
例如:rpm -ev ds_agent
2.yum命令安装及卸载软件
(1)查询功能
常用命令:yum 【option】【查询工作选项】【相关软件参数】
yum 【-y】【list|info|search|provides】 【软件名】
例如:yum info wget
常用参数详解:
【option】
-y:在使用yum安装时,默认帮我们进行安装确认,不需要我们后续手动输入确认
--installroot=/some/path:将软件安装在/some/path我们的自定义路径下,而不使用默认安装路径
【查询工作选项】
list:类似rpm -qa,列出当前系统上所有管理的软件与版本,后续可以跟通配符,直接进行查询
例如:yum list ssh*(查询本机上ssh开头的软件)

info:类似于rpm -qi,后续接某个软件的名字,列出该软件的详细安装信息

search:可以用于查找软件,后面可以跟上该软件的描述或相关关键词
例如:yum search ssh

provides:类似于rpm -qf,去查找某个文件是由哪个软件提供的


(2)安装及升级功能
常用命令:yum 【option】【install|update】 软件
参数详解:
【option】也是-y和--installroot=/some/path
install后边直接接要安装的软件,update后面也可以直接接要安装的软件,如果要整个系统升级的话,直接update就行
(3)卸载软件
常用命令:yum -y 【remove】软件
3.yum配置文件详解
(1)更换软件源或镜像站
和git等其他命令一样,yum在进行下载命令时,也是有分软件下载源的,如果咱们在境内却使用了国外的下载源,那么我们的下载速度就会十分的缓慢,所以我们有必要学习下如何更改我们yum的配置文件
配置文件位置为【/etc/yum.repos.d/CentOS-Base.repo】
vim /etc/yum.repos.d/CentOS-Base.repo 打开文件,可见文件内容如下


内容分析:
首先【[base]】代表软件源的名字,外边的中括号一定要存在,里边的名字可以随意编取,但是不能有两个相同名字的软件源,否则yum会不知道该去哪里查找软件源相关的软件列表
【name】:这个字段仅仅是说明软件的源的意义,重要性不大
【mirrorlist】:列出这个软件源可以使用的镜像站,若是不想使用,可以加【#】注释掉
【baseurl】:这个字段最为重要,因为后续接的就是软件源的实际地址,mirrorlist是由yum自行去识别镜像站,baseurl则是则是指定固定的一个软件源网址
【enable】:代表了这个软件源是否启用,1为启用,0为关闭
【failovermethod】:有两个选项,分别是priority和roundrobin,意思是当有多个url可以选择时,系统进行选择的方式,priority代表从上到下按次序选择,roundrobin表示系统随机选择,系统默认为roundrobin
【gpgcheck】:指定是否需要查看rpm文件内的数字签名,1为查看,0为不查看
【gpkey】:数字签名的公钥文件所在位置,使用默认值即可
我们依据不同的软件源名字(默认一般是启动【base】【updates】【extras】这三个软件源),要对我们目的的镜像站来进行一些更改再分别写入到这三个软件源的【baseurl】中
举个例子,如果我想要更改我香港的服务器的yum服务器为中国科技大学的服务器的话,我应该怎么更改?
首先已知中国科技大学的yum服务器为:http://centos.ustc.edu.cn/centos/7
(建议先进入yum服务器看看其url的目录)
那我们【[base]】的baseurl就应该为:http://centos.ustc.edu.cn/centos/7/os/x86_64/
【[updates]】应该为:http://centos.ustc.edu.cn/centos/7/updates/x86_64/
【[extras]】应该为:http://centos.ustc.edu.cn/centos/7/extras/x86_64/
(2)更换软件源或镜像站后产生软件源版本问题的解决方法
我们再为我们系统更换新的软件源或镜像站后,若没有对我们之前的软件进行数据更新的话,下一次更新软件时可能会产生版本新旧不符合等问题,我们要解决这个问题的话,需要先清除本机之前的软件数据。
命令格式:yum clean [ packages | headers | all ]
package:将已下载的安装文件删除
headers:将下载的安装文件头删除
all:将所有软件源数据都删除
例如:删除所以软件源的相关数据(含软件本身与清单)
命令:yum clean all
4.yum安装软件组
我们在用光驱安装centOS时,在安装组件的模块,系统会询问我们是否安装一些软件套件,这些软件套件就是软件组,其中包含了某一特定方向的许多如软件,例如下图的可用软件组列表。

安装软件组命令:yum 【群组功能】【软件群组】
常用群组功能:
grouplist:列出当前系统上可用的环境软件组,以及可以选择安装的软件组
例如:yum grouplist

groupinfo:后接groupname,查询某一个软件组的安装信息
例如:yum groupinfo 通用桌面

groupinstall:可以选择性的安装某一个软件组
例如:yum groupinstall 基本网页服务器

groupremove:移除某一个软件组
例如:yum groupremove 基本网页服务器

Comments NOTHING