注:本文转载自《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 <软件包>