Linux之Yum软件包管理
Yum软件包管理
yum命令
yum源的配置
yum命令的配置
Yum软件包管理,是红帽系列系统中默认的软件包管理器,替我们下载指定rpm包,替我们安装,如果安装时有依赖,还会下载安装依赖;
推荐安装,命令补全增强工具;
yum -y install bash-completion bash-completion-extras//命令\命令选项补全
yum安装软件的流程
首先,Linux中执行了yum install命令;
收到命令后,yum会根据本地配置的yum源地址,进行请求;(默认没配置找官方的yum源/yum仓库(存着rpm包,里边有个软件列表));
这个软件列表会同步到本地,叫本地缓存;
收到下载命令,会读条,找到安装包后,问yum源要软件包,然后下载,安装,这是没有依赖的情况;
如果有依赖,就会自动分析依赖,把所有需要的依赖都向yum源索要,然后安装;
安装完成删除刚下载的rpm包(默认)
对于Yum源,公有云都一般做好了修改,自己装的虚拟机需要修改yum仓库;
yum命令:下载与安装软件包,配置文件/etc/yum.conf
yum仓库/源:存放软件包的地方,配置目录/etc/yum.repos.d/*.repo repository源
为什么修改yum源地址?
为了下载更快;
有一些系统默认的源,无法满足要求;需要的软件yum源中没有;
查看系统正在用的yum源列表
yum repolist
[root@web01 cmatrix-1.2a]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,746
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 515
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 4,425
repolist: 28,758
目前这里可以看出,有base,extras,updates,epel 4个yum源;
其中前三个base,extras,updates是默认yum的源
epel是额外的yum源;
设置系统的yum源为阿里云;
mirrors.aliyun.com //阿里网站
https://developer.aliyun.com/mirror/centos //网站有教程命令
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
选项-O:下载明改名,存到目录里
这些,相当于修改了base,extras,updates源;
同样的操作,可以增加epel源
先备份
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
第一次使用,提示文件不存在
再增加系统epel源(企业级Linux额外的软件包)
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum源配置文件详解
存放在/etc/yum.repos.d/目录下面,都是以.repo结尾,只能识别以.repo结尾的文件;
配置文件格式
[base] //这个源名字
name=CentOS-$releasever - Base - mirrors.aliyun.com //yum源的详细名字
failovermethod=priority //这个可选配置,如果地址失败了,则使用下面的url,一般一个url就可以了
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
//源地址,$releasever,系统版本,$basearch,架构,只有在yum源中 可以识别,浏览器无法识别
gpgcheck=1 //是否检查签名,值改为0,就不用配置下一行了
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 //签名地址
//上边是阿里云的模板,下边还可以补充一行
enabled=1 //意思就是,是否开启这个源,不写就默认开启,0就是不开启;
yum命令配置文件,工作中很少修改,也就是想把安装过的rpm包留存,可能会修改;
/etc/yum.conf中找到keepcache,从=0改为=1,就可以把下载安装过的rpm包留存;
[main]
cachedir=/var/cache/yum/$basearch/$releasever //缓存目录
keepcache=0 //是否留存
debuglevel=2
logfile=/var/log/yum.log //日志文件
exactarch=1
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
yum命令详解
增删改查
增加
yum -y install
yum reinstall -y //重新安装
查,查询某个命令属于那个软件包,查询某个依赖属于那个软件包
yum provides 内容
yum search all 内容
yum repolist 查看源列表
yum list,显示yum仓库中所有软件,未来用于根据软件包名字查找;
删除
yum remove 删除软件包以及依赖
yum clean all 清空缓存
改
yum update/upgrade(yum -y install,安装其实也包含升级功能)
查:
[root@web01 yum.repos.d]# yum provides tree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
tree-1.6.0-10.el7.x86_64 : File system tree viewer
[root@web01 yum.repos.d]# yum provides ifconfig
备用搜索命令
yum search all ifconfig //结果会很多,需要筛选,或者一个一个测试
删:尽量不要删,删除时,也会删除安装时的依赖,即便要删除,也推荐rpm -e;
yum clean all;清出缓存,一般自建yum仓库时会用到;使用公有yum源,一般不用;
yum makecache //生成yum缓存
举个例子,用yum解决安装依赖
前提:用rpm安装一个软件,提示有依赖,无法安装;
[root@web01 ~]# rpm -ivh zabbix-get-6.0.0.1.el7.x86_64.rpm //提示有依赖
改用yum,自动解决依赖
[root@web01 ~]# yum loaclinstall zabbix-get-6.0.0.1.el7.x86_64.rpm
一个案例:搭建自己的yum仓库
搭建企业内部yum仓库 操作步骤: yum仓库客户端: yum仓库服务端: Yum客户端配置: |