CentOS 7 两种方式搭建本地yum源

搭建本地yum源的主要原因是内网环境,无法直接从互联网yum源下载安装,这里以centos7为例,其他红帽系的操作系统大同小异。

两种方式:ISO镜像文件挂载、RPM包构建

# ISO镜像文件挂载方式

# ISO镜像文件必须是DVD 或者everything 版本

# 添加repo配置

cat /etc/yum.repos.d/iso.repo 
[ios]
name=iso
baseurl=file:///mnt
enabled=1
gpgcheck=0
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7      #指定挂载目录下的GPG-KEY文件验证

# 挂载镜像文件

mount /dev/cdrom /mnt/  

# 验证检查挂载

df -h 

# 开机自动挂载

cat /etc/fstab |grep iso9660  #常用方法

/dev/cdrom /mnt       iso9660          defaults   0 0

cat /etc/rc.local |grep /mnt       #在/etc/rc.local文件中添加
/dev/cdrom /mnt


# rpm包构建方式 (需要能访问互联网)

# 依赖的包有createrepo httpd yum-utils 

# httpd:使用http协议来搭建本地Yum源

# createrepo:用于生成yum源各软件之间的依赖索引

# yum-utils:安装后可使用 yumdownloader、reposync等命令下载所需软件包

#  安装依赖包

yum -y install httpd yum-utils createrepo

# 创建存储rpm包的目录

mkdir /var/www/html/centos7/

# 启动httpd服务

systemctl enable httpd --now

ss -antulp | grep :80

# 查看网络Yum源情况(自行配置想要下载的网络Yum源)

yum repolist

# 根据网络Yum源的仓库标识,下载Yum源中的所有RPM软件包到文件夹

reposync -r extras -p /var/www/html/centos7/

# 下载网络Yum源仓库标识updates中所有的RPM软件包

reposync -r updates -p /var/www/html/centos7/ 

# 查看从网络Yum源下载的所有RPM包(会根据仓库标识下载到相关的文件夹)

ll /var/www/html/centos7/     

# 生成extras仓库的repodata索引依赖 其他类似

createrepo /var/www/html/centos7/extras/

createrepo /var/www/html/centos7/os/

createrepo /var/www/html/centos7/updates

此时,在Packages同级目录中可以看到生成的repodata索引目录

ll /var/www/html/centos7/extras/

ll /var/www/html/centos7/os/

ll /var/www/html/centos7/updates/

ll /var/www/html/centos7/extras/repodata/

# 在其他内网机器备份原配置文件,创建新的repo配置文件

cat /root/centos7.repo
#yum源的ID,本地唯一,用于区分不同yum源
[extras]
#描述信息         
name=extras      
#前面的http://是协议,后面的/centos7/extras是yum源包路径
baseurl=http://192.168.100.36/centos7/extras  
#值为1表示用公钥验证rpm包的正确性,值为0表示不验证
gpgcheck=0 
#值为1表示启用yum源,值为0表示禁用yum源      
enabled=1        
[os]
name=extras
baseurl=http://192.168.100.36/centos7/os
gpgcheck=0
enabled=1
[updates]
name=uodates
baseurl=http://192.168.100.36/centos7/updates
gpgcheck=0
enabled=1

注意:baseurl可以使用file 、ftp或http,目录路径要写到Package和repodata的目录

# 测试验证

yum clean all  && yum makecache fast  && yum repolist all

以上是使用httpd来作为发布的web服务器,以下是使用nginx来做发布的web服务器

# 配置nginx

cat rpm.conf
 
# rpm.conf关键部分内容如下

events {
        accept_mutex on;
        worker_connections 4096;
}
http {
        include mime.types;
        default_type  application/octet-stream;
        sendfile on;
 
        server {
                listen 80 default_server;
                listen [::]:80 default_server;
                server_name 192.168.100.36;  # localhost
                location / {
                        root /var/www/html/centos7;
                        autoindex on;
                }
        }
}

# 配置yum客户端

vim /etc/yum.repos.d/rpm.repo
 
[rpm]
name=rpm
baseurl=http://192.168.100.36
enabled=1
gpgcheck=0

#  验证测试

同httpd方式

你可能感兴趣的:(linux系统运维,centos,linux,服务器,内网yum源)