dnf-仓库服务搭建
1、介绍
关于 yum 的设定分为两部分:main 、repository
1. main
定义了全局配置选项,在整个配置文件中只有一处
vim /etc/yum.conf
[main]
#指定缓存目录,yum 在此存储下载的软件包和数据库
cachedir=/var/cache/yum/$basearch/$releasever
#完成安装后是否保留软件包,0 为不保留(默认值),1 为保留
keepcache=0
#调试信息输出等级,范围为 0~10,缺省为 2
debuglevel=2
#日志文件的位置。用户可以到日志文件中去查询过去所做的更新
logfile=/var/log/yum.log
#这里有1和0两个选项,如果设置为 1,则 yum 只会安装和系统架构匹配的软件包。默认值为 1
exactarch=1
#相当于 upgrade,允许更新陈旧的软件包
obsoletes=1
#同样有 1 和 0 两个选择,分别代表是否是否进行 GPG 校验,以确定软件包的来源是否有效和安全。如果这个选项如果设置在全局部分,则对每个源都有效
gpgcheck=1
#是否启用插件,默认 1 为允许,0 表示不允许。我们一般会使用 yum-fastestmirror 这个插件
plugins=1
#可同时安装 installonlypkgs 指令列出包的数量
installonly_limit=5
#追踪 bug_url
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
2. repository
定义了每个源的具体配置,可以有多个,例如我们将从哪里下载需要安装或者升级的软件包。通常位于 /etc/yum.repos.d/ 目录下:
本地源的配置文件 rocky93-local.repo
网络源的配置文件 CentOS-Base.repo
2、配置服务仓库
仓库文件服务器包括如下几种:
- 本地服务仓库 file://
- http 服务仓库 http://
- https 服务仓库 https://
- ftp 服务仓库 ftp://
1. 首先我们需要搭建本地服务器,然后再以本地服务器为基础搭建 http 服务仓库,本地搭建方式有 2 种:
- iso 文件搭建本地源
- rsync 同步公网 yum 源
(2 选 1 即可)
2. 使用 iso 文件搭建本地源 (不使用此步骤用公网 yum )
- 挂载系统 iso 光盘
mkdir -p /data/dnf/rocky93
mkdir /media/cdrom
mount -t iso9660 /dev/cdrom /media/cdrom
cp -rp /media/cdrom/* /data/dnf/rocky93/
umount /media/cdrom
- 禁用默认的网络源
所谓的禁用,就是将网络源的配置文件改名,否则 yum 指令会先在网络源中寻找适合的包,而改名后才会从本地源读取
mkdir /etc/yum.repos.d/bak -p
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak/
- 修改本地源的配置文件
vi /etc/yum.repos.d/rocky93-local.repo
[Local-BaseOS]
name=rocky93 - BaseOS
enabled=1
metadata_expire=-1
baseurl=file:///data/dnf/rocky93
gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
- 刷新 DNF
dnf clean all
# 查看配置存储库
dnf repolist
ps: 此种方式不需要使用 createrepo 创建索引文件,因为 iso 文件中已经创建好了索引文件位于 repodata 文件夹中 |
3、rsync 同步公网 yum 源
1. 设置阿里云镜像为本地 yum 源
#备份系统自带的 yum 源
mkdir /etc/yum.repos.d/backup
mv -rp /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
# centos7
#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#wget -O /etc/yum.repos.d/RPM-GPG-KEY-CentOS-7 http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# rocky9
sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' -i.bak /etc/yum.repos.d/[Rr]ocky*.repo
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
//dnf config-manager --set-enabled crb
//dnf install epel-release
dnf repolist
dnf clean all
yum makecache
2. 安装 createrepo
dnf install -y createrepo
3. 同步阿里源到本地目录
mkdir /data/dnf/rocky93 -p
dnf install -y yum-utils
reposync -np /data/dnf/rocky93
#cp /etc/yum.repos.d/RPM-GPG-KEY-CentOS-7 /data/dnf/rocky93/
\cp -rp /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 /data/dnf/rocky93/
ps:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待
4. 初始化 repodata 索引文件
createrepo -po /data/dnf/rocky93/baseos/ /data/dnf/rocky93/baseos/
createrepo -po /data/dnf/rocky93/extras/ /data/dnf/rocky93/extras/
createrepo -po /data/dnf/rocky93/appstream/ /data/dnf/rocky93/appstream/
createrepo -po /data/dnf/rocky93/epel/ /data/dnf/rocky93/epel/
createrepo -po /data/dnf/rocky93/crb/ /data/dnf/rocky93/crb/
createrepo -po /data/dnf/rocky93/epel-cisco-openh264/ /data/dnf/rocky93/epel-cisco-openh264/
dnf repolist
5. 更新 repodata 索引文件
createrepo --update /data/dnf/rocky93/baseos/
createrepo --update /data/dnf/rocky93/extras/
createrepo --update /data/dnf/rocky93/appstream/
createrepo --update /data/dnf/rocky93/epel/
createrepo --update /data/dnf/rocky93/crb/
createrepo --update /data/dnf/rocky93/epel-cisco-openh264/
ps:每次更新 rpm 包需要执行 createrepo --update 来更新索引
通过进行上面的操作,我们就把阿里源同步到了本地目录里面
4、配置 http 服务仓库
1. 安装 nginx
dnf install -y nginx
2. 配置 nginx
vi /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
root /data/dnf/rocky93;
location / {
# 打开目录浏览功能
autoindex on;
# off:以可读的方式显示文件大小
autoindex_exact_size off;
# on、off:是否以服务器的文件时间作为显示的时间
autoindex_localtime on;
# 展示中文文件名
charset utf-8,gbk;
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
// 启动 nginx
nginx
systemctl status nginx
systemctl enable nginx
systemctl status nginx
浏览器访问 http://服务器ip地址/ 至此 yum 服务端就安装好了
5、客户端配置
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
vi /etc/yum.repos.d/rocky-local.repo
#CentOS-Base.repo
# [serverid] 用于区别各个不同的仓库,必须有一个唯一的名称
[baseos]
name=Baseos - mirror-rocky.sui.com
baseurl=http://mirror-rocky.sui.com/baseos/
enabled=1
gpgcheck=1
gpgkey=http://mirror-rocky.sui.com/RPM-GPG-KEY-Rocky-9
[appstream]
name=Appstream - mirror-rocky.sui.com
baseurl=http://mirror-rocky.sui.com/appstream
enabled=1
gpgcheck=1
gpgkey=http://mirror-rocky.sui.com/RPM-GPG-KEY-Rocky-9
[extras]
name=Extras - mirror-rocky.sui.com
baseurl=http://mirror-rocky.sui.com/extras
enabled=1
gpgcheck=1
gpgkey=http://mirror-rocky.sui.com/RPM-GPG-KEY-Rocky-9
[epel]
name=Epel - mirror-rocky.sui.com
baseurl=http://mirror-rocky.sui.com/epel
enabled=1
gpgcheck=0
[crb]
name=Crb - mirror-rocky.sui.com
baseurl=http://mirror-rocky.sui.com/crb
enabled=1
gpgcheck=0
把上面的客户端文件 CentOS-Base.repo 分发到各客户端即可
------------------------------- THE END -------------------------------
—
©版权声明
读万卷书,行万里路。
——————————– THE END ——————————–