Linux 搭建私有yum源仓库

一、环境准备

IP系统版本作用
192.168.140.155CentOS 7.9.2009yum源仓库
192.168.140.153CentOS 7.9.2009测试

        准备两台服务器,一台作为yum源仓库,另一台作为测试使用。

二、搭建yum源服务器

(无法连接外网的情况,需要去官网下载镜像,拷贝到服务器)

1、下载CentOS 7.9.2009的完整版镜像

centos镜像_centos下载地址_centos安装教程-阿里巴巴开源镜像站阿里巴巴开源镜像站为您提供免费的centos下载地址及centos安装教程,centos镜像简介:CentOS,是基于Red Hat Linux提供的可自由使用源代码的企业级Linux发行版本,是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,是一个免费的企业级计算平台;CentOS 定期发行及更新版本,以便支持新的硬件,从而建立一个安全、低维护、稳定、高预测性、高重复性的Linux环境。阿里巴巴开源镜像站,持续同步CentOS、CentOC-altarch等最新版镜像文件,为用户提供极致的下载体验。阿里巴巴开源镜像站icon-default.png?t=N7T8https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11XL26Tr注:下载everything版本

2、将下载的镜像上传到yum源仓库服务器

3、挂载镜像
# 1、查看磁盘空间是否足够(可用空间必须大于镜像大小)
[root@localhost final]# df -h

# 2、创建目录,用于挂载镜像
[root@localhost final]# mkdir -p /mnt/centos7

# 3、挂载镜像
# -t iso9660 挂载的文件系统类型为iso9660
# -o loop 使用回环设备的方式挂载文件,允许将文件当作块设备处理。因为iso是一个文件,不是物理设备
[root@localhost final]# mount -t iso9660 -o loop /home/final/CentOS-7-x86_64-Everything-2009.iso /mnt/centos7/

# 4、设置开机自启动挂载
[root@localhost final]# vi /etc/fstab
# 添加下面行
/home/final/CentOS-7-x86_64-Everything-2009.iso /mnt/centos7                       iso9660     defaults,loop,ro        0 0
4、本地yum配置
# 1、进入yum配置文件目录
[root@localhost final]# cd /etc/yum.repo.d/

# 2、创建备份目录
[root@localhost final]# mkdir repo_bak

# 3、备份
[root@localhost final]# mv *.repo repo_bak/

# 4、新建yum文件
[root@localhost final]# vi localyum.repo
[localyum]
name=localyum
baseurl=file:///mnt/centos7        # 镜像挂载路径
gpgcheck=0
enabled=1

# 5、清除原有缓存,生成新缓存
[root@localhost final]# yum clean all
[root@localhost final]# yum makecache
# 查看当前使用的镜像列表
[root@localhost final]# yum repolist
5、安装工具
# 1、安装同步工具
[root@localhost final]# yum -y install yum-utils

# 2、安装repo制作工具
[root@localhost final]# yum -y install createrepo
6、制作base仓库和other仓库

other仓库用来存放base仓库中缺少的rpm包,可以通过其它方式获取

# 1、创建base仓库目录
[root@localhost final]# mkdir -p /mnt/repo/centos/7/base/

# 2、复制源文件到base目录下
[root@localhost final]# cp -rf /mnt/centos7/* /mnt/repo/centos/7/base/

# 3、创建repo数据
[root@localhost final]# createrepo /mnt/repo/centos/7/base/

# 4、创建other仓库目录
[root@localhost final]# mkdir -p /mnt/repo/centos/7/other/
7、搭建web服务器(这里选择Nginx)
7.1 下载nginx二进制安装包

http://nginx.org/download/nginx-1.18.0.tar.gzicon-default.png?t=N7T8http://nginx.org/download/nginx-1.18.0.tar.gz

7.2 上传安装包到服务器
7.3 编译安装
# 1、解压压缩包
[root@localhost final]# tar -zxvf nginx-1.18.0.tar.gz

# 2、进入解压目录
[root@localhost final]# cd nginx-1.18.0

# 3、使用默认配置
[root@localhost final]# ./configure

# 4、编译安装
[root@localhost final]# make && make install

# 5、查看
[root@localhost final]# whereis nginx
nginx: /usr/local/nginx
7.4 配置启动脚本
[root@localhost final]# vi /etc/init.d/nginx

#! /bin/sh
# chkconfig: 2345 55 25
# Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and
# run 'update-rc.d -f nginx defaults', or use the appropriate command on your
# distro. For CentOS/Redhat run: 'chkconfig --add nginx'

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO

# Author:   licess
# website:  https://lnmp.org

NGINX_BIN='/usr/local/nginx/sbin/nginx'
CONFIG='/usr/local/nginx/conf/nginx.conf'

case "$1" in
    start)
        echo -n "Starting nginx... "

        PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}')
        if [ "$PID" != "" ]; then
            echo "nginx (pid $PID) already running."
            exit 1
        fi

        $NGINX_BIN -c $CONFIG

        if [ "$?" != 0 ]; then
            echo " failed"
            exit 1
        else
            echo " done"
        fi
        ;;

    stop)
        echo -n "Stoping nginx... "

        PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}')
        if [ "$PID" = "" ]; then
            echo "nginx is not running."
            exit 1
        fi

        $NGINX_BIN -s stop

        if [ "$?" != 0 ] ; then
            echo " failed. Use force-quit"
            $0 force-quit
        else
            echo " done"
        fi
        ;;

    status)
        PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}')
        if [ "$PID" != "" ]; then
            echo "nginx (pid $PID) is running..."
        else
            echo "nginx is stopped."
            exit 0
        fi
        ;;

    force-quit|kill)
        echo -n "Terminating nginx... "

        PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}')
        if [ "$PID" = "" ]; then
            echo "nginx is is stopped."
            exit 1
        fi

        kill $PID

        if [ "$?" != 0 ]; then
            echo " failed"
            exit 1
        else
            echo " done"
        fi
        ;;

    restart)
        $0 stop
        sleep 1
        $0 start
        ;;

    reload)
        echo -n "Reload nginx... "

        PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}')
        if [ "$PID" != "" ]; then
            $NGINX_BIN -s reload
            echo " done"
        else
            echo "nginx is not running, can't reload."
            exit 1
        fi
        ;;

    configtest)
        echo -n "Test nginx configure files... "

        $NGINX_BIN -t
        ;;

    *)
        echo "Usage: $0 {start|stop|restart|reload|status|configtest|force-quit|kill}"
        exit 1
        ;;

esac

修改文件权限

# 1、修改权限
chmod +x /etc/init.d/nginx

# 2、启动
/etc/init.d/nginx start

# 3、查看运行状态
/etc/init.d/nginx status

# 4、设置开机自启动
chkconfig nginx on
7.5 访问测试

在测试服务器使用curl命令测试nginx服务

[root@localhost nginx]# curl http://192.168.140.155
8、修改Nginx配置
# 修改location模块
​[root@localhost nginx]# vi /usr/local/nginx/conf/nginx.conf
        location / {
#            root   html;
            root   /mnt/repo;
            index  index.html index.htm;
            autoindex on;        自动列出目录文件,允许下载目录下文件
        }

9、重新启动Nginx
[root@localhost final]# /etc/init.d/nginx restart
10、访问nginx服务

三、测试服务器 私有YUM源配置

1、在测试服务器配置yum文件
# 1、进入yum配置文件目录
[root@localhost final]# cd /etc/yum.repos.d/

# 2、创建备份目录
[root@localhost yum.repos.d]# mkdir repo_bak

# 3、备份
[root@localhost yum.repos.d]# mv *.repo repo_bak/

# 4、创建yum配置文件
[root@localhost yum.repos.d]# vi local.repo
# 添加如下内容
[base]
name=localbase
baseurl=http://192.168.140.155/centos/7/base
enables=1
gpgcheck=0

[other]
name=localother
baseurl=http://192.168.140.155/centos/7/other
enables=1
gpgcheck=0

# 5、清除原有缓存,生成新缓存
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum makecache
# 查看当前使用的镜像列表
[root@localhost yum.repos.d]# yum repolist
2、测试

在开源镜象网站下载nginx,放入other库中,在测试库安装,测试是否能安装成功(因为CentOS7中Base库默认没有Nginx,所以通过Nginx做测试)

# 在YUM源仓库所在服务器执行
# 1、下载
wget https://mirrors.aliyun.com/centos/7.9.2009/infra/x86_64/infra-common/Packages/n/nginx-mod-mail-1.12.2-2.el7.x86_64.rpm

# 2、存放到other目录下
mv nginx-1.12.2-2.el7.x86_64.rpm /mnt/repo/centos/7/other

# 3、更新repo数据
createrepo /mnt/repo/centos/7/other
# 在测试服务器执行
# 1、清理缓存
yum clean all

# 2、生成新缓存
yum makecache

# 3、查看是否存在上传的nginx
yum list | grep nginx
nginx.x86_64                          1:1.12.2-2.el7                   base

# 3、安装nginx
yum -y install nginx

如果报以下错误,是因为缺少依赖,需要去官网下载指定的rpm包,跟据上面步骤放到other目录下

Error: Package: 1:nginx-1.12.2-2.el7.x86_64 (other)

四、rpm包获取方式

1、红帽官网

Red Hat Customer Portal - Access to 24x7 support and knowledgeAccess Red Hat's knowledge, guidance, and support through your subscription.icon-default.png?t=N7T8https://access.redhat.com

2、开源镜像网站

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区阿里巴巴开源镜像站,免费提供Linux镜像下载服务,拥有Ubuntu、CentOS、Deepin、MongoDB、Apache、Maven、Composer等多种开源软件镜像源,此外还提供域名解析DNS、网络授时NTP等服务,致力于为互联网用户提供全面,高效和稳定的基础服务。icon-default.png?t=N7T8https://developer.aliyun.com/mirror

3、第三方下载网站

Rpmfind mirroricon-default.png?t=N7T8https://rpmfind.net

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/555421.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ssm058基于Java的共享客栈管理系统+jsp

共享客栈管理系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对房屋出租信息管理混乱,出…

语言的未来:深度学习在自然语言处理中的革命

语言的未来:深度学习在自然语言处理中的革命 1 引言 自古以来,语言就是人类表达思想、传递信息、进行社会互动的基石。语言的复杂性既体现在其变化多端的语义、句法和语用层面,同时也反映在人类如何理解和产生自然语言的深奥之中。在这一节中…

飞企互联FE业务协作平台 ProxyServletUti 任意文件读取漏洞复现

0x01 产品简介 飞企互联-FE企业运营管理平台是一个基于云计算、智能化、大数据、物联网、移动互联网等技术支撑的云工作台。这个平台可以连接人、链接端、联通内外,支持企业B2B、C2B与O2O等核心需求,为不同行业客户的互联网+转型提供支持。其特色在于提供云端工作环境,整合…

活动报名 | 如何进行全增量一体的异构数据库实时同步

伴随着新技术的不断涌现,市场竞争也在不断开辟新的角斗场——新的业务需求,新的应用设想都在这里迸发。 面对如此日新月异的竞争环境,企业的当务之急,是为新应用扎根准备好随时可取、准确一致的高质量数据土壤。在这样的背景下&a…

电工与电子技术选择题填空题计算题复习题含参考答案

答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 电工与电子技术复习题 一 . 单选题(共 33 题&a…

[Meachines][Easy]Headless

Tools https://github.com/MartinxMax/MDOG 针对XXS攻击 Main $ nmap -sC -sV 10.10.11.8 --min-rate 1000 类似于留言板 通过目录扫描,发现一个仪表盘 $ gobuster dir -u "http://10.10.11.8:5000" -w /usr/share/wordlists/dirbuster/directory-list-1.0.txt 回…

邮箱群组是什么?怎么创建邮箱群组?

在我们群发邮件时,可能会遇到这样的状况,一个个输入邮箱地址效率很低,而且很容易就漏发。而对于一个企业来说,如果出现这样的问题,很有可能会影响公司的业务进展和团队协作。这个时候我们就需要邮箱群组这个功能&#…

移远通信:立足5G RedCap新质生产力,全力推动智能电网创新发展

随着全球能源结构的转型和电力需求的持续增长,智能电网产业迎来了新的发展机遇。而物联网、大数据等前沿技术的创新和应用,正在为电力行业的发展注入强劲的新质生产力。 4月9日,第四十八届中国电工仪器仪表产业发展技术研讨及展会在杭州拉开帷…

使用自己训练好的模型YOLOv8进行X-AnyLabeling自动标注

目录 1. 下载项目2. 创建环境3. 运行程序3.1 自行下载和添加官方模型3.2 使用自己训练好的模型标注自己的数据集 本机环境:win 10, GPU 1. 下载项目 git clone https://github.com/CVHub520/X-AnyLabeling.git2. 创建环境 仔细查看项目的README文件 …

电脑技巧:如何把Edge浏览器扩展程序打包安装到其他浏览器

目录 1、进入浏览器扩展界面 2、找到Edge浏览器扩展插件的路径 3、找到需要扩展的插件ID 4、打开浏览器扩展插件目录 5、进入打包扩展界面 6、 安装到其他浏览器 大家日常使用浏览器的时候通常会安装很多浏览器插件,从而大大提升我们的办公效率,有…

CTF中常见的四种python逆向

说在前面: 什么是pyc文件? pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高, pyc 文件是 Python 编译过的字节码文…

文件IO基础

一、文件描述符 调用 open 函数会有一个返回值,该返回值就是一个文件描述符( file descriptor),这说明文件描述符是一个 非负整数;对于 Linux 内核而言,所有打开的文件都会通过文件描述符进行索引。 当调用…

2024年第十六届“华中杯”(B题)大学生数学建模挑战赛| 时间序列,滑动窗口 | 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 让我们来看看华中杯 (B题)! CS团队倾…

《四月女友》定档5月18日 佐藤健、长泽雅美演绎唯美爱情

由川村元气担任编剧,山田智和导演,佐藤健、长泽雅美、森七菜主演的唯美爱情电影《四月女友》今日正式宣布定档5月18日,并发布了“相恋”版预告和“相拥”版海报。预告中,优美宁静的风景令人心生向往,藤代俊&#xff08…

【深度学习实战(8)】如何绘制loss曲线图

一、步骤 我们先定义一个dict,每一个key对应的value都是一个list。 loss_history dict((k, []) for k in ["epoch", "train_loss", "val_loss"])每一轮或者每一次迭代的损失都通过list记录下来。 loss_history["epoch"…

改手机IP地址的软件推荐

随着移动互联网的普及,手机已成为人们日常生活中不可或缺的一部分。而在使用手机的过程中,IP地址作为一个重要的网络标识,有时也需要进行修改或更改。为了满足这一需求,市面上涌现出了许多改手机IP地址的软件。虎观代理将对这些软…

2024年腾讯云服务器价格一览表

随着云计算技术的快速发展,越来越多的企业和个人开始选择使用云服务器来满足他们的数据存储和计算需求。腾讯云作为国内领先的云服务提供商,其服务器产品因性能稳定、安全可靠而备受用户青睐。那么,2024年腾讯云服务器的价格情况如何呢&#…

Flattened Butterfly 扁平蝶形拓扑

Flattened Butterfly 扁平蝶形拓扑 1. 传统蝶形网络 Butterfly Topology2. 扁平蝶形拓扑 Flattened Butterfly3.On-Chip Flattened Butterfly 扁平蝶形拓扑应用于片上网络 Flattened Butterfly 扁平蝶形拓扑 扁平蝶形拓扑是一种经济高效的拓扑,适用于高基数路由器…

复合升降机器人教学科研平台——技术方案

一:功能概述 1.1 功能简介 复合升降机器人是一款集成移动底盘、机械臂、末端执行器、边缘计算平台等机构形成的教学科研平台,可实现机器人建图导航、路径规划,机械臂运动学、动力学、轨迹规划、视觉识别等算法功能和应用,提供例如…

前后端交互实例(javaweb05)

文章开始前,先给大家看一张图,这是黑马javaweb-day05请求响应实例,也是第一个实现了前后端交互,这是我画的流程图,搞懂了前后端是如何交互的.(文件的所有路径不能出现中文,否则会报错,这个我暂时不知道该怎么解决). 那么这里面涉及到的东西,除了emp.html这是已经提供了的前端页…