部署YUM仓库
目录
一.YUM
1.1yum概述
1.2yum的实现
1.3yum服务的组成
1.4yum服务实现过程
1.5yum配置文件位置
二.yum相关命令
三.搭建yum仓库的方式
3.1使用HTTP方式搭建yum仓库
准备工作(服务端和客户端都需要做)
服务端
客户端
3.2使用ftp方式搭建yum仓库
服务端
客户端
测试
3.3搭载本地yum仓库
补充:
搭载本地apt仓库
一.YUM
1.1yum概述
yum(Yellowdog Updater, Modified)是 RPM 系列 Linux 发行版(如 CentOS、RHEL、Fedora)中的 包管理工具,用于自动化安装、更新、删除软件包及其依赖项。
1.2yum的实现
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
1.3yum服务的组成
yum服务是C/S模式
服务器:
-
RPM包 (Packages文件夹中)
-
元数据(repodata文件夹:目录(软件的目录),1.软件的依赖关系,2.软件的位置)
最终形成两个文件夹Packages (包文件夹一般取名packages)和 repodata(元数据文件夹)
客户端
-
编写客户端配置文件
仓库类型 | 适用场景 | 典型仓库 |
---|---|---|
官方仓库 | 系统基础软件、安全更新。 | Base, Updates, AppStream |
第三方仓库 | 扩展软件(如开发工具、新版应用)。 | EPEL, Remi, RPM Fusion |
本地仓库 | 离线环境、企业内部分发。 | 自建仓库或 ISO 镜像。 |
特殊仓库 | 调试、源码编译、测试软件。 | Debuginfo, Source |
1.4yum服务实现过程
1.5yum配置文件位置
服务端:/etc/yum.conf
客户端 :/etc/yum.repos.d/*.repo
日志:/var/log/yum.log
二.yum相关命令
一.安装
yum install 软件名 -y #通过yum方式安装软件
二.查询
1.yum list [软件名] #显示可用的安装包,不加软件名是显示所有的可用包
#举例#
[root@localhost ~]# yum list #显示所有可用安装包
[root@localhost ~]# yum list httpd #显示关于httpd的包
2.yum info [软件名] #显示指定安装包详细信息,不加软件名是显示所有包的详细信息
#举例#
yum info httpd #显示httpd的详细信息
3.yum search 关键词 #根据关键字查找软件安装包
#举例#
yum search ftp #查找包含ftp的软件包
4.yum provides 命令 #根据命令名查找对应的软件包
5.yum grouplist [包组名] #安装包组的查询 不加包组名 就是显示所有
6.yum groupinfo [包组名] #显示包组的详细信息
#举例#
yum groupinfo "GNOME Desktop" #显示名为 "GNOME Desktop" 的软件包组的详细信息
三.升级
1.yum update 软件名 #仅升级包,不会自动删除 旧版本的依赖
2.yum uograde 软件名 #升级包后,会移除新版本不再需要的旧依赖包
3.yum groupupdate [包组名] #包组更新
四.卸载
1.yum remove 软件名
2.yum groupremove 包组名 #注意:卸载软件,依赖关系是不会一起卸载的
五.其他
1.yum history #查看yum 的历史记录
2.yum history undo 编号 #撤销yum操作
3.yum history redo 编号 #恢复误撤销的操作。
只下载,不安装
yum install <包> --downloadonly --downloaddir=<路径>
--downloadonly #只下载相关包默认至某一目录
--downloaddir=绝对目录路径 #下载到某一目录
#举例#
yum install nginx --downloadonly --downloaddir=/data/
#仅下载 nginx 及其依赖包到 /data/ 目录,不安装。
yum install nginx --downloadonly --downloaddir=/nginx/
#仅下载 nginx 及其依赖包到 /nginx/ 目录,不安装。
三.搭建yum仓库的方式
3.1使用HTTP方式搭建yum仓库
服务端的IP地址:192.168.52.100
客户端的IP地址:192.168.52.101
准备工作(服务端和客户端都需要做)
sudo systemctl stop firewalld # 停止防火墙服务
sudo setenforce 0 # 临时关闭selinux
服务端
yum install -y httpd #安装httpd服务
mount /dev/sr0 /var/www/html #挂载光盘镜像至httpd服务端 提供安装包
systemcl start httpd #启动服务
客户端
cd /etc/yum.repos.d #切换至系统存放YUM软件仓库配置文件的核心目录
mkdir backup #创建一个名为 backup 的新目录。
mv *.repo backup #将当前目录下所有 .repo 文件移动到 backup/ 目录中
vim http.repo #编辑一个YUM软件源配置文件
1 [http]
2 name=http
3 baseurl=http://192.168.52.100/ #指定软件仓库的实际存储位置
4 gpgcheck=0
yum clean all #彻底清理YUM的本地缓存
yum makecache #下载并生成最新的仓库元数据缓存
yum install -y tree
#安装任意软件 观察能否安装成功 观察安装源的变化
3.2使用ftp方式搭建yum仓库
服务端的IP地址:192.168.52.100
客户端的IP地址:192.168.52.101
服务端
systemctl stop firewalld
setenforce 0
yum install -y vsftpd #安装ftp服务
cd /var/ftp/
mkdir test #新建目录作为挂载点
mount /dev/sr0 /var/ftp/test #挂载
systemctl start vsftp #启动服务
客户端
systemctl stop firewalld
setenfore 0
cd /etc/yum.repos.d
mkdir backup
mv *.repo backup #备份网络源
vim http.repo #编辑 http.repo文件
[ftp]
name=ftp
baseurl=ftp://192.168.52.100/test #挂载目录
gpgcheck=0 #关闭校验
:wq #退出并保存
yum clean all
yum makecache #清除网络源缓存,建立本地源数据
测试
yum install -y tree #安装tree以测试源的变化
3.3搭载本地yum仓库
具体讲解在“Linux系统安装软件的方式”这一章
mount /dev/sr0 /mnt
cd /etc/yum.repos.d/
makir bak
mv *.repo bak/
vim local.repo
[dhf]
name=local
baseurl=file:///mnt/
gpgcheck=0
yum clean all
yum makecache
yum install tree -y #验证实验似乎否成功
补充:
搭载本地apt仓库
mkdir -p /var/www/html/apt
cd /var/www/html/apt #创建本地APT仓库的存储目录,并进入该目录。
把压缩文件拖入指令界面
#要完成这一步需要下载apt install -y iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev gcc openssh-server iotop unzip zip net-tools
tar -xzvf apt.tar.gz #解压缩
apt install dpkg-dev -y #安装 dpkg-scanpackages 工具,用于生成APT仓库元数据
apt install apache2 -y #安装Apache HTTP服务器,用于通过HTTP共享仓库。
cd /var/www/html/
dpkg-scanpackages apt/ > Packages #生成仓库元数据
mv /etc/apt/sources.list /etc/apt/sources.list.ali
vim /etc/apt/sources.list
deb [trusted=yes] http://192.168.52.105(你自己的ip地址)/ / 是什么意思
#替换APT源为本地仓库
apt update #验证