在centOS中加入本地ISO yum源

注:本文转载自《liujun_live的博客》,感谢原博主的辛勤写作;原文地址:http://blog.sina.com.cn/s/blog_8ea8e9d50101em6f.html

在没有网络的情况下,本地镜像源不实为一个上等的权宜之计!


    目前linux的两大主流包管理器(基于redhat rpm包系列的yum和基于以debian deb包系列的apt-get)都提供本地dvd或ISO入源的功能,即使用本地的dvd或ISO镜像作为软件安装源。

    但ISO镜像比刻盘后再放进光驱加载来得方便,也不损耗光驱,所以不实为一个上上之选噢!


#########
  yum
#########

    相信习惯了yum安装软件包的朋友们都对yum有不错的评价,现在就给大家介绍一下,怎么把一个从网上下好的ISO dvd镜像作为源来安装软件,这在没有网络的情况下可以说是相当不错的功能噢!特别是在编译某些源码包的时候缺这缺那库的时候更能突显本地yum源的方便省事。
    这里以兼容redhat企业版的CentOS 6.2来介绍,yum的repo文件默认放置在/etc/yum.repos.d这个目录,而我们的CentOS 6已经为我们准备了一些源,其中就包括了一个未启用的本地ISO的repo, CentOS-Media.repo,默认文件内容如下:

##################
CentOS-Media.repo
##################
# CentOS-Media.repo
#
# This repo is used to mount the default locations for a CDROM / DVD on
#  CentOS-6.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c6-media [command]
#  
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=* --enablerepo=c6-media [command]

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///var/ftp/ct6
              file:///var/ftp/ct6_2
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

    我们只需修改两个地方取可配置完成:

    1. baseurl=file:///var/ftp/ct6
                        file:///var/ftp/ct6_2

    baseurl(base uniform resource location),用来指定DVD或ISO挂载目录(大家不要奇怪,为什么是这个目录?因为我的iso镜像是作为系统安装源挂载在ftp上,所以就简单地直接将该目录作为baseurl,大家可以根据自己的喜好来设定挂载目录,只要是挂目录就行),如上,我下的CentOS 6镜像的ISO有两个文件,一个3.6G(安装系统所必备)一个900MB(额外软件包)左右(主要考虑fat32文件系统单个文件不能超过4G而进行的分割(split)),所以我这里就设了两个file;大家要是下载的是4.6G左右的ISO就只需设一个就OK了。

   2.enabled=1
    将默认的enabled=0修改为enabled=1表示启用该repo

    其它选项保持默认就行,哈,也没有必要作过多的设置,用的就是简单么!呵呵!

    3.将ISO挂载到指定目录,一般习惯上我们会把ISO挂到/mnt下的任意一个空目录,比如:/mnt/iso或/mnt/ct6,呵呵,这个,It's up to you!!!  因为我下的是两个所以这里就挂两个喽!

    sudo mount -o loop /mnt/games/centos-6/centos-6.2-i386-dvd.iso /var/ftp/ct6
    sudo mount -o loop /mnt/games/centos-6/centos-6.2-i386-dvd2.iso /var/ftp/ct6_2


    4.加入开机启动
    有朋友可能会问,那每次用的时候都要手动挂上去,太麻烦了,有没有一种能自动挂载的方法?
    有的,如果想在linux开机的时候就将ISO挂上去,可以在/etc/rc.local文件中添加要挂载ISO的命令就OK,这样以后就可以到哪都有本地yum源喽!

    sudo vi /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 /mnt/games/centos-6/centos-6.2-i386-dvd.iso /var/ftp/ct6
mount -o loop /mnt/games/centos-6/centos-6.2-i386-dvd2.iso /var/ftp/ct6_2


###############
本地yum源的使用
###############
                                   
    细心的朋友可能已经注意到了,CentOS 6的CentOS-Media.repo文件中已经告诉我们最简单的使用方法了,那就是:

    yum --disablerepo=* --enablerepo=c6-media [command]   #禁用除c6-media(本地源名)以外的其它repo

    例如:
    1.安装screen
    yum --disablerepo=* --enablerepo=c6-media install screen
    2.安装dhcp
    yum --disablerepo=* --enablerepo=c6-media install dhcp*
    3.搜索vsFTP
    yum --disablerepo=* --enablerepo=c6-media search vsftp
    4.安装软件包集合,kde-desktop
    yum --disablerepo=* --enablerepo=c6-media groupinstall kde-desktop

    怎么样,是不是相当之方便呢!命令行完全和yum相同只是加了点前缀而己。


**********
小技巧
**********
        很多朋友是不是觉得yum --disablerepo=* --enablerepo=c6-media [command] ,这一长串命令太长,有时候装软件比较多时相当的"痛苦",哈,我开始就有过这样的感觉,每次要用的时候没准还要去先看看CentOS- Media.repo,因为确实有那么一点小长,后来想想,定义个别名(alias)不就OK了!
    vi ~/.bashrc   添加这么一行

    alias yi='yum --disablerepo=* --enablerepo=c6-media '  #“yi”是我自己定义的,这个可以根据自己喜好随意定义


    然后,source ~/.bashrc 使配置生效!

    接下来就可以通过以下命令进行软件安装和搜索
    yi search   <软件包>
    yi install  <软件包>

原文地址:https://www.cnblogs.com/thinkinglife/p/5001096.html