阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

通过ISO镜像简单搭建本地yum仓库

142次阅读
没有评论

共计 4697 个字符,预计需要花费 12 分钟才能阅读完成。

 在一次安装软件过程中,需要依赖包,但是这个依赖包没有在原先的 ISO 源里面。因为下载的系统包有 CD1 跟 CD2,检查后发现所需的 rpm 包在 CD2 里面,直接配置 CD2 为 yum 源时缺需要 CD1 里面的 rpm 包。最后想了个办法,用软连接把两个 ISO 的包合并后得到一个完整的安装源。

在一台机器上配置后,可以在这台服务器上搭建 http 服务器,把它当作一个内网的 yum 仓库使用。通过目录区分不同版本的 yum 源,简化并统一内网服务器的 yum 源配置。

一、原始的 yum 配置。

[root@mysql-243 ~]# cat /etc/yum.repos.d/cd.repo
[iso]
name=iso
baseurl=file:///mnt/iso/
enabled=1
gpgcheck=0
[root@mysql-243 ~]# mount /dev/cdrom /mnt/iso/
mount: block device /dev/sr0 is write-protected, mounting read-only
 
  #### 安装 rrdtool-perl 时候报错 ####
[root@mysql-243 ~]# yum install rrdtool-perl -y
……
Error Downloading Packages:
  rrdtool-perl-1.3.8-6.el6.x86_64: failure: Packages/rrdtool-perl-1.3.8-6.el6.x86_64.rpm from iso: [Errno 256] No more mirrors to try.
   
  #### 查看 ISO 目录下,未发现 rpm 包 ####
[root@mysql-243 ~]# ls /mnt/iso/Packages/ |grep rrdtool-perl
 
  #### 挂载 CD2,并查看发现该 rpm 包在 CD2 上面 ####
[root@mysql-243 yum.repos.d]# umount /mnt/iso/
[root@mysql-243 ~]# mount -o loop /vm/iso/CentOS-6.5-x86_64-bin-DVD2.iso  /mnt/iso
[root@mysql-243 ~]# grep *rrdtool-perl*
 
 
  #### 再次安装时找不到其他依赖包 ####
[root@mysql-243 ~]# yum install rrdtool-perl -y
Error Downloading Packages:
  rrdtool-1.3.8-6.el6.x86_64: failure: Packages/rrdtool-1.3.8-6.el6.x86_64.rpm from iso: [Errno 256] No more mirrors to try.
  dejavu-sans-mono-fonts-2.30-2.el6.noarch: failure: Packages/dejavu-sans-mono-fonts-2.30-2.el6.noarch.rpm from iso: [Errno 256] No more mirrors to try.
  dejavu-fonts-common-2.30-2.el6.noarch: failure: Packages/dejavu-fonts-common-2.30-2.el6.noarch.rpm from iso: [Errno 256] No more mirrors to try.
  dejavu-lgc-sans-mono-fonts-2.30-2.el6.noarch: failure: Packages/dejavu-lgc-sans-mono-fonts-2.30-2.el6.noarch.rpm from iso: [Errno 256] No more mirrors to try.

二、卸载当前 ISO,将两个 ISO 分别挂载到 /mnt/cd1,/mnt/cd2 上,然后通过软链接的形式合并两个 ISO 的 rpm 包。

[root@mysql-243 ~]#umount /mnt/iso/
[root@mysql-243 ~]#mkdir -p /mnt/iso/6.5/Packages
[root@mysql-243 ~]#mkdir /mnt/cd1
[root@mysql-243 ~]#mkdir /mnt/cd2
[root@mysql-243 ~]#mount -o loop /vm/iso/CentOS-6.5-x86_64-bin-DVD1.iso  /mnt/cd1
[root@mysql-243 ~]#mount -o loop /vm/iso/CentOS-6.5-x86_64-bin-DVD2.iso  /mnt/cd2
[root@mysql-243 ~]#ln -s /mnt/cd1/Packages/* /mnt/iso/6.5/Packages/
[root@mysql-243 ~]#ln -s /mnt/cd2/Packages/* /mnt/iso/6.5/Packages/
[root@mysql-243 ~]#rm -f /mnt/iso/6.5/Packages/TRANS.TBL
[root@mysql-243 ~]#cat /mnt/cd1/Packages/TRANS.TBL /mnt/cd2/Packages/TRANS.TBL |sort > /mnt/iso/6.5/Packages/TRANS.TBL
[root@mysql-243 ~]#ln -s /mnt/cd1/repodata/ /mnt/iso/6.5/
[root@mysql-243 ~]#

三、修改 yum 配置,并测试安装。

#### 由于新建立的目录修改为 /mnt/iso/6.5/,需要对原先的 yum 源进行修改 ####
[root@mysql-243 /]# cat /etc/yum.repos.d/cd.repo |grep baseurl
baseurl=file:///mnt/iso/6.5/
[root@mysql-243 ~]#yum clean all
[root@mysql-243 ~]#yum list all
  #### 整合后能够成功安装 rrdtool-perl ####
[root@mysql-243 ~]#yum install rrdtool-perl -y
……
Installed:
  rrdtool-perl.x86_64 0:1.3.8-6.el6                                                                                                                                   
Dependency Installed:
  dejavu-fonts-common.noarch 0:2.30-2.el6  dejavu-lgc-sans-mono-fonts.noarch 0:2.30-2.el6  dejavu-sans-mono-fonts.noarch 0:2.30-2.el6  rrdtool.x86_64 0:1.3.8-6.el6
Complete!

四、接下来部署 apache 服务搭建本地的 yum 源,将 /mnt/iso/ 目录以 http 的方式发布出去。

#### 安装 apache ####
[root@mysql-243 ~]#yum install httpd -y
 
 
#### 发布 yum 仓库 ####
[root@mysql-243 ~]#cat /etc/httpd/conf.d/yum.conf
NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot /mnt/iso/
</VirtualHost>
<Directory “/mnt/iso/”>
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
[root@mysql-243 ~]# chkconfig  httpd –level 345 on
[root@mysql-243 ~]#/etc/init.d/httpd  restart
 
 
#### 添加 ISO 盘开机自动挂载。直接将挂载写在 rc.local 文件里。####
#### 此处不建议修改 /etc/fstab,以避免移除 ISO 导致系统启动失败。####
[root@mysql-243 ~]# cat  /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
mount -o loop /vm/iso/CentOS-6.5-x86_64-bin-DVD1.iso  /mnt/cd1
mount -o loop /vm/iso/CentOS-6.5-x86_64-bin-DVD2.iso  /mnt/cd2

如果内网有其他版本的系统,只需要在 /mnt/iso 下面新建相应的目录,将镜像链接到该目录下即可,无需修改 apache 的配置。如需要搭建 centos7.2 的源,只需把 7.2 的镜像链接到 /mnt/iso/7.2/ 这个目录底下。

五、在另一台服务器配置 yum 源测试。

[root@mysql-244 ~]# cat /etc/yum.repos.d/http243.repo
[http243]
name=http243
baseurl=http://192.168.175.243/6.5/
enabled=1
gpgcheck=0
[root@mysql-244 ~]# yum clean all
[root@mysql-244 ~]# yum list all
[root@mysql-243 ~]# yum install rrdtool-perl -y

在内网的其他服务器上,只需将 /etc/yum.repos.d/http243.repo 这个配置文件放上去,然后修改对应的目录,就可以完成配置了,在多台服务器要安装基础包的时候可以简化很多操作。

更多 YUM 相关教程见以下内容

RHEL7 本地 yum 源配置 http://www.linuxidc.com/Linux/2017-01/139140.htm

CentOS 7 使用阿里云的 yum 源、PIP 源 http://www.linuxidc.com/Linux/2017-01/13966.htm

CentOS 及 Red Hat Linux 安装 yum 源  http://www.linuxidc.com/Linux/2017-02/140205.htm

CentOS 7 更改 yum 源与更新系统 http://www.linuxidc.com/Linux/2017-01/140067.htm

RedHat7.0 配置本地 yum 源  http://www.linuxidc.com/Linux/2017-01/139148.htm 

软件包管理之前端管理工具 yum  http://www.linuxidc.com/Linux/2017-02/140270.htm

CentOS 7 使用阿里云的 yum 源、PIP 源 http://www.linuxidc.com/Linux/2017-01/13966.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/141171.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4697字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中