yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间
先在yum服务器上创建yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包以及依赖关系,自动从仓库中找到相关包下载并安装。yum需要依赖环境,依赖于服务端和客户端,允许跨网路。
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
服务器
RPM包 (Packages文件夹中)
元数据(repodata文件夹:目录(软件的目录),软件的依赖关系;软件的位置)
客户端的配置文件
必须要放在 /etc/yum.repos.d/文件夹下
必须要以 .repo 结尾
baseurl=地址一定要写到这两个文件夹 repodata、packages 的上级目录 ,最终形成两个文件夹Packages (包文件夹一般取名packages)和repodata(元数据文件夹)
仓库类型
元信息:是一个文件,记录安装包的路径和安装包的依赖关系
[root@localhost]#vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #yum下载的RPM包的缓存目录 $basearch代表硬件架构 $releasever系统版本比如7
keepcache=0 #是否保存缓存 0代表不保存,1代表保存
debuglevel=2 #调试级别了解即可
logfile=/var/log/yum.log #日志文件位置
exactarch=1 #是否允许不同版本的rpm安装
obsoletes=1 #update 的一个参数是否可以允许旧版本的运行
gpgcheck=1 #验证秘钥
plugins=1 #是否允许插件1代表可以
installonly_limit=5 #保存几个内核 5代表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的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量
[root@localhost abc]#cd /etc/yum.repos.d
#切换目录
[root@localhost yum.repos.d]#ll
#查看当前目录
总用量 28
-rw-r--r--. 1 root root 1664 8月 30 2017 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 8月 30 2017 CentOS-CR.repo
-rw-r--r--. 1 root root 649 8月 30 2017 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 8月 30 2017 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 8月 30 2017 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 8月 30 2017 CentOS-Sources.repo
-rw-r--r--. 1 root root 3830 8月 30 2017 CentOS-Vault.repo
[root@localhost yum.repos.d]#ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@localhost yum.repos.d]#cat /var/log/yum.log
#查看日志文件
Jan 16 18:50:00 Installed: apr-1.4.8-7.el7.x86_64
Jan 16 18:50:00 Installed: apr-util-1.5.2-6.el7_9.1.x86_64
Jan 16 18:50:00 Installed: httpd-tools-2.4.6-99.el7.centos.1.x86_64
Jan 16 18:50:00 Installed: mailcap-2.1.41-2.el7.noarch
Jan 16 18:50:01 Installed: httpd-2.4.6-99.el7.centos.1.x86_64
命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
---|---|---|
yum list | 显示所有可用包 | 单个的可安装包 |
yum info | 显示所有可用包的信息 | 单个具体的信息 |
yum search | \ | 模糊查找所有的相关信息 |
yum provides | \ | 精确查找 |
yum grouplist | 显示所有可用包组 | 显示具体的包组 |
yum groupinfo | 显示所有的包组具体信息 | 显示具体的包组的具体信息 |
yum install | \ | 安装具体软件包 |
yum groupinstall | \ | 安装具体软件包组 |
yum update | 所有软件升级 | 具体软件升级 |
yum group update | 所有包组升级 | 具体包组升级 |
yum remove | \ | 卸载具体软件 |
yum groupremove | \ | 卸载具体包组软件 |
yum history | 查看当前yum操作历史 | \ |
yum history undo | 加入序号卸载序号里安装的软件 | \ |
yum history redo | 加入序号重新执行序号里的操作 | \ |
首先将光驱中的镜像文件进行挂载(先将虚拟机的光盘载入)
切换到 yum.repo.d 目录 将自带的仓库移走,多个开启仓库文件可能会造成冲突无法使用
新建yum仓库文件
yum list 检查仓库无报错信息即可正常使用
mount /dev/sr0 /mnt #挂载
cd /etc/yum.repos.d #切换到规定目录
mkdir bak #新建备份文件夹
mv *.repo bak #移动所有以repo结尾的文件到bak
vim xxxx.repo #新建yum仓库文件
[xxxx]
name=xxxx
baseurl=file:///mnt
gpgcheck=0
yum clean all #清除缓存
yum makecache #重新下载元数据
yum insstall httpd -y #使用yum安装httpd软件
服务端:192.168.10.11
客户端:192.168.10.12
服务端安装httpd服务
服务端切换到/var/www/html/目录下新建一个centos7目录
服务端将光驱里的文件包全部拷到centos7里面(将光驱挂载到 了centos7目录)
服务端开启相关服务,关闭防火墙
客户端安装http服务并启动关闭防火墙
测试http服务是否正常
编写yum仓库文件
测试是否yum可以正常使用
##服务端和客户端首先要关闭防火墙和防护中心
##服务端:
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭防护中心
yum install httpd -y #安装软件
cd /var/www/html/ #切换目录
mkdir centos7 #新建文件夹
mount /dev/sr0 centos7/ #挂载
systemctl start httpd #开启服务
##客户端:
cd /etc/yum.repos.d #切换到规定目录
mkdir bak #新建备份文件夹
mv *.repo bak #移动所有以repo结尾的文件到bak
vim httpd.repo #新建yum仓库文件
[http]
name=httpd
baseurl=http://192.168.10.11/centos7
gpgcheck=0
yum clean all #清除缓存
yum makecache #重新下载元数据
##验证
yum list #检查仓库无报错信息即可正常使用
yum install ftp -y #安装软件(软件源来自于http)