1. CentOS6设置本地Yum源
1.1 设置虚拟机开启时,使用两个iso镜像
1.2. 挂载这两个设备
(1) 查看系统是否使用了这两个设备
[root@repo ~]# cd /dev
[root@repo dev]# ll | grep sr
lrwxrwxrwx 1 root root 3 Nov 22 20:33 cdrom -> sr0
lrwxrwxrwx 1 root root 3 Nov 22 20:33 cdrom1 -> sr1
lrwxrwxrwx 1 root root 3 Nov 22 20:33 cdrw -> sr0
lrwxrwxrwx 1 root root 3 Nov 22 20:33 cdrw1 -> sr1
lrwxrwxrwx 1 root root 3 Nov 22 20:33 dvd -> sr0
lrwxrwxrwx 1 root root 3 Nov 22 20:33 dvd1 -> sr1
lrwxrwxrwx 1 root root 3 Nov 22 20:33 dvdrw -> sr0
lrwxrwxrwx 1 root root 3 Nov 22 20:33 dvdrw1 -> sr1
srw-rw-rw- 1 root root 0 Nov 22 20:33 log
lrwxrwxrwx 1 root root 3 Nov 22 20:33 scd0 -> sr0
lrwxrwxrwx 1 root root 3 Nov 22 20:33 scd1 -> sr1
brw-rw---- 1 root cdrom 11, 0 Nov 22 20:33 sr0 # sr0代表DVD1
brw-rw---- 1 root cdrom 11, 1 Nov 22 20:33 sr1 # sr1代表DVD2
(2) 挂载
什么是挂载?在Linux中,一切皆文件,所以用sr0来这个文件来表示DVD1这个设备,用sr1这个文件来表示DVD2这个设备,但是这两个代表设备的文件是不能直接打开来查看其中的内容的,需要挂载到指定的目录下,才能查看其中的内容,比如,把sr0这个设备挂载到/mnt/cdrom1下,代表着:打开sr0这个设备后,其中的文件就在/mnt/cdrom1中
[root@repo dev]# cd /mnt
[root@repo mnt]# mkdir cdrom1
[root@repo mnt]# mkdir cdrom2
[root@repo mnt]# mount -t iso9660 /dev/sr0 ./cdrom1
[root@repo mnt]# mount -t iso9660 /dev/sr1 ./cdrom2
# 这个命令还有其他选项
# mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom
# -t:文件系统类型 iso9660 表示光盘或者镜像
# -o:挂载方式,ro 表示以只读方式(默认),loop表示把挂载的设备当做一个磁盘分区
# 查看是否挂载成功
[root@repo mnt]# ll
total 6
dr-xr-xr-x 7 root root 4096 Aug 5 2015 cdrom1
dr-xr-xr-x 3 root root 2048 Aug 5 2015 cdrom2
[root@repo mnt]# cd cdrom1
[root@repo cdrom1]# ll
total 558
-r--r--r-- 2 root root 14 Aug 5 2015 CentOS_BuildTag
dr-xr-xr-x 3 root root 2048 Aug 5 2015 EFI
-r--r--r-- 2 root root 212 Nov 27 2013 EULA
-r--r--r-- 2 root root 18009 Nov 27 2013 GPL
dr-xr-xr-x 3 root root 2048 Aug 5 2015 images
dr-xr-xr-x 2 root root 2048 Aug 5 2015 isolinux
dr-xr-xr-x 2 root root 528384 Aug 5 2015 Packages
-r--r--r-- 2 root root 1354 Jul 25 2015 RELEASE-NOTES-en-US.html
dr-xr-xr-x 2 root root 4096 Aug 5 2015 repodata
-r--r--r-- 2 root root 1706 Nov 27 2013 RPM-GPG-KEY-CentOS-6
-r--r--r-- 2 root root 1730 Nov 27 2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r-- 2 root root 1730 Nov 27 2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r-- 2 root root 1734 Nov 27 2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r-- 1 root root 3380 Aug 5 2015 TRANS.TBL
# 这些就是DVD1.iso中的文件,方然cdrom2中的文件就是DVD2.iso中的文件,能看到这些说明挂载成功!
说明:使用mount
命令挂载后,当系统重新启动后这些挂载的配置就不再生效,所以我们需要修改配置文件/etc/fstab
来让挂载的配置永久生效
vim /etc/fstab
# 在文件的末尾添加如下内容
/dev/sr0 /mnt/cdrom1 iso9660 defaults 0 0
/dev/sr1 /mnt/cdrom2 iso9660 defaults 0 0
第一列:/dev/sr0:挂载源, 要挂载的磁盘分区或者存储设备,或者文件系统
第二列:/mnt/cdrom1:挂载点,挂载位置
第三列:iso9660:文件系统类型 :extext4文件系统,swap表示交换分区,iso9660代表镜像文件......
第四列:defaults:挂载参数(defaults、ro、loop)
第五列:0:表示dump选项,dump工具通过这个选项位置上的数字来决定文件系统否需要备份。如果是0,dump就会被忽略,事实上大多数的dump设置都是0
第六列:0:读取文件系统时候的检查顺序,允许数字是0、1、2,根目录应当获得最高的优先权1,其它所有需要被检查的设备置为2,0表示不检查
重启系统检测配置是否生效,重启后查看/mnt/cdrom1和/mnt/cdrom2下的内容,如果有以上手动配置后查看到的内容,说明配置成功!
1.3. 修改yum源的配置文件
# 找到yum源的配置文件
[root@repo cdrom2]# cd /etc/yum.repos.d/
[root@repo yum.repos.d]# ll
total 24
-rw-r--r--. 1 root root 1991 Aug 4 2015 CentOS-Base.repo
-rw-r--r--. 1 root root 647 Aug 4 2015 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 289 Aug 4 2015 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Aug 4 2015 CentOS-Media.repo
-rw-r--r--. 1 root root 6259 Aug 4 2015 CentOS-Vault.repo
# 把原来系统的备份好
[root@repo yum.repos.d]# rename .repo .repo.bak *
[root@repo yum.repos.d]# ll
total 24
-rw-r--r--. 1 root root 1991 Aug 4 2015 CentOS-Base.repo.bak
-rw-r--r--. 1 root root 647 Aug 4 2015 CentOS-Debuginfo.repo.bak
-rw-r--r--. 1 root root 289 Aug 4 2015 CentOS-fasttrack.repo.bak
-rw-r--r--. 1 root root 630 Aug 4 2015 CentOS-Media.repo.bak
-rw-r--r--. 1 root root 6259 Aug 4 2015 CentOS-Vault.repo.bak
# 新建一个repo源
[root@repo yum.repos.d]# vim myrepo.repo
[myrepo] # id,自定义
name=myrepo # name,自定义
baseurl=file:///mnt/cdrom1/ # 你的挂载点
file:///mnt/cdrom2/
gpgcheck=0 # 不检查
enabled=1 # 启用,0是不启用
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
1.4. 测试:yum安装一个软件
[root@repo yum.repos.d]# yum install -y httpd
Loaded plugins: fastestmirror, security
Setting up Install Process
file:///mnt/cdrom1/repodata/repomd.xml: [Errno 14] Could not open/read file:///mnt/cdrom1/repodata/repomd.xml
Trying other mirror.
myrepo | 4.0 kB 00:00 ...
myrepo/primary_db | 4.6 MB 00:00 ...
Resolving Dependencies
--> Running transaction check
......
Complete!
看到系统开始安装软件,说明本地yum源配置成功!
1.5 配置本地yum源的第二种方法
(1) 条件
系统中已经安装了httpd服务
启动httpd服务:service httpd start
设置httpd服务开机自启动:chkconfig httpd on
(2) 在/var/www/html
目录下创建cdrom1
和cdrom2
的软链接
[root@repo yum.repos.d]# cd /var/www/html
[root@repo html]# mkdir CentOS-6.7
[root@repo html]# ln -s /mnt/cdrom1 ./CentOS-6.7/
[root@repo html]# ln -s /mnt/cdrom2 ./CentOS-6.7/
[root@repo html]# cd CentOS-6.7/
[root@repo CentOS-6.7]# ll
total 0
lrwxrwxrwx 1 root root 11 Nov 22 22:05 cdrom1 -> /mnt/cdrom1
lrwxrwxrwx 1 root root 11 Nov 22 22:05 cdrom2 -> /mnt/cdrom2
(3) 访问80端口检查httpd服务是否正常
(4) 修改yum源的配置文件
[root@repo CentOS-6.7]# vim /etc/yum.repos.d/myrepo.repo
[myrepo]
name=myrepo
baseurl=http://repo/CentOS-6.7/cdrom1/
http://repo/CentOS-6.7/cdrom2/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
(5) 测试
[root@repo CentOS-6.7]# yum install nc -y
Loaded plugins: fastestmirror, security
Setting up Install Process
Determining fastest mirrors
* myrepo: repo
Found"Trying other mirror.
myrepo | 4.0 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package nc.x86_64 0:1.84-24.el6 will be installed
--> Finished Dependency Resolution
......
Installed:
nc.x86_64 0:1.84-24.el6
Complete!
配置成功!
(6) 两种方式的对比
第一种方式,只能在本机使用,第二种方式的iso镜像文件可以在其他服务器上
1.6 其他说明
本地yum源使用iso镜像,其中有6575个常用的软件安装包,用yum repolist
命令可以查看,但是还是会出现我们要安装的软件在该yum源中找不到的情况,这时候可以在/etc/yum.repos.d/
下存放别的yum源配置文件,多个yum源配置文件会轮询使用,即在一个中找不到软件就去别的中找,可以在再放一个国内的yum源配置文件。以下为网易和阿里和yum源文件的下载地址:
网易:
CentOS5 :http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS6 :http://mirrors.163.com/.help/CentOS6-Base-163.repo
CentOS7 :http://mirrors.163.com/.help/CentOS7-Base-163.repo
阿里:
CentOS5 : wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
CentOS6 : wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
CentOS7 : wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2. CentOS7设置本地yum源
2.1 设置系统光盘开机自动挂载
编辑/etc/fstab
文件,在末尾增加一行内容:
/dev/cdrom /mnt iso9660 defaults 0 0
验证:
-
/mnt目录下没有任何内容
-
挂载光盘到/mnt目录下
mount -a
2.2 搭建本地YUM源
-
备份/etc/yum.repos.d/目录下的所有文件
[root@node04 ~]# cd /etc/yum.repos.d/ [root@node04 yum.repos.d]# rename .repo .repo.bak *
-
写一个新的.repo文件,其中的内容如下:
# 名称自定义,后缀必须是.repo [root@node04 yum.repos.d]# vim CentOS-Local.repo # yum源的ID,必须唯一 [CentOS-7] # 此yum源的名称 name=CentOS-server # 此yum源的地址,设置为光盘的挂载点 baseurl=file:///mnt/ # 启用此yum源 enabled=1 # 不使用验证 gpgcheck=0
-
测试
执行
yum list
命令,如果可以列出很多的安装包,说明本地YUM源配置成功