Debian & CentOS建立本地iso源

时间:2023-03-08 20:28:48
Debian & CentOS建立本地iso源

在宿舍搞开发的时候经常遇到有些工具需要安装,没有网络,这时候只能靠mount本地的iso镜像来搞,结果像Debian有3张安装光盘,CentOS有2张光盘,有时候安装包不在第一张光盘里,而在第二张光盘里,这时候需要卸载掉第一张盘,然后进入虚拟机设置,载入第二张盘,重新挂载,重新更新源数据库,有时候挂载一次还不一定成功要反复折腾多次才行,实在是烦人,所以研究了下能不能直接将iso挂载成本地的源,结果测试成功,写下来分享下。

Debian8:debian8有3张光盘,先将光盘拷贝到虚拟机里面,然后找个目录新建三个挂载点,我这里用了/home下面的file1、file2、file3作为挂载点,执行:

 mount -o loop debian-8.4.-i386-DVD-.iso /home/file1
mount -o loop debian-8.4.-i386-DVD-.iso /home/file2
mount -o loop debian-8.4.-i386-DVD-.iso /home/file3

挂在成功后,进入/etc/apt目录下,将source.list拷贝为source.list.bk做备份,然后vim source.list,修改为:

 deb file:///home/file1 jessie contrib main
deb file:///home/file2 jessie contrib main
deb file:///home/file3 jessie contrib main

保存退出,执行:

 apt update

发现确实识别到了仓库:

 Get: file: jessie Release [18.5 kB]
Get: file: jessie Release [16.3 kB]
Get: file: jessie Release [13.8 kB]
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.

然后就可以随便 apt install 了,又方便,又快捷。。。

CentOS6:CentOS6有2张光盘,先将iso文件拷贝到虚拟机里面,然后随便找两个目录做挂载点,我这里在/mnt下面新建了file1和file2两个目录作为挂载点,然后执行:

 mount -o loop /home/CentOS-6.9-i386-bin-DVD1.iso /mnt/file1
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:

 [local-iso]
name=CentOS-$releasever - Media
baseurl=file:///mnt/file1
file:///mnt/file2
gpgcheck=
enabled=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

第1行[ ]里面的内容随便写,不改也可以,我这里修改了主要是为了方便查看安装软件包的时候是否真是从这个仓库安装的。修改完后保存退出,执行:

 yum makecache

生成仓库数据缓存时就可以发现确实是识别了 local-iso 这个仓库:

 已加载插件:fastestmirror, security
Determining fastest mirrors
* local-iso:
local-iso | 4.0 kB : ...
local-iso/group_gz | kB : ...
local-iso/filelists_db | 5.2 MB : ...
local-iso/primary_db | 3.7 MB : ...
local-iso/other_db | 2.1 MB : ...
元数据缓存已建立

然后安装个软件试试看:

 root@CentOS /etc/yum.repos.d# yum -y install gcc
已加载插件:fastestmirror, security
设置安装进程
Loading mirror speeds from cached hostfile
* local-iso:
解决依赖关系
--> 执行事务检查
---> Package gcc.i686 :4.4.-.el6 will be 安装
--> 处理依赖关系 cpp = 4.4.-.el6,它被软件包 gcc-4.4.-.el6.i686 需要
--> 处理依赖关系 cloog-ppl >= 0.15,它被软件包 gcc-4.4.-.el6.i686 需要
--> 执行事务检查
---> Package cloog-ppl.i686 :0.15.-1.2.el6 will be 安装
--> 处理依赖关系 libppl_c.so.,它被软件包 cloog-ppl-0.15.-1.2.el6.i686 需要
--> 处理依赖关系 libppl.so.,它被软件包 cloog-ppl-0.15.-1.2.el6.i686 需要
---> Package cpp.i686 :4.4.-.el6 will be 安装
--> 处理依赖关系 libmpfr.so.,它被软件包 cpp-4.4.-.el6.i686 需要
--> 执行事务检查
---> Package mpfr.i686 :2.4.-.el6 will be 安装
---> Package ppl.i686 :0.10.-.el6 will be 安装
--> 完成依赖关系计算 依赖关系解决 =====================================================================================================================================================================
软件包 架构 版本 仓库 大小
=====================================================================================================================================================================
正在安装:
gcc i686 4.4.-.el6 local-iso 8.2 M
为依赖而安装:
cloog-ppl i686 0.15.-1.2.el6 local-iso k
cpp i686 4.4.-.el6 local-iso 3.4 M
mpfr i686 2.4.-.el6 local-iso k
ppl i686 0.10.-.el6 local-iso 1.3 M 事务概要
=====================================================================================================================================================================
Install Package(s) 总下载量: M
Installed size: M
下载软件包:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 MB/s | MB :
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid : CentOS- Key (CentOS Official Signing Key) <centos--key@centos.org>
Package: centos-release--.el6.12.3.i686 (@anaconda-CentOS-.i386/6.9)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
正在安装 : ppl-0.10.-.el6.i686 /
正在安装 : cloog-ppl-0.15.-1.2.el6.i686 /
正在安装 : mpfr-2.4.-.el6.i686 /
正在安装 : cpp-4.4.-.el6.i686 /
正在安装 : gcc-4.4.-.el6.i686 /
Verifying : cpp-4.4.-.el6.i686 /
Verifying : cloog-ppl-0.15.-1.2.el6.i686 /
Verifying : mpfr-2.4.-.el6.i686 /
Verifying : ppl-0.10.-.el6.i686 /
Verifying : gcc-4.4.-.el6.i686 / 已安装:
gcc.i686 :4.4.-.el6 作为依赖被安装:
cloog-ppl.i686 :0.15.-1.2.el6 cpp.i686 :4.4.-.el6 mpfr.i686 :2.4.-.el6 ppl.i686 :0.10.-.el6 完毕!

发现确实安装成功了,将挂载动作写入fstab让开机时自动挂载,再就不用为了安装软件切换光盘了,方便了不少。。。而且,从光盘安装软件,速度快得很呢。。。。写入fstab方式如下:

 /home/CentOS-6.9-i386-bin-DVD1.iso /mnt/file1    iso9660    defaults,loop,ro
/home/CentOS-6.9-i386-bin-DVD2.iso /mnt/file2 iso9660 defaults,loop,ro

保存退出,然后执行:

 mount -a

就可以啦。。。