YUM仓库
一、YUM仓库简介
1.1yum简介
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间。为什么会有依赖关系的发生 因为linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。
YUM 的前身是YUP(Yellow dog Updater,Yellow dog Linux 的软件更新器),最初由 TSS 公司(Terra Soft Solutions,INC.)使用 Python 语言开发而成,后来由杜克大学(Duck University)的 Linux 开发队伍进行改进,命名为 YUM(Yellow dog Updater,Modified)。 要成功使用 YUM 机制来更新系统和软件,需要有一个包含各种 rpm 安装包文件及其依 赖软件的软件仓库(repository),提供软件仓库的服务器也称为“源”服务器。在客户机中只 要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件。
1.2yum实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
yum需要依赖于环境,依赖于服务端和客户端,允许跨网络。
(1)服务端需要的两个文件:
- RPM包(Packages文件夹中)
- 元数据(repodata文件夹:目录(软件的目录),软件的依赖关系,软件的位置)
(2)客户端的配置文件中 :
- baseurl=地址一定要写到这两个文件夹repodata和packages的上级目录
- 最终形成两个文件夹Packages (包文件夹一般取名packages)和repodata(元数据文件夹)
(3)仓库类型:
- 光盘的仓库基本仓库:比较常用的
- epel扩展仓库:比较新
1.3如何实现安装服务
二、YUM配置文件及命令
2.1yum配置文件
(1)主配置文件
1 [root@server ~]#cat /etc/yum.conf
(2)默认的yum仓库 是centos官方的yum源,需要联网才可以使用
[root@server ~]#ls /etc/yum.repos.d/
2.2yum命令详解
(1)yum命令
(2)查询,升级,下载
1 yum list [软件名]:显示可用的安装包,如不加软件名是显示所有的可用包,由于软件过多不做例子。 2 yum info [软件名]:显示安装包详细信息,如不加软件名是显示所有包的详细信息。 3 yum search [软件名]:根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来 4 yum grouplist [包组名]:安装包组的查询不加包组名就是显示所有 5 yum groupinfo [包组名]:不加包组名显示全部 6 yum install [软件名]:安装软件包 7 yum update:更新包组,可以单个也可以全部后面加具体包组名称就是单个更新,不加就是全部更新。 8 yum remove [软件名]:卸载已安装的软件必须加软件名 9 yum history:查看历史的使用记录 10 yum history undo [数字]:进行卸载,这样对比remove好处是可以将所有的依赖都删除 11 yum history redo [数字]:重新安装一遍
三、搭建仓库的方式
3.1搭建本地yum
1 [root@server ~]#mount /dev/sr0 /mnt/ 2 [root@server ~]#cd /etc/yum.repos.d/ 3 [root@server /etc/yum.repos.d]#mkdir bak 4 [root@server /etc/yum.repos.d]#mv *.repo bak/ 5 [root@server /etc/yum.repos.d]#vim local.repo 6 [local] 7 name=local 8 baseurl=file:///mnt 9 enabled=1 10 gpgcheck=0 11 [root@server /etc/yum.repos.d]#yum clean all && yum makecache
3.2http方式搭建云仓库
1 实验环境:CentOS7-1和CentOS7-2 2 实验目的:搭建http本地仓库 3 服务端: 4 [root@server ~]#yum install -y httpd 5 [root@server ~]#systemctl start httpd 6 [root@server ~]#ss -ntpa |grep ":80" 7 [root@server ~]#cd /var/www/html #放你想共享给被人的文件 8 [root@server /var/www/html]#mkdir centos7 9 [root@server /var/www/html]#mount /dev/sr0 centos7/ 10 [root@server /var/www/html]#df -Th 11 [root@server /var/www/html]#vim index.html 12 "你真棒,你真是个小天才!" 13 测试服务端环境:浏览器访问192.168.10.10/index.html 14 15 客户端: 16 [root@client ~]#curl 192.168.10.10 #测试 17 [root@client ~]#cd /etc/yum.repos.d 18 [root@client /etc/yum.repos.d]#mkdir bak 19 [root@client /etc/yum.repos.d]#mv *.repo bak 20 [root@client /etc/yum.repos.d]#ls 21 [root@client /etc/yum.repos.d]#vim http.repo 22 [http] 23 name=http 24 baseurl=http://192.168.10.10/centos7 25 gpgcheck=0 26 [root@client /etc/yum.repos.d]#yum clean all && yum makecache 27 [root@client /etc/yum.repos.d]#yum -y install tree
服务端:
客户端:
3.3ftp方式搭建云仓库
1 实验环境:CentOS7-1和CentOS7-2 2 实验目的:搭建ftp本地仓库 3 服务端: 4 [root@server ~]#yum -y install vsftpd.x86_64 5 [root@server ~]#systemctl start vsftpd 6 [root@server ~]#ss -ntpa |grep vsftpd 7 [root@server ~]#cd /var/ftp #放你想共享给被人的文件 8 [root@server /var/ftp]#mkdir centos7/ 9 [root@server /var/ftp]#mount /dev/sr0 centos7/ 10 [root@server /var/ftp]#df -Th 11 12 客户端: 13 [root@client ~]#yum -y install ftp #测试 14 [root@client ~]#cd /etc/yum.repos.d 15 [root@client /etc/yum.repos.d]#mkdir bak 16 [root@client /etc/yum.repos.d]#mv *.repo bak 17 [root@client /etc/yum.repos.d]#ls 18 [root@client /etc/yum.repos.d]#vim ftp.repo 19 [ftp] 20 name=ftp 21 baseurl=ftp://192.168.10.10/centos7 22 gpgcheck=0 23 [root@client /etc/yum.repos.d]#yum clean all && yum makecache 24 [root@client /etc/yum.repos.d]#yum -y install tree
服务端:
客户端:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程