内网构建基于 Rocky-9.4 的 yum 仓库
▶ 搭建一个本地的基于 Rocky-9.4 的 yum源
▷ 初步的软件源准备
这里我准备了一个 iso 的光盘文件,该文件是 Rocky-9.4-x86_64-dvd.iso 是从
https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.4-x86_64-dvd.iso
下载来的。
在相关系统中查看该 iso 文件
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 10.2G 0 rom <== 第一个就是的
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rl_192-root 253:0 0 17G 0 lvm /
└─rl_192-swap 253:1 0 2G 0 lvm [SWAP]
准备工作是将光盘上的内容复制到一个指定的目录中,该目录就是存储软件源的地方。
这里开始将光盘文件挂载到 /media 文件夹
[root@server /]# mount /dev/cdrom /media
mount: /media: WARNING: source write-protected, mounted read-only.
[root@server /]# df -h /media/
Filesystem Size Used Avail Use% Mounted on
/dev/sr0 11G 11G 0 100% /media
这里创建一个名为 Rocky_9.4_x86_64_dvd 的目录文件,这就是存储软件源的地方,使用 cp 命令将挂载点的内容复制过来,-R进行递归的操作,表示将目录下的所有文件和子目录下一并进行处理,-v 是具体显示命令执行过程的意思。
[root@server /]# mkdir -p /var/OSimages/Rocky_9.4_x86_64_dvd
[root@server /]# cp -Rv /media/* /var/OSimages/Rocky_9.4_x86_64_dvd
--snip--
'/media/isolinux/vesamenu.c32' -> '/var/OSimages/Rocky_9.4_x86_64_dvd/isolinux/vesamenu.c32'
'/media/isolinux/vmlinuz' -> '/var/OSimages/Rocky_9.4_x86_64_dvd/isolinux/vmlinuz'
'/media/LICENSE' -> '/var/OSimages/Rocky_9.4_x86_64_dvd/LICENSE'
'/media/media.repo' -> '/var/OSimages/Rocky_9.4_x86_64_dvd/media.repo'
复制完成后,通过 tree 可以看到该软件仓库的具体结构。
[root@server /]# tree -d /var/OSimages/Rocky_9.4_x86_64_dvd/
/var/OSimages/Rocky_9.4_x86_64_dvd/
├── AppStream
│ ├── Packages
│ │ ├── 3
--snip--
│ │ └── z
│ └── repodata
├── BaseOS
│ ├── Packages
│ │ ├── a
--snip--
│ │ └── z
│ └── repodata
├── EFI
│ └── BOOT
│ └── fonts
├── images
│ └── pxeboot
└── isolinux
在该结构中有 AppStream 和 BaseOS 这两个 repository,这是从 RHEL8 开始引入的新的软件库的概念。
基础的 BaseOS 是 OS系统的基础组件,提供的是RPM形式的包。
而 AppStream 则是 这是一个特殊类型的仓库,它提供的是额外的用户空间的应用,运行时语言等,它提供了两种形式的内容:第一种是RPM形式的独立的软件包,第二种是Modules形式的包集合,它是一系列用于同时构建,测试,发布的包的集合,即将相关的包组合在一起。
到这里软件源的工作就做完了。
▷ 禁用之前的软件源
禁用之前使用的网络上的软件源是不必须的,出于让该系统就使用自己搭建的软件源的考虑这才禁用了之前的网络源。
使用 dnf configure-manager 来禁用已经使用的软件源,这里 --set-disable 就是禁止的意思,当需要启动之前的就改成 --set-enable 就可以了。
[root@server /]# dnf config-manager --set-disable \*
[root@server /]# dnf repolist
[root@server /]#
通过 dnf repolist 可以看到现在的系统已经没有了之前的网络源了。
▷ 本地源的配置文件 MyLocal.repo
禁用了之前的本地源,现在为自己搭建的源写配置文件,做到系统访问自己的源。
[root@server /]# cd /etc/yum.repos.d/
[root@server yum.repos.d]# vi MyLocal.repo
[Rocky-9.4]
name=MyLocalRepo
baseurl=file:///var/OSimages/Rocky_9.4_x86_64_dvd/BaseOS
enable=1
gpgcheck=0
使用 dnf repolist 可以看到现在的软件仓库中有自己的源了。
[root@server yum.repos.d]# dnf repolist
repo id repo name
Rocky-9.4
MyLocalRepo
[root@server yum.repos.d]# dnf clean all
0 files removed
[root@server yum.repos.d]# dnf makecache
MyLocalRepo 176 MB/s | 2.2 MB 00:00
Metadata cache created.
▷ 测试安装 tree
[root@server yum.repos.d]# dnf -y install tree
--snip--
Installed:
tree-1.8.0-10.el9.x86_64
Complete!
通过测试可以看到成功下载了 tree 命令,这说明自己搭建的源起到了作用。
▶ 通过 HTTP 的形式访问软件仓库
▷ 下载 apache/httpd 软件
[root@server yum.repos.d]# dnf -y install httpd
[root@server yum.repos.d]# curl 192.168.10.10
--snip--
<a href="https://nginx.org">NGINX™</a> is a registered trade
</footer>
</body>
</html>
▷ 连接
[root@server yum.repos.d]# ln -s /var/OSimages/ /var/www/html/OSimages
▷ 通过浏览器访问
▷▷ 额外的部分
在浏览器中如果不能访问就有可能是 SELinux 和 firewalld 的情况。
[root@server yum.repos.d]# setenforce 0
[root@server yum.repos.d]# systemctl stop firewalld

浙公网安备 33010602011771号