前言
yum 光盘源默认只能本机使用,局域网其他服务器无法使用 yum 光盘源,如果想使用,需要在每台服务器上构建 yum 本地源,该方案在企业中不可取,所以需要构建http局域网yum源,可以通过 createrepo 创建本地 yum 源端。
构建http 局域网 yum 源步骤方法
1、挂载光盘镜像文件至/mnt
mount /dev/cdrom /mnt/
2、复制/mnt/Packages 目录下所有软件包至Apache服务器发布路径
mkdir -p/var/www/html/centos/
cp -R /mnt/Packages/* /var/www/html/centos/
3、使用 createrepo 创建本地源
yum install createrepo -y
cd /var/www/html
createrepo centos/ #使用 createrepo 创建本地源,执行以上命令会在 centos目录生成 repodata 目录
4、利用http发布yum 本地源。
本地 yum 源通过 createrepo 搭建完毕,需要借助 http web 服务器发布/var/www/html/centos/
中所有软件,yum 或者 RPM 安装 HTTP Web 服务器,并启动 httpd 服务。
详细步骤如下:
yum install httpd httpd-devel -y #安装 HTTP Web 服务。
vim /etc/httpd/conf/httpd.conf #修改配置文件
ServerName 192.168.158.131:80 #启用,改为IP地址
useradd apache -g apache #创建Apache 用户和组。
systemctl restart httpd. service #重启 httpd 服务。
setenforce 0 #临时关闭 SELinux 应用级安全策略。
systemctl stop firewalld. service #停止防火墙。
ps -ef | grep httpd #查看 httpd 进程是否启动。
5、创建/etc/yum. repos.d/http. repo
文件
在 yum 客户端,创建/etc/yum. repos.d/http. repo
文件,输入如下内容:
[base]
name ="CentOS7 HTTP Yur"
baseurl= http://192.168.1.115/centos/ #执向我们创建的yun源
gpgcheck = 0 #0表示不检查,那就不用写gpgkey
enabled = 1
[updates]
name ="Centos7 HTTP Yur"
baseurl= http://192.168.1.115/centos/
gpgcheck = 0 #0表示不检查,那就不用写gpgkey
enabled = 1
6、生成缓存
yum clean all #清空 yum cache
yum makecache #生成缓存
yum install ntpelate y #安装 ntpdhte 软件
扩展本地网络yum源
无论是使用 iso 镜像构建的还是 http 构建的yum 源,在使用过程中都会发现缺少很多软件依赖包。如果服务器需要 ntfs-3g 软件包支持,而yum源里没有该软件包,此时需要往yum 源端添加 ntfs-3g软件包,添加方法如下:
(1)切换至/var/www/htm/centos 目录,官网下载 ntfs-3g 软件包。
cd /var/mm/html/centos/
wget http://dl.fedoraproject.orq/pub/epel./7/x86_64/n/ntfe-3g~2016.2.22-3.e17.x86_64.rpm
wget http://dl.fethrapsojet.org/puh/epe./7/:86_64/n/ntfs-3g-devel-2016.2.22-3.e17.x86_64.rpm
(2)使用createrepo命令更新软件包,如需新增其他软件包,把软件下载至本地,然后通过
createrepo --update centos/
更新即可。
这样就能yum需要重新清除缓存,生成缓存,然后就可以安装ntfs了。
reporsync命令同步外网yum 源
在企业实际应用场景中,仅仅靠光盘中的 RPM 软件包是不能满足需要的,用户可以把外网的 yum 源中的所有软件包同步至本地,完善本地 yum 源的软件包数量及完整性。
获取外网 yum 源软件常见方法包括:rsync、wget、reposync,三种同步方法的区别为:rsync方式需要外网 yum 源支持 rsync 协议;wget可以直接获取;reposync 可以同步几乎所有的 yum 源。下面以 reporsync 为案例,同步外网 yum 源软件至本地,步骤如下:
(1)下载 CentOS 7 repo 文件至/etc/yum. repos.d/,并安装 reposync 命令工具。
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv Centos7-Base-163.repo /etc/yum.repos.d/centos.repo
yum clean all
yum install yum-utils createrepo - y
yum repolist #查看有哪些存储库
(2)通过 reposync 命令工具获取外网 yum 源所有软件包,r指定 repolist id,默认不加-表示获取外网所有 yum 软件包,p参数表示指定下载软件的路径,如下:
yum repolist #查看有哪些源,第一列源标识就是
reposync -r base -p /var/www/html/centos/
reposync -r updates -p /var/www/html/centos/
(3)通过 reposync 工具下载完所有的软件包之后,需要执行 createrepo 更新本地 yum仓库。
createrepo --update /var/www/html/centos/
(4)其他服务器需要重新生成缓存
yum clean all
yum makecache
yum install nfs #正常