yum简介
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。
yum 实现过程
服务器也就是yum仓库,存放着rmp包、元数据metadata等信息。(元数据整理出每个rpm包的基本信息,包括rpm包对应的版本号,conf文件,binary信息,以及很关键的依赖信息)
当客户端要安装软件时,会按照客户端配置文件里指定的服务器路径,去访问yum服务器,并下载下载metadata缓存到客户端。然后根据metadata确认软件包的版本号,所需要的依赖包等,然后再去yum服务器依次下载安装所需要的rpm包。
实现安装服务
yum 命令详解
| 命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
|---|---|---|
| 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 | 加入序号重新执行序号里的操作 | \ |
ftp方式搭建云仓库
-
服务端安装vsftp服务
yum install vsftpd -y -
服务端切换到ftp目录下新建一个centos7目录
vim /etc/vsftpd/vsftpd.conf
[root@localhost etc]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir centos7 other
- 服务端将光驱里的文件包全部考到centos7里(这里使用挂载实验)
mount /dev/sr0/ var/ftp/centos7 - 服务端开启相关服务,关闭防火墙和Selinux
systemctl stop firewalld.service
setenforce 0
systemctl start vsftpd
- 客户端安装ftp服务并开启关闭防火墙和selinux
yum install ftp
systemctl stop firewalld.service
setenforce 0
- 测试ftp服务是否正常
ftp 172.16.85.10
Connected to 172.16.85.10 (172.16.85.10).
220 (vsFTPd 3.0.2)
Name (172.16.85.10:root): ftp //默认匿名
331 Please specify the password.
Password: //输入密码为空格回车
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls //查看文件
227 Entering Passive Mode (172,16,85,10,147,204).
150 Here comes the directory listing.
drwxr-xr-x 8 0 0 2048 Sep 05 2017 centos7
drwxr-xr-x 2 0 0 6 May 02 09:35 other
drwxr-xr-x 2 0 0 6 Jun 09 2021 pub
226 Directory send OK.
- 编写yum仓库文件
yum makecache
- 测试是否yum可以正常使用
http方式搭建
服务端
yum install httpd
mount /dev/sr0 /var/www/html
systemctl restart httpd
客户端
cd /etc/yum.repos.d
vim httpd.repo
[httpd]
name=http
baseurl=http://192.168.91.100
gpgcheck=0
makecache