在宿舍搞开发的时候经常遇到有些工具需要安装,没有网络,这时候只能靠mount本地的iso镜像来搞,结果像Debian有3张安装光盘,CentOS有2张光盘,有时候安装包不在第一张光盘里,而在第二张光盘里,这时候需要卸载掉第一张盘,然后进入虚拟机设置,载入第二张盘,重新挂载,重新更新源数据库,有时候挂载一次还不一定成功要反复折腾多次才行,实在是烦人,所以研究了下能不能直接将iso挂载成本地的源,结果测试成功,写下来分享下。
Debian8:debian8有3张光盘,先将光盘拷贝到虚拟机里面,然后找个目录新建三个挂载点,我这里用了/home下面的file1、file2、file3作为挂载点,执行:
1 mount -o loop debian-8.4.0-i386-DVD-1.iso /home/file1 2 mount -o loop debian-8.4.0-i386-DVD-2.iso /home/file2 3 mount -o loop debian-8.4.0-i386-DVD-3.iso /home/file3
挂在成功后,进入/etc/apt目录下,将source.list拷贝为source.list.bk做备份,然后vim source.list,修改为:
1 deb file:///home/file1 jessie contrib main 2 deb file:///home/file2 jessie contrib main 3 deb file:///home/file3 jessie contrib main
保存退出,执行:
1 apt update
发现确实识别到了仓库:
1 Get:1 file: jessie Release [18.5 kB] 2 Get:2 file: jessie Release [16.3 kB] 3 Get:3 file: jessie Release [13.8 kB] 4 Reading package lists... Done 5 Building dependency tree 6 Reading state information... Done 7 All packages are up to date.
然后就可以随便 apt install 了,又方便,又快捷。。。
CentOS6:CentOS6有2张光盘,先将iso文件拷贝到虚拟机里面,然后随便找两个目录做挂载点,我这里在/mnt下面新建了file1和file2两个目录作为挂载点,然后执行:
1 mount -o loop /home/CentOS-6.9-i386-bin-DVD1.iso /mnt/file1 2 mount -o loop /home/CentOS-6.9-i386-bin-DVD2.iso /mnt/file2
并将/etc/yum.repos.d/下面除了CentOS-Media.repo之外所有的以.repo结尾的文件全部重命名为:.repo.bk,然后修改CentOS-Media.repo:
1 [local-iso] 2 name=CentOS-$releasever - Media 3 baseurl=file:///mnt/file1 4 file:///mnt/file2 5 gpgcheck=1 6 enabled=1 7 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
第1行[ ]里面的内容随便写,不改也可以,我这里修改了主要是为了方便查看安装软件包的时候是否真是从这个仓库安装的。修改完后保存退出,执行:
1 yum makecache
生成仓库数据缓存时就可以发现确实是识别了 local-iso 这个仓库:
1 已加载插件:fastestmirror, security 2 Determining fastest mirrors 3 * local-iso: 4 local-iso | 4.0 kB 00:00 ... 5 local-iso/group_gz | 220 kB 00:00 ... 6 local-iso/filelists_db | 5.2 MB 00:00 ... 7 local-iso/primary_db | 3.7 MB 00:00 ... 8 local-iso/other_db | 2.1 MB 00:00 ... 9 元数据缓存已建立
然后安装个软件试试看:
1 root@CentOS /etc/yum.repos.d# yum -y install gcc 2 已加载插件:fastestmirror, security 3 设置安装进程 4 Loading mirror speeds from cached hostfile 5 * local-iso: 6 解决依赖关系 7 --> 执行事务检查 8 ---> Package gcc.i686 0:4.4.7-18.el6 will be 安装 9 --> 处理依赖关系 cpp = 4.4.7-18.el6,它被软件包 gcc-4.4.7-18.el6.i686 需要 10 --> 处理依赖关系 cloog-ppl >= 0.15,它被软件包 gcc-4.4.7-18.el6.i686 需要 11 --> 执行事务检查 12 ---> Package cloog-ppl.i686 0:0.15.7-1.2.el6 will be 安装 13 --> 处理依赖关系 libppl_c.so.2,它被软件包 cloog-ppl-0.15.7-1.2.el6.i686 需要 14 --> 处理依赖关系 libppl.so.7,它被软件包 cloog-ppl-0.15.7-1.2.el6.i686 需要 15 ---> Package cpp.i686 0:4.4.7-18.el6 will be 安装 16 --> 处理依赖关系 libmpfr.so.1,它被软件包 cpp-4.4.7-18.el6.i686 需要 17 --> 执行事务检查 18 ---> Package mpfr.i686 0:2.4.1-6.el6 will be 安装 19 ---> Package ppl.i686 0:0.10.2-11.el6 will be 安装 20 --> 完成依赖关系计算 21 22 依赖关系解决 23 24 ===================================================================================================================================================================== 25 软件包 架构 版本 仓库 大小 26 ===================================================================================================================================================================== 27 正在安装: 28 gcc i686 4.4.7-18.el6 local-iso 8.2 M 29 为依赖而安装: 30 cloog-ppl i686 0.15.7-1.2.el6 local-iso 93 k 31 cpp i686 4.4.7-18.el6 local-iso 3.4 M 32 mpfr i686 2.4.1-6.el6 local-iso 153 k 33 ppl i686 0.10.2-11.el6 local-iso 1.3 M 34 35 事务概要 36 ===================================================================================================================================================================== 37 Install 5 Package(s) 38 39 总下载量:13 M 40 Installed size: 29 M 41 下载软件包: 42 --------------------------------------------------------------------------------------------------------------------------------------------------------------------- 43 总计 31 MB/s | 13 MB 00:00 44 warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 45 Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 46 Importing GPG key 0xC105B9DE: 47 Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org> 48 Package: centos-release-6-9.el6.12.3.i686 (@anaconda-CentOS-201703281202.i386/6.9) 49 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 50 运行 rpm_check_debug 51 执行事务测试 52 事务测试成功 53 执行事务 54 正在安装 : ppl-0.10.2-11.el6.i686 1/5 55 正在安装 : cloog-ppl-0.15.7-1.2.el6.i686 2/5 56 正在安装 : mpfr-2.4.1-6.el6.i686 3/5 57 正在安装 : cpp-4.4.7-18.el6.i686 4/5 58 正在安装 : gcc-4.4.7-18.el6.i686 5/5 59 Verifying : cpp-4.4.7-18.el6.i686 1/5 60 Verifying : cloog-ppl-0.15.7-1.2.el6.i686 2/5 61 Verifying : mpfr-2.4.1-6.el6.i686 3/5 62 Verifying : ppl-0.10.2-11.el6.i686 4/5 63 Verifying : gcc-4.4.7-18.el6.i686 5/5 64 65 已安装: 66 gcc.i686 0:4.4.7-18.el6 67 68 作为依赖被安装: 69 cloog-ppl.i686 0:0.15.7-1.2.el6 cpp.i686 0:4.4.7-18.el6 mpfr.i686 0:2.4.1-6.el6 ppl.i686 0:0.10.2-11.el6 70 71 完毕!
发现确实安装成功了,将挂载动作写入fstab让开机时自动挂载,再就不用为了安装软件切换光盘了,方便了不少。。。而且,从光盘安装软件,速度快得很呢。。。。写入fstab方式如下:
1 /home/CentOS-6.9-i386-bin-DVD1.iso /mnt/file1 iso9660 defaults,loop,ro 0 0 2 /home/CentOS-6.9-i386-bin-DVD2.iso /mnt/file2 iso9660 defaults,loop,ro 0 0
保存退出,然后执行:
1 mount -a
就可以啦。。。