Linux 搭建私有yum源仓库

news2024/11/26 14:41:37

一、环境准备

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MobX入门指南:快速上手状态管理库

一、什么是MobX MobX 是一个状态管理库,它可以让你轻松地管理应用程序的状态,并且可以扩展和维护。它使用观察者模式来自动传播你的状态的变化到你的 React 组件。 二、安装及配置 安装 MobX 和 MobX-React:你可以使用 npm 或 yarn 安装这…

MDK stm32怎么生成bin文件

第一种 D:\Keil_v5\ARM\ac5.6\bin\fromelf.exe --bin -o ../../Output/atk_f407.bin ../../Output/atk_f407.axf 空格解析 D:\Keil_v5\ARM\ac5.6\bin\fromelf.exe一个空格--bin一个空格-o两个空格../../Output/atk_f407.bin ../../Output/atk_f407.axf (注意后…

Python零基础从小白打怪升级中~~~~~~~多线程

线程安全和锁 一、全局解释器锁 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。 GIL全称global interpreter lock,全局解释器锁。 每个线程在执行的时候都需要先获取GIL,保证同一时刻只…

爬虫 | 网易新闻热点数据的获取与保存

Hi,大家好,我是半亩花海。本项目是一个简单的网络爬虫,用于从网易新闻的热点新闻列表中提取标题和对应的链接,并将提取到的数据保存到一个 CSV 文件中。 目录 一、技术栈 二、功能说明 三、注意事项 四、代码解析 1. 导入所需…

html+vue编写分页功能

效果&#xff1a; html关键代码&#xff1a; <div class"ui-jqgrid-resize-mark" id"rs_mlist_table_C87E35BE"> </div><div class"list_component_pager ui-jqgrid-pager undefined" dir"ltr"><div id"pg…

MySQL(2024.4.17)

目录 1. 什么是MySQL的MVCC机制&#xff1f; 2. 如何理解InnoDB的Next-Key Lock机制&#xff1f; 3. 快照读和当前读的区别&#xff1f; 4. 如何在SQL语句中触发当前读&#xff1f; 5. MySQL默认的隔离级别是什么&#xff1f; 6. 如何避免在使用当前读时可能出现的死锁问…

【LLM】认识LLM

文章目录 1.LLM1.1 LLM简介1.2 LLM发展1.3 市面常见的LLM1.4 LLM涌现的能力 2.RAG2.1 RAG简介2.2 RAG 的工作流程2.3 RAG 和 Finetune 对比2.4 RAG的使用场景分析 3. LangChain3.1 LangChain简介3.2 LangChain的核心组件3.3 LangChain 入门 4.开发 RAG 应用的整体流程5. 环境配…

虚幻引擎源码版安装下载,点击GenerateProjectFiles.bat报错 error NU1101NuGet包问题解决参考方案

开发环境配置与源码安装使用 安装VS2022 按照官方文档安装需要的vs配置 虚幻引擎源代码下载 Epic里面下载的引擎与源代码引擎区别&#xff1a;Epic里面下载的引擎是已经编译过的它的源代码访问权限不完整&#xff0c;源代码版本提供比较完整引擎代码&#xff0c;并且可以修…

OpenHarmony社交分享类APP开发实战

介绍 本示例是一个社交分享类APP&#xff0c;搭建了不同的页面向用户提供获取社交信息等能力。为了减少频繁权限弹窗对用户的干扰&#xff0c;同时提供更小的授权范围&#xff0c;使用了安全控件做临时授权场景。当用户实际点击了某种类型的安全控件时&#xff0c;会由系统弹出…

uni.uploadFile上传图片后台接收不到数据

今天遇到一个很奇怪的问题&#xff0c;通过使用uni.uploadFile上传文件时后端接收不到文件&#xff0c;查过很多资料&#xff0c;原来是自定义了header的Content-Type问题。取消即可&#xff0c;另把自定义文件上传的代码贴出来。 分析&#xff1a;当我们加上请求头的时候 不…

Java中使用JTS对空间几何计算(距离、点在面内、长度、面积、相交等)模拟的大概写法

场景 基于GIS相关的集成系统&#xff0c;需要对空间数据做一些判断处理。比如读取WKT数据、点到点、点到线、点到面的距离&#xff0c; 线的长度、面的面积、点是否在面内等处理。 JTS (Java Topology Suite) Java拓扑套件&#xff0c;是Java的处理地理数据的API。 github地址&…

【NLP】大语言模型基础之Transformer结构

大语言模型基础之Transformer结构 1. Transformer结构总览2. 嵌入表示层2. 注意力层3. 前馈层4. 残差连接与层归一化5. 编码器和解码器结构参考文献 Transformer是一种深度学习模型架构&#xff0c;由Vaswani等人于2017年在论文《Attention is All You Need》中首次提出。它在自…

用友NC avatar接口文件上传漏洞

产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具&#xff0c;用友NC提供了一系列业务管理模块&#xff0c;包括财务会计、采购管理销售管理、物料管理、生产计划和人力资源管理等&#xff0c;帮助企业实现数字化转型和高效管理。 漏洞介绍 用友 NC avatar接口处…

【OpenHarmony】TDD-FUZZ环境配置

零、参考 1、AttributeError: ‘ElementTree‘ object has no attribute ‘getiterator‘&#xff1a;https://blog.csdn.net/suhao0911/article/details/110950742 一、创建工作目录 1、新建工作目录如&#xff1a;D:\0000_TDD_FUZZ\0000_ohos_tdd_fuzz。 2、gitee上下载 t…

前端网络---http缓存

什么是http缓存&#xff1f; 1、HTTP 缓存会存储与请求关联的响应&#xff0c;并将存储的响应复用于后续请求。 2、缓存的原理是在首次请求后保存一份请求资源的响应副本&#xff0c;当用户再次发起相同请求时&#xff0c;判断缓存是否命中&#xff0c;如果命中则将前面的响应…

在Linux操作系统中文件目录特殊权限

管理员用户和普通用户都可以使用passwd命令来给用户设置密码 用户密码保存在/etc/shadow suid 4 sgid 2 sticky bit 1 suid&#xff08;只要是针对可执行文件进行设置。&#xff09; {当没有操作要求时&#xff0c;不可以擅自对shell&#xff0c;python脚本加上suid权…

dbeaver数据库语言编辑器设置jdbc驱动

打开 dbeaver 软件 数据库 -> 驱动管理器 以mysql为例 双击 MySQL -> 库 -> 添加工件 然后 打开maven组件库 官网 找到mysql驱动对应的maven工件地址 复制进去然后确认就行了 参考 大神博客

48.基于SpringBoot + Vue实现的前后端分离-雪具销售系统(项目 + 论文PPT)

项目介绍 本站是一个B/S模式系统&#xff0c;采用SpringBoot Vue框架&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SpringBoot Vue技术的雪具销售系统设计与实现管理工作系统…

【测试思考】做比开发、产品还熟悉业务的测试

有时一个边缘功能很久很久不改动&#xff0c;那再需要测通它时&#xff0c;经常需要对接多方&#xff0c;有的请假了有的调走了有的不清楚更甚者有时候一个功能找不到清楚的人....... 当没有可查阅的文档或记录&#xff0c;找不到完整的信息时&#xff0c;咋办&#xff1f; 当…

n皇后问题-java

本次n皇后问题主要通过dfs&#xff08;深度优先搜索&#xff09;实现&#xff0c;加深对深度优先搜索的理解。 文章目录 前言 一、n皇后问题 二、算法思路 三、使用步骤 1.代码如下 2.读入数 3.代码运行结果 总结 前言 本次n皇后问题主要通过dfs&#xff08;深度优先搜索&#…