专栏首页Jed的技术阶梯Linux设置本地yum源

Linux设置本地yum源

0. 软件说明

linux系统:CentOS-6.7 系统镜像:CentOS-6.7-x86_64-bin-DVD1.iso、CentOS-6.7-x86_64-bin-DVD2.iso

1. 设置虚拟机开启时,使用两个iso镜像

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下的内容,如果有以上手动配置后查看到的内容,说明配置成功!

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

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源配置成功!

5. 配置本地yum源的第二种方法

(1) 条件 系统中已经安装了httpd服务 启动httpd服务:service httpd start 设置httpd服务开机自启动:chkconfig httpd on (2) 在/var/www/html目录下创建cdrom1cdrom2的软链接

[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镜像文件可以在其他服务器上

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 002.Docker镜像制作之基于容器制作镜像

    CoderJed
  • 利用Sqoop实现HDFS的数据与MySQL数据的互导

    注意: 查询语句必须包含where条件,即使不需要where条件,也需要写上"where $CONDITIONS"来表示没有select语句没有where条件

    CoderJed
  • 008.Linux文件目录管理命令基础

    CoderJed
  • CentOS7.4中Docker以rw方式挂载volume报Permission denied的解决思路

    版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

    耕耘实录
  • 《调教命令行04》触碰Linux的每个角落(长文)

    想要了解一个人,就先要了解他的灵魂。可是别说是灵魂了,就连一个真心的笑容,你在生活中也很难见到。更多的是菩萨手段,修罗心肠。很多人喜欢孩子的原因,就是因为他们悲...

    xjjdog
  • Linux基础命令之mktemp详解

    ????? 创建临时文件或者目录,这样的创建方式是安全的。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fe...

    砸漏
  • 剑指Offer - 面试题54. 二叉搜索树的第k大节点(二叉树循环遍历)

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kd...

    Michael阿明
  • linux每日命令(29):chown命令

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管...

    用户1214487
  • 利用rbd命令把 ceph pool 中的一个镜像导出

    查看镜像 [root@node1 ~]# rbd ls images a56330e7-79d7-4639-a68f-366ac344bfe2 eccfee07...

    院长技术
  • Linux基础命令之mktemp详解

    创建临时文件或者目录,这样的创建方式是安全的。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

    砸漏

扫码关注云+社区

领取腾讯云代金券