Linux网络服务部署yum仓库

目录

1、Yum概述

2、Yum实现过程

3、Yum配置文件

3.1yum主配置文件/etc/yum.conf​编辑

3.2仓库设置文件/etc/yum.repos.d/*.repo

 4、yum命令详解

5、源地址

6、搭建仓库的方式

6.1搭建本地yum仓库 

6.2搭建阿里云仓库(http方式外网环境)

 6.3内网环境下http搭建yum仓库


1、Yum概述


YUM(Yellow dog Updater,Modified):

基于RPM包构建的软件更新机制
可以自动解决依赖关系
所有软件包由集中到YUM软件仓库提供


2、Yum实现过程


先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

yum依赖于环境,依赖于服务端和客户端,允许跨网络

客户端:

配置文件
服务端:

RPM包(存放在包文件夹Packages中)
元数据(存放在元数据文件夹repodata中,其中包含:目录(软件的目录),软件的依赖关系,软件的分组)
最终形成两个文件夹Packages(包文件夹一般取名packages)和repodata(元数据文件夹)

仓库类型:

光盘的仓库(基本仓库)
epel 扩展仓库


3、Yum配置文件


3.1yum主配置文件/etc/yum.conf

[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 //验证密钥,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:自定义变量

3.2仓库设置文件/etc/yum.repos.d/*.repo

 4、yum命令详解

命令不加关键字加入关键词、软件包、软件包组
yum list显示所有可用包单个的可安装包
yum info显示所有可用包的信息单个具体的信息
yum search\模糊查找所有的相关信息
yum whatprovides\精确查找
yum install\安装具体软件包
yum update所有软件升级,更新内核具体软件升级
yum upgrade只更新软件包,但不更新内核具体软件更新
yum remove\卸载具体软件
yum history查看当前yum操作历史\
yum history info\加序号列出某次事务的详细信息
yum history undo\加序号卸载序号里安装的软件
yum history redo\加序号重新执行序号里的操作
yum grouplist显示所有可用包组显示具体的包组
yum groupinfo显示所有的包组具体信息显示具体的包组的具体信息
yum groupinstall\安装具体软件包组
yum group update所有包组升级具体包组升级
yum groupremove\卸载具体包组软件

5、源地址

CentOS系统的yum源
#阿里云
https://mirrors.aliyun.com/centos/$releasever/ 
#腾讯云
https://mirrors.cloud.tencent.com/centos/$releasever/ 
#华为云
https://repo.huaweicloud.com/centos/$releasever/ 
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/
 
EPEL的yum源
#阿里云
https://mirrors.aliyun.com/epel/$releasever/x86_64
#腾讯云
https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
#华为云
https://mirrors.huaweicloud.com/epel/$releasever/x86_64
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64
 
#更新源
http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/

6、搭建仓库的方式

软件仓库的提供方式

  • 本地目录:file://绝对路径(file:///mnt此处第三个/为根目录)
  • HTTP服务: http://域名或者ip地址/站点里的路径
  • FTP服务:ftp://ip地址/站点里路径

6.1搭建本地yum仓库 

(1)将光驱中的镜像文件进行挂载(先将虚拟机的光盘载入)

[root@localhost media]# cd /mnt/                             //进入mnt        
[root@localhost mnt]# ls                                     //查看mnt下的文件
[root@localhost mnt]# mount /dev/sr0 /mnt                    //挂载到mnt目录下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost mnt]# cd /etc/yum.repos.d/                   //进入etc目录下的yum.repos.d
[root@localhost yum.repos.d]# mkdir bak                      //创建bak文件夹
[root@localhost yum.repos.d]# mv *.repo bak/ 
                                       //将yum.repos.d下的所有以.repo结尾移动至bak目录下
[root@localhost yum.repos.d]# ls                             //查看yum.repos.d的文件
bak

(2)新建yum仓库

[root@localhost yum.repos.d]# vim abc.repo                   //新建并编辑abc.repo
 
[abc]                                                                            
name=abc                         //仓库名
baseurl=file:///mnt              //设置链接地址
gpgcheck=0                       //进入不需验证
enabled=1                        //开机自启

(3)清理缓存

[root@localhost yum.repos.d]# yum clean all && yum makecache //清理缓存并重新建立元数据
已加载插件:fastestmirror, langpacks
正在清理软件源: abc
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
已加载插件:fastestmirror, langpacks
abc                                                         | 3.6 kB  00:00:00     
(1/4): abc/group_gz                                         | 156 kB  00:00:00     
(2/4): abc/filelists_db                                     | 3.1 MB  00:00:00     
(3/4): abc/primary_db                                       | 3.1 MB  00:00:00     
(4/4): abc/other_db                                         | 1.2 MB  00:00:00     
Determining fastest mirrors
元数据缓存已建立

6.2搭建阿里云仓库(http方式外网环境)

国外云仓库比较慢,可以使用阿里云仓库代替

  • 切换到 /etc/yum.repo.d/目录,将自带的仓库文件移走
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]# ls
bak

 

 

  •  新建yum仓库
[root@localhost yum.repos.d]# vim al.repo
[ali]  //阿里云centos yum仓库
name=aliyun
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/    //变量参见主配置文件
gpgcheck=0
 
[epel]   //epel源仓库
name=epel
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=0
 
[update]  //更新包仓库
name=update
baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=0

 

  • 清理缓存建立元数据

 

 6.3内网环境下http搭建yum仓库

由于是内网环境,虚拟机全部设为仅主机模式,(如何设置仅主机模式可参考DHCP原理与配置)无法连接外部网络如果想要下载httpd服务则需要搭建一个本地yum仓库

  • 服务端搭建本地yum仓库下载httpd服务
[root@localhost media]# cd /mnt/                             //进入mnt        
[root@localhost mnt]# ls                                     //查看mnt下的文件
[root@localhost mnt]# mount /dev/sr0 /mnt                    //挂载到mnt目录下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost mnt]# cd /etc/yum.repos.d/                   //进入etc目录下的yum.repos.d
[root@localhost yum.repos.d]# mkdir bak                      //创建bak文件夹
[root@localhost yum.repos.d]# mv *.repo bak/ 
                                     //将yum.repos.d下的所有以.repo结尾移动至bak目录下
[root@localhost yum.repos.d]# ls                             //查看yum.repos.d的文件
bak
[root@localhost yum.repos.d]# vim abc.repo                   //新建并编辑abc.repo
​
[abc]                                                                            
name=abc                         //仓库名
baseurl=file:///mnt              //设置链接地址
gpgcheck=0                       //进入不需验证
enabled=1                        //开机自启
 
[root@localhost yum.repos.d]# yum clean all && yum makecache //清理缓存建立元数据
  •  服务端下载http服务

 [root@localhost yum.repos.d]# yum install httpd//安装http服务

  • 服务端进入/var/www/html/添加挂载目录centos7,将光驱挂载到centos7目录下(也可以将光驱内的所有文件包复制到centos目录下)

[root@localhost yum.repos.d]# cd /var/www/html/
[root@localhost html]# mkdir centos7
[root@localhost html]# ls
centos7
[root@localhost html]# umount /mnt/
[root@localhost html]# df -h
[root@localhost html]# mount /dev/sr0 /var/www/html/centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost html]# ls centos7/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL 

 

 

  • 服务端关闭防火墙,开启http服务

 [root@localhost html]# systemctl stop firewalld.service 
[root@localhost html]# setenforce 0
[root@localhost html]# systemctl start httpd.service 

  • httpd提供网页服务,所以在客户端搜索服务器IP地址+共享目录(192.168.192.100/centos7)可以查看到共享出去的文件夹centos7

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值