在很多情况下,我们服务器因为安全问题,必须处在内网环境,这时候就无法自动通过yum命令下载互联网上的软件源,很多人为这个问题头疼,这里我简单介绍下如果在内网环境搭建yum源。关于centos7安装,可以参考我另一篇文章:Centos7的安装全过程
centos官网下载镜像包
访问centos官网,我这里用的centos7.4版本,因为我之前系统安装的都是7.4版本,我们下载对应的iso镜像包CentOS-7-x86_64-Everything-1708.iso,大约8G大小,下载速度比较慢,一定要提前下载好。
将下载好的CentOS-7-x86_64-Everything-1708.iso镜像文件上传到服务器的/home目录下。
注意:如果我们是用的虚拟机装的centos7,则一定先要安装VMware Tools,然后开启共享文件夹,才能把镜像文件拷贝至虚拟机的centos系统中去。如果我们没用虚拟机,直接U盘拷贝进去便可。如果是直接安装在服务器上,可以通过软件xftp上传,因为U盘上传过程中,文件大于8G,会出现各种问题。而xftp不受文件大小限制。
创建镜像挂载
[root@localhost ~]# mkdir -p /media/CentOS7 ##/media目录下创建文件夹CentOS7文件夹
挂载镜像文件
# 先进行手动挂载
[root@localhost ~]# mount -t iso9660 -o loop /home/CentOS-7-x86_64-Everything-1708.iso /media/CentOS7/
mount: /dev/loop0 写保护,将以只读方式挂载
手动挂载完毕后,进行自动挂载。执行以下命令,打开文件。
[root@localhost ~]# vim /etc/fstab
在末尾加入以下语句(路径根据自己挂载实际地址填写),注意空格。
/home/CentOS-7-x86_64-Everything-1708.iso /media/CentOS7 iso9660 defaults,ro,loop 0 0
之所以要修改此文件,是因为,磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
命令执行完毕后,查看挂载情况。
[root@localhost ~]# df -h
容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 70G 3.9G 67G 6% /
devtmpfs 473M 0 473M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 7.2M 481M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 1014M 161M 854M 16% /boot
/dev/mapper/centos-home 77G 8.4G 69G 11% /home
/dev/loop0 8.1G 8.1G 0 100% /media/CentOS7
vmhgfs-fuse 932G 131G 802G 14% /mnt/hgfs
tmpfs 98M 4.0K 98M 1% /run/user/42
tmpfs 98M 24K 98M 1% /run/user/0
发现/dev/loop0逻辑目录挂载成功,挂载点为/media/CentOS7
新增文件/etc/yum.repos.d/centos7-media.repo
如果是修改原有CentOS-Media.repo文件进行修改本地源,执行安装命令时候则比较麻烦。所以我们通过新作repo源文件来创建yum源指向本地,而不是去修改原有的CentOS-Media.repo源文件。执行命令创建文件。
[root@localhost ~]# vim /etc/yum.repos.d/centos-media.repo ###创建文件
在文件中输入以下内容。
[centos7-media]
name=centos7
baseurl=file:///media/CentOS7
enabled=1
gpgcheck=0
gpgkey=file:///media/CentOS7/RPM-GPG-KEY-CentOS-7
### [centos7-media]这里是源的名称,保持和文件名称一致
### name=centos7 这是yum源备注,随便起无所谓。
### enabled 是否启用本配置,1代表使用,0代表不实用,这里肯定用1。/etc/yum.repos.d文件下,使用中的配置只会有一个。其他文件的此属性必须为0,不然会冲突。
### gpgcheck=1 #是否检测yum源的签名,防止软件安装的软件被篡改(0:不验证,1:验证,默认为1) ### gpgkey:yum签名秘钥的地址,如果gpgcheck=1,这里必须要填,文件名格式为RPM-GPG-KEY-系统版本,我们可以去挂载地址下,可以找到此文件。
插入后,保存退出。
备份CentOS-Base.repo文件。
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# mv CentOS-Base.repo CentOS-Base.repo.bak
### 这里CentOS-Base.repo文件主要是去网络上找相应的包,我们修改了名称让其失效,就会默认从本地源(enabled=1)的文件读取
执行命令建立缓存
[root@localhost ~]# yum makecache
已加载插件:fastestmirror, langpacks
centos7-media | 3.6 kB 00:00 (1/4): centos7-media/group_gz | 156 kB 00:00 (2/4): centos7-media/primary_db | 5.7 MB 00:00 (3/4): centos7-media/filelists_db | 6.7 MB 00:00 (4/4):
centos7-media/other_db | 2.5 MB
00:00 Determining fastest mirrors
元数据缓存已建立
到此为止,本地源搭建成功。我们可以尝试安装命令查看是否安装成功
[root@localhost ~]# yum -y install gcc
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。