搭建yum仓库
# 搭建本地yum仓库
很多时候刚安装的linux
系统不能联网,但需要安装相应环境的软件包。这时候我们就可以利用光盘制作一个本地yum
仓库。
挂载镜像
[root@web ~]# mount /dev/cdrom /mnt
1备份原有仓库
[root@web ~]# gzip /etc/yum.repos.d/*
1使用
yum-config-manager
命令可快速添加一个本地仓库[root@web ~]# yum install yum-utils -y [root@web ~]# yum-config-manager --add-repo="file:///mnt"
1
2当然我们也可以直接去编辑一个
.repo
文件,将仓库信息存储至该文件[root@web ~]# vim /etc/yum.repos.d/cdrom.repo # 仓库名称 [cdrom] # 仓库描述信息 name=This is local cdrom # 仓库url地址,可以是file:// ftp:// http://等协议 baseurl=file:///mnt # 是否使用该Yum源(0代表禁用,1代表激活) enabled=1 # 是否验证软件签名(0代表禁用,1代表激活) gpgcheck=0
1
2
3
4
5
6
7
8
9
10
11生成缓存信息、然后使用
yum
安装软件测试[root@web ~]# yum makecache [root@web ~]# yum install lrzsz-y
1
2
# 搭建企业yum仓库
还有很多时候不仅仅是一台机器无法上网,而是很多机器都无法上网,但都有联网下载软件的需求,这个时候我们需要构建一个企业级的yum仓库,为多台客户端提供服务。
# 服务端操作
# 同步阿里源
关闭
iptables
防火墙、与selinux
[root@yum_server ~]# systemctl stop firewalld [root@yum_server ~]# setenforce 0
1
2获取阿里
yum
源仓库[root@yum_server ~]# wget -O /etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo
1repolist
验证# 使用yum repolist验证CentOS-Base.repo文件是否生效,同时获取repoid [root@yum_server ~]# yum repolist
1
2- 这里的
repoid
有4个分别为base
、epel
、extras
、updates
; - 在
.repo
文件中[serverid]
就是repoid
;
- 这里的
serverid
解释:用于区别各个不同的repository
,必须有一个独一无二的名称。若重复后面的会覆盖前面的。
安装repository的管理工具
yum-utils
和createrepo
命令的包[root@yum_server ~]# yum -y install yum-utils createrepo
1创建保存文件的目录
[root@yum_server ~]# mkdir -p /data/repository/yum/
1同步repo文件中的包文件
# 会自动创建以repoid命名的目录 # -p:下载包的路径:默认为当前目录 # -n:仅下载最新软件包 # --repoid=REPOID:指定repoid来查询,可以指定多个次(默认全部启用) [root@yum_server ~]# reposync -p /data/repository/yum/ [root@yum_server ~]# reposync -n --repoid=base --repoid=epel --repoid=extras --repoid=updates -p /data/repository/yum/
1
2
3
4
5
6建立索引
# createrepo命令用于创建yum源(软件仓库),为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据 [root@yum_server ~]# createrepo /data/repository/yum/base/ [root@yum_server ~]# createrepo /data/repository/yum/extras/ [root@yum_server ~]# createrepo /data/repository/yum/updates/ [root@yum_server ~]# createrepo /data/repository/yum/epel/
1
2
3
4
5更新索引
[root@yum_server ~]# createrepo --update /data/repository/yum/base/ [root@yum_server ~]# createrepo --update /data/repository/yum/extras/ [root@yum_server ~]# createrepo --update /data/repository/yum/updates/ [root@yum_server ~]# createrepo --update /data/repository/yum/epel/
1
2
3
4
# 下载第三方源的软件包
下载
- 配置第三方源的仓库,然后使用
yum
下载
[root@yum_server ~]# yum install lrzsz --downloadonly --downloaddir=/data/repository/yum/down
1- 用脚本直接下载
rpm
包
[root@yum_server ~]# cat wget_rpm_scripts.sh #!/bin/bash get_zabbix_rpm_url=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/8/x86_64/ rpm_name=$(curl -s ${get_zabbix_rpm_url} | grep "^<a" |awk -F '"' '{print $2}') rpm_dir=/data/repository/yum/down for name in ${rpm_name} do if [ ! -d ${rpm_dir} ]; then mkdir -p ${rpm_dir} fi wget -O ${rpm_dir}/${name} ${get_zabbix_rpm_url}${name} done
1
2
3
4
5
6
7
8
9
10
11
12
13- 配置第三方源的仓库,然后使用
建立索引
[root@yum_server ~]# createrepo /data/repository/yum/down/
1更新索引
[root@yum_server ~]# createrepo --update /data/repository/yum/down/
1
# 配置Nginx
安装配置
nginx
服务[root@yum_server ~]# yum -y install nginx [root@yum_server ~]# systemctl start nginx [root@yum_server ~]# systemctl enable nginx [root@yum_server ~]# cat /etc/nginx/conf.d/yum.conf server{ listen 80 default_server; location / { root /data/repository/; autoindex on; autoindex_exact_size off; autoindex_locatime on; } } [root@yum_server ~]# systemctl reload nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 客户端操作
创建repo文件
[root@yum_client ~]# cat <<-EOF >/etc/yum.repos.d/Centos-7.repo # CentOS-Base.repo [base] name=Base baseurl=http://10.0.0.200/yum/base/ gpgcheck=0 enabled=1 #released updates [updates] name=Updates baseurl=http://10.0.0.200/yum/updates/ gpgcheck=0 enabled=1 #additional packages that may be useful [extras] name=Extras baseurl=http://10.0.0.200/yum/extras/ gpgcheck=0 enabled=1 [epel] name=epel baseurl=http://10.0.0.200/yum/epel/ gpgcheck=0 enabled=1 [down] name=Down baseurl=http://10.0.0.200/yum/down/ gpgcheck=0 enabled=1 EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35repolist
验证# 使用yum repolist验证CentOS-Base.repo文件是否生效 [root@yum_client ~]# yum repolist
1
2
Last Updated: 2021/11/12, 16:51:33