有时候在我们本地搭建一些linux上的程序运行环境或者安装一些软件的时候,难免会遇到需要使用yum方式安装一些依赖库,但是苦于没有网,无法下载依赖库软件的情况。又或者是在机房中无法连接外网的情况下需要安装一大堆依赖的基础软件,怎么解决这种问题呢?下面我就这种情况介绍两种搭建私有yum源的方案:
一、基于文件协议的本地yum源的搭建:
1、准备工作:
(1)centos镜像,此处我使用centos-6.9-x86_64-bin-dvd1.iso,可从网络自行下载
(2)已经安装好的一台虚拟机,此处我使用的是vmware虚拟机工具,虚拟机安装步骤此处略
2、打开本地的虚拟机实例
3、选中打开之后的虚拟机实例,右键->设置,如下所示:
4、选择本地下载好的iso镜像文件,如下所示:
5、勾选已连接和启动时连接选项,如下所示:
6、使用远程连接工具securecrt或者xshell远程连接到该linux实例,首先创建iso镜像的挂载目录,然后将iso镜像挂载在创建好的挂载目录下,挂载过程是通过linux的光驱/dev/cdrom完成,操作过程如下:
1
2
|
[root@wb-blog ~]# mkdir -pv /media/cdrom/
[root@wb-blog ~]# mount /dev/cdrom /media/cdrom/
|
挂载完成可以使用"df -h"命令查看:
7、进入到yum源的配置文件目录,/etc/yum.repos.d/,首先备份原有的yum源配置文件
1
2
3
4
|
[root@wb-blog ~]# cd /etc/yum.repos.d/
[root@wb-blog yum.repos.d]# ls
[root@wb-blog yum.repos.d]# mkdir -pv backup
[root@wb-blog yum.repos.d]# mv ./*.repo ./backup/
|
8、编辑自定义yum源配置文件server.repo :
1
|
[root@wb-blog yum.repos.d]# vim server.repo
|
写入如下内容:
1
2
3
4
5
|
[localrepo]
name=localrepo
baseurl=file: ///media/cdrom/
enabled=1
gpgcheck=0
|
参数含义:
[localrepo]: 表示一个yum源配置段的名称,可以随意命名
name:表示该yum源的名称
baseurl:表示yum源的目录,使用file:///表示指向的是本地文件系统上的目录,注意:有三个斜杠。
enabled:表示该yum配置段是否生效,1表示生效,0表示无效
gpgcheck:表示是否对yum源指定的软件包进行安全校验,0表示不校验,本地挂载的镜像可以认为软件就是安全的,不必校验;
9、保存退出,然后执行"yum clean all"命令清楚原有的yum源缓存:
1
|
[root@wb-blog yum.repos.d]# yum clean all
|
10、然后执行"yum list all"查看本地yum源是否生效,如果可以输出常用软件包,表示本地yum源配置成功,如下:
1
|
[root@wb-blog yum.repos.d]# yum list all
|
11、至此,基于本地文件协议的yum源配置完成,可以使用"yum install [软件名称]" 命令安装常见的软件,如:"yum install gcc gcc-c++"。如果软件安装完成之后,可以使用"umount /media/cdrom/" 将挂载目录卸载。
二、基于http的远程私有yum的搭建:
1、准备工作:
(1)centos镜像,此处我使用centos-6.9-x86_64-bin-dvd1.iso,可从网络自行下载
(2)已经安装好的一台虚拟机,此处我使用的是vmware虚拟机工具,虚拟机安装步骤此处略
(3)确保服务器上安装了http服务器,可以是任意的可以提供http的web服务器即可,此处使用httpd
2、将iso镜像文件上传至需要作为yum源的虚拟机,此处假设该虚拟机的主机名称为wb-blog,ip为:192.168.0.10,使用securecrt或者xshell远程连接工具连接至wb-blog主机,然后使用sz命令或者使用图形界面工具flashfxp上传至wb-blog主机的/home/software目录下
1
|
[root@wb-blog ~]# rz
|
3、创建挂载目录,为了方便,此处直接使用httpd默认的目录,/var/www/html/
4、将上传的iso镜像文件挂载到/var/www/html目录下,如下所示:
参数含义:
-o loop:指定设备的挂载方式,loop表示把一个文件当成硬盘分区挂载到系统
-t iso9660:指定文件系统的类型,iso文件的类型对应为iso9660,其他文件类型可以自行查资料
5、进入到yum源的配置文件目录,备份原有的yum源配置文件,然后编辑server.repo配置文件,添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@wb-blog ~]# cd /etc/yum.repos.d/
[root@wb-blog yum.repos.d]# mkdir -pv backup && mv ./*.repo ./backup
[root@wb-blog yum.repos.d]# vim server.repo
添加如下内容:
[httprepo]
name=httprepo
baseurl=http: //192.168.0.10
enabled=1
gpgcheck=0
参数含义:
name:表示该yum源的名称
baseurl:表示yum源的软件目录, "http://" 表示该yum源为一个远程的http协议的yum源。当然此处还可以为ftp协议或者是其他的文件传输协议;
enabled:表示该yum配置段是否生效,1表示生效,0表示无效
gpgcheck:表示是否对yum源指定的软件包进行安全校验,0表示不校验,本地挂载的镜像可以认为软件就是安全的,不必校验;
|
6、启动httpd服务,然后执行"yum clean all"命令清除之前的缓存,如下所示:
1
2
3
|
[root@wb-blog yum.repos.d]# service httpd restart
[root@wb-blog yum.repos.d]# yum clean all
[root@wb-blog yum.repos.d]# yum list all
|
7、至此,基于http协议的私有yum源搭建完毕,此方式的灵活性较高,可以供其他的同一个网段内的主机配置使用。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://segmentfault.com/a/1190000015155966