【Linux】搭建私有yum仓库(类阿里云)

搭建本地yum仓库并配置国内镜像阿里云源中了解yum源

yum : Yellow dog Updater,Modified,是一种基于rpm包的自动升级和软件包管理工具。yum能从指定的服务器自动下载rpm包并安装,自动计算出程序之间的依赖关系和软件安装的步骤,自动一次安装所有依赖的软件包。yum便于管理大量软件更新,采用客户端/服务器工作机制。

yum源:yum旨在解决软件依赖关系,yum源就是软件安装来源或软件仓库,用来存放软件列表信息和软件包。

详解如何在云上搭建私有yum仓库及定时同步阿里云yum源到本地文章中提到共享yum源的概念

其中yum源的基本工作机制

1)服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。

2)客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

共享yum源就是在局域网内(或本地)搭建一个yum源,然后局域网内(或本地)所有的计算机在离线的环境下可以使用yum命令安装软件。

原文链接:https://blog.csdn.net/qq_28721869/article/details/115036342

搭建私有yum仓库(类阿里云)

(一)配置本地yum源和阿里源

javascript 复制代码
[root@localhost ~]# rm -rf /etc/yum.repos.d/*.repo
[root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/                    repo/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0    773      0  0:00:03  0:00:03 --:--:--   773
[root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   664  100   664    0     0   1183      0 --:--:-- --:--:-- --:--:--  1185
//期间有报错可以不理会
[root@localhost ~]# yum clean all && yum makecache
[root@localhost ~]# yum repolist
[root@localhost ~]# yum -y install   yum-utils   createrepo plugin-priorities

(二)服务端

1.安装nginx

javascript 复制代码
[root@localhost ~]# yum install -y nginx

2.将公网镜像同步到本地私有yum仓库

  • reposync 是 yum-utils 软件包中的一个工具,它允许用户将远程的 YUM 仓库内容同步到本地目录,从而创建一个本地的 YUM 仓库镜像。
javascript 复制代码
//建立私有yum仓库的存放目录
[root@localhost ~]# mkdir -p /data/centos/7/{base,extras,updates,epel}
//使用nohup在后台运行reposync,将远程YUM仓库的内容(只同步更新的包)同步到/data/centos/7目录,并将所有输出(包括正常输出和错误消息)写入/opt/yum.log文件。
[root@localhost ~]# nohup reposync -np  /data/centos/7   > /opt/yum.log 2>&1&
[5] 11444
  • 建本地私有库:在/data/centos/7/目录下的base、extras、updates和epel子目录中分别创建YUM仓库的元数据
javascript 复制代码
[root@localhost ~]# cd /data/centos/7/
[root@localhost 7]# cd base && createrepo -p ./ && cd -
Spawning worker 0 with 192 pkgs
Spawning worker 1 with 192 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
/data/centos/7
[root@localhost 7]# cd extras && createrepo -p ./ && cd -
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
/data/centos/7
[root@localhost 7]# cd updates && createrepo -p ./ && cd -
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
/data/centos/7
[root@localhost 7]# cd epel && createrepo -p ./ && cd -
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
/data/centos/7

3.配置nginx

javascript 复制代码
[root@localhost 7]# vim /etc/nginx/nginx.conf

user root;
---
    server {
        listen       80;
        listen       [::]:80;
        server_name  mirrors.dfwlg.com;    #设置服务名
        root         /data/centos/7/;

    location / {
        autoindex on;        #打开目录浏览功能
        autoindex_exact_size off;  # off:以可读的方式显示文件大小
        autoindex_localtime on; # on、off:是否以服务器的文件时间作为显示的时>间
        charset utf-8,gbk; #展示中文文件名
        index index.html;
         }

4.启动nginx

javascript 复制代码
[root@localhost 7]# systemctl restart nginx
[root@localhost 7]# setenforce 0

输入IP访问

补充:出现403,问题是要禁用(selinux)

javascript 复制代码
[root@localhost 7]# vim /etc/selinux/config

(三)客户端

javascript 复制代码
cat > /etc/yum.repos.d/mirrors-dfwlg.repo <<EOF
[base]
name=CentOS-$releasever - Base - mirror.dfwlg.com
baseurl=http://10.0.0.88/base/
path=/
enabled=1
gpgcheck=0 

[updates]
name=CentOS-$releasever - Updates - mirror.dfwlg.com
baseurl=http://10.0.0.88/updates/
path=/
enabled=1
gpgcheck=0 

[extras]
name=CentOS-$releasever - Extras - mirrors.dfwlg.com
baseurl=http://10.0.0.88/extras/
path=/
enabled=1
gpgcheck=0 

[epel]
name=CentOS-$releasever - epel - mirrors.dfwlg.com
baseurl=http://10.0.0.88/epel/
failovermethod=priority
enabled=1
gpgcheck=0
EOF


[root@localhost ~]# yum clean all && yum makecache

客户端测试

javascript 复制代码
[root@localhost ~]# yum install -y yum-utils
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
mirrors-dfwlg.repo

[参考文章]

https://zhuanlan.zhihu.com/p/412791423

https://blog.csdn.net/qq_28721869/article/details/115036342

相关推荐
AI视觉网奇18 分钟前
pytorch3d linux安装
linux·人工智能·pytorch
VVVVWeiYee20 分钟前
Mesh路由组网
运维·网络·智能路由器·信息与通信
双手插兜-装高手27 分钟前
Linux - 线程基础
linux·c语言·笔记
IT枫斗者37 分钟前
如何解决Java EasyExcel 导出报内存溢出
java·服务器·开发语言·网络·分布式·物联网
XY.散人44 分钟前
初识Linux · 信号处理
linux·信号处理
北'辰1 小时前
使用ENSP实现DHCP+动态路由
运维·网络
air_7291 小时前
实验四:构建园区网(OSPF 动态路由)
服务器·网络·智能路由器
XiaoCCCcCCccCcccC1 小时前
Linux环境下的基础开发工具 -- 包管理器,vim,gcc/g++,make/makefile,git,gdb/cgdb
linux·c语言·gdb
雪碧聊技术1 小时前
Docker3:docker基础1
运维·docker·容器·docker常见命令
懒笑翻1 小时前
Python 使用 Selenuim进行自动化点击入门,谷歌驱动,以百度为例
运维·selenium·自动化