在一次安裝軟件過程中,需要依賴包,但是這個依賴包沒有在原先的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這個配置文件放上去,然後修改對應的目錄,就可以完成配置了,在多臺服務器要安裝基礎包的時候可以簡化很多操作。