
# 利用ISO为镜像配置本地源
#### 背景
在Linux云服务器上安装软件的时候经常会遇到网络不通或者网络源失效的情况，如果这时候有系统对应的ISO文件，就可以比较方便地使用ISO入源。
#### 包管理器
配置本地源需要先确认使用的是哪种包管理器，一般常用的包管理器有三种：yum、apt、zypper。
- 使用yum一般是RHEL-based系统：rhel、centos、euler、fedora
- 使用apt一般是debian、ubuntu
- 使用zypper一般是suse、opensuse
 
 #### 配置本地源
请根据操作系统类型分别参考[yum的配置流程]、[apt的配置流程]或者[zypper的配置流程]。
- yum的配置流程
  1. 将ISO文件上传到云服务器内部，执行以下命令，将其挂载至"/mnt"路径。
     ```
     mount XXX.iso /mnt
     ```
     
  
  2. 进入yum配置文件所在路径"/etc/yum.repo.d"，将其他后缀名为".repo"的文件进行备份，并且新建一个配置文件，例如"local.repo"。在"local.repo"中添加如下内容：
     ```
     [rhel-local]
     name=local
     baseurl=file:///mnt
     enabled=1
     gpgcheck=0
     ```
     ![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/note_3.0-zh-cn.png)
     配置文件中指定的"/mnt"要和ISO挂载路径一致。
     
  
  3. 清理yum。
     ```
     yum clean all
     ```
     
  
  4. 重新生成缓存。
     ```
     yum makecache
     ```
     
   
- apt的配置流程
  1. 将ISO文件上传至云服务器内部，执行以下命令，将其挂载至"/mnt"路径。
     ```
     mount XXX.iso /mnt
     ```
     
  
  2. 添加apt cdrom源。
     ```
     apt-cdrom -m -d /mnt/ add
     ```
     
  
  3. 在配置文件中查看添加的源。
     ```
     cat /etc/apt/sources.list
     ```
     
  
  4. 更新源。
     ```
     apt-get update
     ```
     
   
- zypper的配置流程
  1. 将ISO文件上传至云服务器内部。
  
  2. ISO入源。 **sudo zypper addrepo iso:/?iso=** */media/SOFTWARE/openSUSE-11.4-DVD-i586.iso* *DVDISO*
     其中，
     - "/media/SOFTWARE/openSUSE-11.4-DVD-i586.iso"为ISO文件所在位置。
     
     - "DVDISO"是这个源的别名。
      
  
  3. 查看源是否添加成功。
     ```
     zypper repos
     ```
     
  
  4. 刷新源。
     ```
     zypper refresh
     ```
     
   
 
#### 示例
[配置本地源]中的步骤一般为通用步骤，操作系统实际的发行版略有差别，但是基本步骤都是要将源添加进去，并刷新。以下内容以Debian 10.1.0和CentOS 8.0为例，介绍添加本地源的方法。
- Debian 10.1.0 执行**cat /etc/apt/sources.list**查看"sources.list"配置文件中有一条默认配置的cdrom源：
  图1查看源
  
  
  ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0214961595.png "点击放大")
  这条源指向的源路径就是光驱设备"/dev/cdrom"，Debian 10.1.0做了一个软链接，将光驱设备链接到了"/media/cdrom"路径。
  图2查看media目录   
  ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0214962691.png)
  因此将ISO挂载到"/media/cdrom"，就可以正常使用ISO源了。
  
- CentOS 8.0
  1. 将ISO挂载到"/mnt"路径。
  
  2. 将"/etc/yum.repo.d"路径的源文件，除了"CentOS-Media.repo"以外，全部重命名成后缀为".bak"的文件，或者移动到别的目录。
  
  3. 修改"CentOS-Media.repo"文件。
     图3修改"CentOS-Media.repo"文件   
     ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0214967772.png "点击放大")
     包含红框中的六处修改点：
     - baseurl：配置为"file:///mnt/BaseOS"和"file:///mnt/AppStream"，"mnt"为ISO挂载目录，注意删除默认配置的多余的无效路径，否则会导致checksum失败。
     
     - gpgcheck改为0，即不检查。
     
     - enabled改为1，使生效。
      
  
  4. 清理yum，并重新生成缓存。
     ```
     yum clean all && yum makecache
     ```
     
   
 
