当前位置:首页 > 系统 > CentOS7 搭建本地yum和EPEL仓库

CentOS7 搭建本地yum和EPEL仓库

系统2年前 (2020-01-14)

CentOS7 搭建本地yum和EPEL仓库

CentOS7下搭建CentOS7、EPEL的局域网下使用的本地YUM仓库,因为在生产环境中由于安全的限制,某些服务器不允许访问公网。

如果需要使用yum安装包或update只能通过在本地自建yum源来解决。

yum源可以通过http、ftp、nfs等方式去访问使用,不过由于nfs由于自身的安全性问题并不推荐用。而ftp有主动/被动模式的问题,配置不当也会造成有无法访问。所以推荐使用http web方式提供yum源


安装nginx

rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm


设置host

echo "192.168.0.1 server1" >>/etc/hosts
tail -1 /etc/hosts


修改nginx配置

vim /etc/nginx/conf.d/repos.conf 

添加
server {
  listen 80;
  server_name server1;	
  root /u01/repos;
  location / {
  autoindex on;
  autoindex_exact_size off;
  autoindex_localtime on;
        }
		
##EPEL virtual directory
  location /epel/ {
    alias /u01/epel/;
  }
}


开启服务

systemctl start nginx && systemctl enable nginx
firewall-cmd --zone=public --permanent --add-service={http,https}
firewall-cmd --reload
reboot
curl -s 127.0.0.1


安装yum组件

yum-utils提供reposync服务,可以将远程的源同步到本地。createrepo可以将rpm包创建为Yum仓库,生成repodata目录

yum install -y yum-utils createrepo


创建文件保存目录

mkdir -p /u01/repos/{base,centosplus,extras,updates}
mkdir -p /u01/epel/


备份系统自带源

cd /etc/yum.repos.d
mkdir -p backuprepo && mv * backuprepo


修改本地源改为阿里云

wget -O CentOS-aliyun7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo


查看本地存在的镜像

yum repolist


同步镜像到本地http根目录

reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=epel --newest-only --download-metadata --download_path=/u01/epel/


创建rpm包目录索引信息

createrepo -pdo /u01/repos/base /u01/repos/base
createrepo -pdo /u01/repos/centosplus /u01/repos/centosplus
createrepo -pdo /u01/repos/extras /u01/repos/extras
createrepo -pdo /u01/repos/updates /u01/repos/updates
createrepo -pdo /u01/epel /u01/epel/


创建定时同步任务

vim /etc/cron.daily/localrepos-update

添加
# Sync CentOS and EPEL repos
reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=epel --newest-only --download-metadata --download_path=/u01/epel/

# Build CentOS repo metadata
createrepo --update --workers=4 /u01/repos/base/
createrepo --update --workers=4 /u01/repos/centosplus/
createrepo --update --workers=4 /u01/repos/extras/
createrepo --update --workers=4 /u01/repos/updates
createrepo --update --workers=4 /u01/epel/

添加权限

chmod 755 /etc/cron.daily/localrepos-update


局域网其他服务器设置

备份本地源

echo "192.168.0.1 server1" >>/etc/hosts
cd /etc/yum.repos.d
mkdir -p backuprepo && mv * backuprepo


修改为新源

vim /etc/yum.repos.d/local.repo
添加
[base]
name=CentOS-7-base.local
baseurl=http://server1/base
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[centosplus]
name=Centos-7-plus.local
baseurl=http://server1/centosplus/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
[updates]
name=CentOS-7-updates.local
baseurl=http://server1/updates
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
[extras]
name=CentOS-7-extras.local
baseurl=http://server1/extras
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[epel]
name=CentOS-7-epel.local
baseurl=http://server1/epel
enabled=1
gpgcheck=0


测试

yum clean all
yum repolist all
yum install -y yum-plugin-fastestmirror


本站所有文章均可随意转载,转载时请保留原文链接及作者。

本文链接:https://www.vos.cn/os/387.html

相关文章

WIN10更新出现错误代码0x800736cc

WIN10更新出现错误代码0x800736cc

1511版收到积累更新,安装提示0x800736cc错误,需要在线修复一下win10以管理员运行cmd,输入命令修复映像命令DISM.exe /Online /Cleanup-im...

hMailServer添加DMARC协议

hMailServer添加DMARC协议

DMARC”是Domain-based Message Authentication, Reporting and Conformance的英文首字母缩写。DMARC协议是有效解决信头From伪造而诞...

解决hMailServer外部邮件发不进来

解决hMailServer外部邮件发不进来

部署完后,测试发现给外部发邮件都正常,但是外部给内部发邮件,一封都收不到。因为客户使用的是花生壳上购买的域名,生效A记录超级慢,排查完DNS设置后,看了一遍设置,发现可能是SMTP验证问题。打开管理控...

hmailserver使用McAfee VirusScan Enterprise无法外网发信

hmailserver使用McAfee VirusScan Enterprise无法外网发信

 服务器安装VSE之后,问题是内网--内网发信一切正常,内网--外网发信发不出去,也不提示失败。打开VSE控制台,右键“访问保护”--“属性”,找到“防病毒标准保护”,将“禁止群发邮件蠕虫发...

potplayer播放mkv不显示内置字幕和外挂字幕

potplayer播放mkv不显示内置字幕和外挂字幕

今天突然发现无论播放mkv的视频,外挂的字幕mkv或者是内嵌字幕mkv都无法显示字幕,系统为win10 64位,potplayer版本尝试过32位和64位,都无法解决。问题为播放avi,rmvb还比较...

IIS添加所有MIME类型

IIS添加所有MIME类型

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。打开II...