目录

一、部署本地源(ISO文件上传到系统/拷贝挂载镜像)

1.1.部署本地源的原因

1.2.部署流程

1.2.1.配置步骤(两种方式)

1)上传iso文件(或则拷贝系统iso文件)

2)创建挂载点目标目录

3)挂载ISO(只读模式,不影响原文件) 

4)删除ISO文件

5)创建本地源配置文件

6)验证配置有效性

二、整体示例

2.1.整体示例(上传镜像的方式)

2.2.整体示例(拷贝镜像的方式)


一、部署本地源(ISO文件上传到系统/拷贝挂载镜像

1.1.部署本地源的原因

        在实际的生产中,很多情况并不能直接将服务器接入互联网中来进行使用(如果可以接入的话,直接使用我们的公有云是最方便的,像阿里云,腾讯云或者各大高校镜像库等,这就使得我们不能直接接通互联网来直接进行软件包的下载、更新,这个时候如果需要避免接通外网,但是又有对离线环境安装软件包的需求(如果说镜像包里边找不到的话,那么就需要去网上去找对应的安装了,也可以先使用公有云进行下载,再进行相互拷贝)。就可以使用镜像来作为本地源来进行管理。

原因:在实际生产的过程中,为避免安装很多无关不必要的软件,以及减少软件漏洞,很多时候投入生产的操作系统,安装方式都是最小化安装,这就使得其实ISO中自带的很多安装包并没有得到安装。

1.2.部署流程

在Linux系统中,若要将ISO作为本地源,其核心思路就是将ISO隐式挂载在操作系统上,这种通过隐式挂载的方式可以直接访问ISO文件内的文件系统内容。

核心原理:
        ISO镜像本质是一个文件系统快照(通常为iso9660格式),包含本地源所需的repodata(元数据)和Packages(软件包)等目录。不挂载时,需通过以下两种方式让包管理器(如yum/dnf、apt)识别ISO内的文件。

        部分Linux发行版的包管理器(如yum/dnf)支持通过循环设备(loop device)隐式挂载ISO,直接在配置文件中指定ISO文件路径。系统会自动处理ISO的读取和解码。

1.2.1.配置步骤(两种方式)

1)上传iso文件(或则拷贝系统iso文件)

或则将挂载的镜像拷贝出一份,如下

先找到对应镜像位置:

2)创建挂载点目标目录

mkdir -p /tmp/iso-mnt /mnt/local-repo

这里为啥需要创建两个目录,解释一下,第一个目录我们可以使用来存放iso的存放位置,第二个目录则是作为我们实际loop挂载的目录。 

3)挂载ISO(只读模式,不影响原文件) 

mount -o loop,ro /iso/CentOS-7-x86_64-DVD-2009.iso /tmp/iso-mount 

4)删除ISO文件

此时ISO已无用,可删除

5)创建本地源配置文件

在/etc/yum.repos.d/目录下新建.repo文件(如localyum.repo):

[localyum]

name=Local ISO Repository

baseurl=file:///mnt/local-repo  # 若直接使用ISO挂载路径,此处为file:///mnt

enabled=1         # 启用该源

gpgcheck=0      # 若ISO未签名,关闭GPG校验(或配置gpgkey指向ISO内的公钥)

如果是跟着步骤来的话,直接复制粘贴以下就行:

[localyum]

name=Local ISO Repository

baseurl=file:///mnt/local-repo 

enabled=1 

gpgcheck=0  

注意:在yum配置文件中,注释是不被允许的。如果您需要注释掉某一行配置,可以使用其他方式来实现,比如将该行配置前面加上井号(#)来表示注释。但是请注意,这种方式可能会导致yum无法正确解析配置文件,从而引发错误。

6)验证配置有效性

刷新包管理器缓存,确认ISO内的源被识别:

yum clean all && yum makecache

验证:

测试安装WireShark软件

二、整体示例

2.1.整体示例(上传镜像的方式)

[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 1803 1月  27 14:33 anaconda-ks.cfg
-rw-r--r--. 1 root root 1851 1月  27 14:45 initial-setup-ks.cfg
[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 1803 1月  27 14:33 anaconda-ks.cfg
-rw-r--r--. 1 root root 1851 1月  27 14:45 initial-setup-ks.cfg
[root@localhost ~]# cd /opt/
[root@localhost opt]# mkdir soft
[root@localhost opt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 8月  25 2018 rh
drwxr-xr-x. 2 root root 6 1月  27 19:30 soft
[root@localhost opt]# cd soft
[root@localhost soft]# ll
总用量 4464640
-rw-r--r--. 1 root root 4571791360 1月  27 19:35 OracleLinux-Release7-Update6-x86_64-dvd.iso
[root@localhost soft]# mkdir -p /media/iso
[root@localhost soft]# ll
总用量 4464640
-rw-r--r--. 1 root root 4571791360 1月  27 19:35 OracleLinux-Release7-Update6-x86_64-dvd.iso
[root@localhost soft]# mount -o loop /opt/soft/OracleLinux-Release7-Update6-x86_64-dvd.iso /media/iso
mount: /dev/loop0 写保护,将以只读方式挂载
[root@localhost soft]# ll
总用量 4464640
-rw-r--r--. 1 root root 4571791360 1月  27 19:35 OracleLinux-Release7-Update6-x86_64-dvd.iso
[root@localhost soft]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
总用量 16
drwxr-xr-x. 2 root root     6 1月  27 15:16 bak
-rw-r--r--. 1 root root 13093 11月  2 2018 public-yum-ol7.repo
[root@localhost yum.repos.d]# mv public-yum-ol7.repo bak/
[root@localhost yum.repos.d]# ll
总用量 0
drwxr-xr-x. 2 root root 33 1月  27 19:41 bak
[root@localhost yum.repos.d]# ll
总用量 0
drwxr-xr-x. 2 root root 33 1月  27 19:41 bak
[root@localhost yum.repos.d]# vi localYum.repo
[root@localhost yum.repos.d]# 
[root@localhost yum.repos.d]# cat /etc/yum.repos.d/localYum.repo
[localyum]
name=LocalYum
baseurl=file:///media/iso
enabled=1
gpgcheck=0
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# yum clean all
已加载插件:langpacks, ulninfo
正在清理软件源: localyum
[root@localhost yum.repos.d]# yum makecache
已加载插件:langpacks, ulninfo
localyum                                                                                                                                        | 3.6 kB  00:00:00
(1/4): localyum/group_gz                                                                                                                        | 144 kB  00:00:00
(2/4): localyum/filelists_db                                                                                                                    | 3.8 MB  00:00:00
(3/4): localyum/primary_db                                                                                                                      | 5.0 MB  00:00:00
(4/4): localyum/other_db                                                                                                                        | 1.6 MB  00:00:00
元数据缓存已建立
[root@localhost yum.repos.d]# yum install -y telnet
已加载插件:langpacks, ulninfo
正在解决依赖关系
--> 正在检查事务
---> 软件包 telnet.x86_64.1.0.17-64.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=======================================================================================================================================================================
 Package                              架构                                 版本                                           源                                      大小
=======================================================================================================================================================================
正在安装:
 telnet                               x86_64                               1:0.17-64.el7                                  localyum                                64 k

事务概要
=======================================================================================================================================================================
安装  1 软件包

总下载量:64 k
安装大小:113 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 1:telnet-0.17-64.el7.x86_64                                                                                                                        1/1
  验证中      : 1:telnet-0.17-64.el7.x86_64                                                                                                                        1/1

已安装:
  telnet.x86_64 1:0.17-64.el7

完毕!
[root@localhost yum.repos.d]# cat /etc/yum
yum/         yum.conf     yum.repos.d/
[root@localhost yum.repos.d]# 

2.2.整体示例(拷贝镜像的方式)

[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 1925 1月  27 2026 anaconda-ks.cfg
-rw-r--r--. 1 root root 1973 1月  27 2026 initial-setup-ks.cfg
[root@localhost ~]# df -Th
文件系统            类型      容量  已用  可用 已用% 挂载点
devtmpfs            devtmpfs  2.8G     0  2.8G    0% /dev
tmpfs               tmpfs     2.8G     0  2.8G    0% /dev/shm
tmpfs               tmpfs     2.8G   11M  2.8G    1% /run
tmpfs               tmpfs     2.8G     0  2.8G    0% /sys/fs/cgroup
/dev/mapper/ol-root xfs        50G  4.3G   45G    9% /
/dev/sda1           xfs      1014M  226M  789M   23% /boot
/dev/mapper/ol-home xfs        24G   33M   24G    1% /home
tmpfs               tmpfs     570M   12K  570M    1% /run/user/989
tmpfs               tmpfs     570M     0  570M    0% /run/user/0
[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 1925 1月  27 2026 anaconda-ks.cfg
-rw-r--r--. 1 root root 1973 1月  27 2026 initial-setup-ks.cfg

[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 1925 1月  27 2026 anaconda-ks.cfg
-rw-r--r--. 1 root root 1973 1月  27 2026 initial-setup-ks.cfg
[root@localhost ~]# cd /opt/
[root@localhost opt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 8月  25 2018 rh
[root@localhost opt]# mkdir soft
[root@localhost opt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 8月  25 2018 rh
drwxr-xr-x. 2 root root 6 1月  27 19:23 soft
[root@localhost opt]# cd soft/
[root@localhost opt]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1  4.3G  0 rom
sda           8:0    0   80G  0 disk
├─sda2        8:2    0   79G  0 part
│ ├─ol-swap 252:1    0  5.9G  0 lvm  [SWAP]
│ ├─ol-home 252:2    0   24G  0 lvm  /home
│ └─ol-root 252:0    0 49.1G  0 lvm  /
└─sda1        8:1    0    1G  0 part /boot
[root@localhost soft]# ll
总用量 0
[root@localhost soft]# cp /dev/sr0 /opt/soft/
[root@localhost soft]# 
[root@localhost soft]#
[root@localhost soft]# 
[root@localhost soft]# ll
总用量 8929280
-rw-r--r--. 1 root root 4571791360 1月  27 19:37 iso7.6
-rw-r--r--. 1 root root 4571791360 1月  27 19:31 OracleLinux-Release7-Update6-x86_64-dvd.iso
[root@localhost soft]# 
[root@localhost soft]#
[root@localhost soft]# mount -o loop /opt/soft/iso7.6 /media/iso
mount: /opt/soft/iso7.6 已经挂载
[root@localhost soft]# ll
总用量 8929280
-rw-r--r--. 1 root root 4571791360 1月  27 19:37 iso7.6
-rw-r--r--. 1 root root 4571791360 1月  27 19:31 OracleLinux-Release7-Update6-x86_64-dvd.iso
[root@localhost soft]# df -Th
文件系统            类型      容量  已用  可用 已用% 挂载点
devtmpfs            devtmpfs  2.8G     0  2.8G    0% /dev
tmpfs               tmpfs     2.8G     0  2.8G    0% /dev/shm
tmpfs               tmpfs     2.8G   11M  2.8G    1% /run
tmpfs               tmpfs     2.8G     0  2.8G    0% /sys/fs/cgroup
/dev/mapper/ol-root xfs        50G   17G   33G   35% /
/dev/sda1           xfs      1014M  226M  789M   23% /boot
/dev/mapper/ol-home xfs        24G   33M   24G    1% /home
tmpfs               tmpfs     570M   12K  570M    1% /run/user/989
tmpfs               tmpfs     570M     0  570M    0% /run/user/0
/dev/loop1          iso9660   4.3G  4.3G     0  100% /media/iso
[root@localhost soft]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
总用量 4
drwxr-xr-x. 2 root root 33 1月  27 19:39 bak
-rw-r--r--. 1 root root 85 1月  27 19:51 localYum.repo
[root@localhost yum.repos.d]# vi localYum.repo
[root@localhost yum.repos.d]# cat localYum.repo
[localyum]
name=LocalYum
baseurl=file:///media/iso
enabled=1
gpgcheck=0    
[root@localhost yum.repos.d]# 
[root@localhost yum.repos.d]# yum clean all
已加载插件:langpacks, ulninfo
正在清理软件源: localyum
[root@localhost yum.repos.d]# 
[root@localhost yum.repos.d]# yum makecache
已加载插件:langpacks, ulninfo
localyum                                                                                                                                        | 3.6 kB  00:00:00
(1/4): localyum/group_gz                                                                                                                        | 144 kB  00:00:00
(2/4): localyum/filelists_db                                                                                                                    | 3.8 MB  00:00:00
(3/4): localyum/primary_db                                                                                                                      | 5.0 MB  00:00:00
(4/4): localyum/other_db                                                                                                                        | 1.6 MB  00:00:00
元数据缓存已建立
[root@localhost yum.repos.d]# yum install -y telnet
已加载插件:langpacks, ulninfo
正在解决依赖关系
--> 正在检查事务
---> 软件包 telnet.x86_64.1.0.17-64.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=======================================================================================================================================================================
 Package                              架构                                 版本                                           源                                      大小
=======================================================================================================================================================================
正在安装:
 telnet                               x86_64                               1:0.17-64.el7                                  localyum                                64 k

事务概要
=======================================================================================================================================================================
安装  1 软件包

总下载量:64 k
安装大小:113 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 1:telnet-0.17-64.el7.x86_64                                                                                                                        1/1
  验证中      : 1:telnet-0.17-64.el7.x86_64                                                                                                                        1/1

已安装:
  telnet.x86_64 1:0.17-64.el7

完毕!
[root@localhost yum.repos.d]#
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐