1,什么yum?、什么是yum源? 什么是yum仓库?
一个源,就是一个网址。这个网址对应的就是一个仓库,这个仓库中有很多的rpm包。
加一个源网址,就相当于是在添加一个仓库。
配置的源:
base源: 基础软件包 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
epel源: 第三方软件 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
学习服务:
nginx: 官方提供的repo文件
zabbix:
docker:
2,配置一个源有两种方式:
1.手动添加一个 repo 文件 手动
2.安装一个 “ release ” 的包,包中提供一个repo的文件 自动
3.yum的基本使用、安装、卸载、升级、查询等操作?
(1).使用yum安装软件包的方式
#1.yum通过公网仓库搜索进行安装
[[email protected] ~]# yum install vsftpd #交互,麻烦
[[email protected] ~]# yum install vsftpd -y #非交互
#2.yum直接安装公网的rpm包, 会自动查找当前系统上已有的仓库解决依赖关系
[[email protected] ~]# yum install https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba-4.8.3-4.el7.x86_64.rpm
#3.yum直接安装本地rpm包,会自动查找当前系统上已有的仓库解决依赖关系
[[email protected] ~]# yum localinstall samba-4.8.3-4.el7.x86_64.rpm
4.下载一个rpm包到本地?
rpm -ivh 进行安装 (安装过程碰到了依赖怎么处理呢?) 缺什么找什么,然后安装
yum localinstall (安装过程碰到了依赖怎么处理?) 他会自动处理依赖
1.分析软件的依赖
2.通过所有已经配置的repo源,上对应的仓库去寻找所需要的依赖包
3.安装所有的依赖包,最后安装本地的rpm
5,yum的一些命令
1.使用yum重新安装软件包的方式
[[email protected] ~]# rm -f /etc/vsftpd/vsftpd.conf
[[email protected] ~]# yum reinstall vsftpd
[[email protected] ~]# rpm -qc vsftpd
------------------------------------------------------------------------
2.使用yum更新软件包
#1.对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
[[email protected] ~]# yum check-update
#2.更新acl软件
[[email protected] ~]# yum update acl -y
#3.更新整个系统所有的软件,包括内核 (通常刚装完系统会进行执行) 非常危险
[[email protected] ~]# yum update -y
------------------------------------------------------------------------
3.使用yum删除软件包
[root@container ~]# yum install vsftpd -y
[root@container ~]# yum remove vsftpd -y
------------------------------------------------------------------------
4.与yum仓库相关指令(扩展了解)
[[email protected] ~]# yum repolist #查看 当前可用的仓库
[[email protected] ~]# yum repolist all 查看所有的仓库(不管是否可用)
如何启用或禁止仓库
两种方式:
1.找到该仓库的repo文件,将里面的enable 修改为 0不启用 1启动
2.gzip /etc/yum.repos.d/xx.repo 压缩该文件,让该文件失效
5.查找一个命令或文件所属的软件包是什么?
[[email protected] ~]# rpm -qf $(which cd)
bash-4.2.46-31.el7.x86_64
# PS: rpm需要知道命令的绝对路径, 如果不存在该命令是无法查找到该命令所属的软件包
[[email protected] ~]# yum provides cd
[[email protected] ~]# yum provides ifconfig
PS: yum不需要知道命令的绝对路径,只需要知道命令即可
yum会通过所有已启用的仓库进行查找那些软件包中涵盖了需要查询的命令
PS: 查询命令来自于哪个软件,使用yum的方式进行查询
1.如果查询不到,检查命令是否写错,如果写错,修改即可.
2.如果修改命令还是查询不到,请检查是否仓库真的没有软件包涵盖此命令, 建议添加更多yum源(仓库)
--------------------------------------------------------------------------------------------------------------------------------------------
6,yum删除包组
[[email protected] ~]# yum groups remove -y Base
------------------------------------------------------------------------
如何搭建一个本地的yum仓库:
1.准备一个iso镜像文件 (它里面有很多的rpm包,可以使用 wget tree )
连接上虚拟机
2.挂载我们的光盘至本地的某个目录下
[root@container ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
3.注释掉所有的repo文件,然后自己 新添加一个repo文件 ( 添加一个本地源 )
[root@container ~]# gzip /etc/yum.repos.d/*
[root@container ~]# cat /etc/yum.repos.d/oldboy.repo
[local-oldboy]
name = Local Packages
baseurl = file:///mnt
enabled = 1
gpgcheck = 0
4.使用yum命令安装软件测试
[root@container ~]# yum remove wget -y
[root@container ~]# yum install wget
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
============================================================================
Installing:
wget x86_64 1.14-15.el7_4.1 local-oldboy 547 k
Transaction Summary
=================================================================
Install 1 Package
注释:
[root@container ~]# cat /etc/yum.repos.d/oldboy.repo
[local-oldboy] #仓库名称,可随意表示
name = Local Packages #仓库的描述 可通过 yum repolist查看
baseurl = file:///mnt #我们的仓库在那里,使用什么协议访问 #http:// ftp:// file://
enabled = 1 #是否启用该仓库 1 表示启动 0表示不启用
gpgcheck = 0 #是否要校验软件包的合法性 ( 0 不校验 )
5,yum指令总结
yum install 安装
yum reinstall 重装
yum update 更新
yum remove 删除
yum repolist 查看仓库总和的rpm包
yum repolist all 查看所有的仓库 ( 包括启用和禁用 )
yum provides 查询命令是 哪个仓库下的哪个软件包提供
yum groups install 安装组包
yum groups remove 移除组包
yum history
yum history info
yum history undo
yum clean all 清理所有的缓存
yum clean packages 清理所有已缓存的rpm包