当前位置: 首页 > news >正文

CentOS 7:停止更新后如何下载软件?

引言

        CentOS 7 是一个广受欢迎的 Linux 发行版,它为企业和开发者提供了一个稳定、安全、且免费的操作系统环境。然而,随着时间的推移,CentOS 7 的官方支持已经进入了维护阶段,这意味着它将不再收到常规的更新和新功能,只会有极少量的安全补丁和修复。本文将详细介绍 CentOS 7 的定义、架构、原理、应用场景,并提供在停止更新后如何继续下载和安装软件的解决方案。

ee6fe2cf193f4ce5870383794fafb705.png

一、CentOS 7 的定义

        CentOS(Community Enterprise Operating System)是一个源自 Red Hat Enterprise Linux (RHEL) 的开源 Linux 发行版。CentOS 的主要目标是提供一个企业级的操作系统,与 RHEL 保持高度的二进制兼容性,但无需购买 RHEL 的订阅。

1.1 CentOS 7 的特点

  • 开源和免费:所有源代码都可以自由获取和修改,适合各种规模的企业和开发者使用。
  • 企业级稳定性:源自 RHEL,拥有企业级的稳定性和可靠性。
  • 长期支持周期:通常一个主要版本有长达十年的支持周期(包括全生命周期的维护和安全更新)。

1.2 主要用途

  • 服务器操作系统:广泛用于 Web 服务器、数据库服务器、文件服务器等。
  • 开发和测试环境:许多开发者选择 CentOS 作为开发和测试平台,因为它与生产环境的 RHEL 高度兼容。
  • 容器基础镜像:由于其稳定性,CentOS 镜像经常被用于容器化应用的基础镜像。

二、CentOS 7 的架构

        CentOS 7 的架构与 RHEL 7 类似,采用模块化设计,以实现高效管理和维护。以下是 CentOS 7 的主要架构组件:

2.1 内核

        CentOS 7 使用的是 Linux 内核,提供了操作系统的核心功能,包括进程管理、内存管理、设备驱动、文件系统管理等。

2.2 包管理系统

        CentOS 7 采用 RPM 包管理系统(Red Hat Package Manager),并使用 yum(Yellowdog Updater, Modified)作为高层包管理工具。yum 支持软件包的安装、更新、移除以及依赖关系的自动解决。

2.3 文件系统

        CentOS 7 默认使用 XFS 文件系统,但也支持 ext4、btrfs 等其他文件系统。XFS 以其高性能和可扩展性著称,适合处理大规模的数据存储需求。

2.4 系统服务和守护进程

        使用 systemd 作为系统和服务管理器,取代了传统的 init 系统。systemd 提供了并行化启动、按需启动、依赖关系管理等先进特性。

2.5 网络管理

        CentOS 7 提供了 NetworkManager 作为网络管理工具,支持动态网络配置、VPN 管理、网络接口自动检测和配置等功能。

三、CentOS 7 的原理

        CentOS 7 的工作原理可以从内核启动、用户空间初始化、服务管理等方面进行探讨。

3.1 内核启动

        当系统启动时,BIOS/UEFI 会加载并启动引导程序(如 GRUB),引导程序接着加载 Linux 内核并启动它。内核完成自检后,会初始化硬件设备并挂载根文件系统。

3.2 用户空间初始化

        内核启动后会启动第一个用户空间进程 systemd(PID 1),systemd 负责初始化用户空间环境,包括挂载文件系统、启动系统服务、设置系统时钟等。

3.3 服务管理

        systemd 采用单一进程树模型,通过单一的配置文件结构管理系统服务和资源。服务的配置文件通常位于 /etc/systemd/system 和 /usr/lib/systemd/system 目录下,用户可以通过 systemctl 命令管理服务的启动、停止、重启等操作。

四、CentOS 7 的应用场景

4.1 Web 服务器

        CentOS 7 常用于搭建 Web 服务器,支持 Apache、Nginx、Lighttpd 等常见的 Web 服务器软件。

4.2 数据库服务器

        CentOS 7 支持 MySQL、MariaDB、PostgreSQL 等数据库管理系统,是许多数据库服务器的首选操作系统。

4.3 文件服务器

        利用 Samba 或 NFS,CentOS 7 可以配置成高效的文件服务器,满足企业内部的文件共享需求。

4.4 容器平台

        作为稳定的操作系统,CentOS 7 经常被用于 Docker 和 Kubernetes 等容器平台的基础环境。

4.5 虚拟化环境

        CentOS 7 支持 KVM(Kernel-based Virtual Machine),可以作为虚拟化主机运行多个虚拟机实例。

五、CentOS 7 停止更新后的应对方案

        随着 CentOS 7 进入维护阶段,用户可能会遇到无法下载和安装软件的问题。以下是几种有效的解决方案:

5.1 使用 EPEL 仓库

        Extra Packages for Enterprise Linux (EPEL) 是由 Fedora 项目维护的一个软件仓库,提供了许多额外的软件包。通过以下命令可以安装 EPEL 仓库:

sudo yum install epel-release

安装 EPEL 仓库后,可以使用 yum 或 dnf 命令安装其中的软件包。

5.2 使用 CentOS Vault

        CentOS Vault 存储了 CentOS 各个历史版本的软件包,包括 CentOS 7。你可以通过配置 yum 仓库文件来访问 CentOS Vault。例如,创建或编辑 /etc/yum.repos.d/CentOS-Vault.repo 文件,并添加以下内容:

[CentOS-Vault]

name=CentOS Vault

baseurl=http://vault.centos.org/7.9.2009/os/x86_64/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

5.3 使用第三方仓库,比如华为源

        有许多第三方仓库提供 CentOS 7 的软件包。例如:

1、备份配置文件:

cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

2、配置下列方案。

方案:

下载新的CentOS-Base.repo文件到/etc/yum.repos.d/目录下,选择 CentOS 版本:

执行如下命令:

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo

3、执行yum clean all清除原有 yum 缓存

4、执行yum makecache(刷新缓存)或者yum repolist all(查看所有配置可以使用的文件,会自动刷新缓存)。

5.4 编译源码安装

        如果无法找到预编译的二进制软件包,或者需要特定版本的软件,可以选择下载源码并进行编译安装。以下是一个编译安装软件的一般步骤:

  1. 下载源码包。
  2. 解压源码包。
  3. 阅读 README 或 INSTALL 文件获取编译和安装指令。
  4. 执行编译和安装命令,例如:

./configure

make

sudo make install

六、结论

        尽管 CentOS 7 已经停止了官方更新,但通过适当的配置和方法,我们仍然可以继续在其上安装和使用软件。通过使用 EPEL 仓库、CentOS Vault、第三方仓库、编译源码安装,以及考虑迁移到替代发行版如 CentOS Stream、AlmaLinux 或 Rocky Linux,用户可以保持系统的功能性和安全性。此外,熟练掌握 CentOS 7 的常见命令体系也是确保系统稳定运行的重要一环。

        在未来,随着 CentOS 7 的完全停止支持,规划和实施迁移到新的操作系统版本或替代方案将是不可避免的。因此,建议用户尽早开始迁移准备工作,以确保业务和系统的持续稳定运行。希望本文能够为在使用 CentOS 7 的用户提供有价值的信息和解决方案。

 

 

相关文章:

CentOS 7:停止更新后如何下载软件?

引言 CentOS 7 是一个广受欢迎的 Linux 发行版,它为企业和开发者提供了一个稳定、安全、且免费的操作系统环境。然而,随着时间的推移,CentOS 7 的官方支持已经进入了维护阶段,这意味着它将不再收到常规的更新和新功能,…...

MySQL GROUP_CONCAT 函数详解与实战应用

提示:在需要将多个值组合成一个列表时,GROUP_CONCAT() 函数为 MySQL 提供了一种强大的方式来处理数据 文章目录 前言什么是 GROUP_CONCAT()基本语法 示例使用 GROUP_CONCAT()去除重复值排序结果 前言 提示:这里可以添加本文要记录的大概内容…...

MATLAB Gazebo联合仿真

准备仿真环境:在Gazebo中设置仿真场景,包括机器人模型、环境布局、传感器和执行器等。编写MATLAB脚本:在MATLAB中编写控制算法和数据处理脚本,用于接收Gazebo中的传感器数据,并生成控制命令。建立通信:通过…...

Vue3 pdf.js将二进制文件流转成pdf预览

好久没写东西,19年之前写过一篇Vue2将pdf二进制文件流转换成pdf文件,如果Vue2换成Vue3了,顺带来一篇文章,pdf.js这个东西用来解决内网pdf预览,是个不错的选择。 首先去pdfjs官网,下载需要的文件 然后将下载…...

【机器学习】逻辑回归的原理、应用与扩展

文章目录 一、逻辑回归概述二、Sigmoid函数与损失函数2.1 Sigmoid函数2.2 损失函数 三、多分类逻辑回归与优化方法3.1 多分类逻辑回归3.2 优化方法 四、特征离散化 一、逻辑回归概述 逻辑回归是一种常用于分类问题的算法。大家熟悉的线性回归一般形式为 Y a X b \mathbf{Y}…...

Ubuntu22.04系统装好后左上角下划线闪烁不开机(N卡)

折腾了半天以为是ubuntu的系统和硬件不匹配, 最后发现的确有点关系, 就是显卡驱动的问题 解决办法: 1. 进入到safty模式下, 然后配好网络环境 2. 移除所有的驱动相关的包, sudo apt-get remove --purge nvidia* 3.…...

Leetcode刷题4--- 寻找两个正序数组的中位数 Python

目录 题目及分析方法一:直接合并后排序方法二:二分查找法 题目及分析 (力扣序号4:[寻找两个正序数组的中位数](https://leetcode.cn/problems/median-of-two-sorted-arrays/description/) 给定两个大小分别为 m 和 n …...

springBoot(若依)集成camunda

1、下图为项目结构 2、最外层 pom引入依赖 <properties><!--camunda 标明版本&#xff0c;注意要个自己的Spring 版本匹配&#xff0c;匹配关系自行查询官网--><camunda.version>7.18.0</camunda.version> </properties> 3、common模块引入依赖 …...

【微信小程序知识点】自定义构建npm

在实际开发中&#xff0c;随着项目的功能越来越多&#xff0c;项目越来越复杂&#xff0c;文件目录也变得很繁琐&#xff0c;为了方便进行项目的开发&#xff0c;开发人员通常会对目录结构进行优化调整&#xff0c;例如&#xff1a;将小程序源码放到miniprogram目录下。 &…...

JCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断

JJCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断 目录 JJCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断分类效果格拉姆矩阵图GAF-PCNN-MATTGASF-CNNGADF-CNN 基本介绍程序设计参考资料 分…...

新手教学系列——高效管理MongoDB数据:批量插入与更新的实战技巧

前言 在日常开发中,MongoDB作为一种灵活高效的NoSQL数据库,深受开发者喜爱。然而,如何高效地进行数据的批量插入和更新,却常常让人头疼。今天,我们将一起探讨如何使用MongoDB的bulk_write方法,简化我们的数据管理流程,让代码更加简洁高效。 常规做法:find、insertone…...

C# Winform 自定义事件实战

在C#的WinForms中&#xff0c;自定义事件是一种强大的工具&#xff0c;它允许你创建自己的事件&#xff0c;从而在特定条件下通知订阅者。自定义事件通常用于封装业务逻辑&#xff0c;使代码更加模块化和易于维护。下面我将通过一个实战例子来展示如何在WinForms中创建和使用自…...

Python通过继承实现多线程

本套课在线学习视频&#xff08;网盘地址&#xff0c;保存到网盘即可免费观看&#xff09;&#xff1a; ​​https://pan.quark.cn/s/677661ea63b3​​ 本节将介绍如何利用Python中的thread模块和threading模块实现多线程&#xff0c;并通过继承threading.Thread类并重写run方…...

记一次项目经历

一、项目需求 1、设备四个工位&#xff0c;每个工位需要测试产品的电参数&#xff1b; 2、每个另外加四个位置温度&#xff1b; 3、显示4个通道电流曲线&#xff0c;16个通道温度曲线&#xff1b; 4、可切换工艺参数&#xff1b; 5、常规判定&#xff0c;测试数据保存到表格内&…...

Elasticsearch 8 支持别名查询

在 Elasticsearch 8 中&#xff0c;使用 Java 高级 REST 客户端进行别名管理的过程与之前的版本类似&#xff0c;但有一些API细节上的变化。以下是如何使用 Java 和 Elasticsearch 8 进行别名操作的例子&#xff1a; 引入依赖 确保你的项目中包含了 Elasticsearch 的高级 RES…...

【Spring Cloud】 使用Eureka实现服务注册与服务发现

文章目录 &#x1f343;前言&#x1f38d;解决方案&#x1f6a9;关于注册中⼼&#x1f6a9;CAP理论&#x1f6a9;常见的注册中心 &#x1f384;Eureka&#x1f6a9;搭建 Eureka Server&#x1f388;创建Eureka-server ⼦模块&#x1f388;引入依赖&#x1f388;项目构建插件&am…...

JDK安装详细教程(以JDK17为例)

一、JDK的下载 1. 前往oracle官网下载JDK Java Archive Downloads - Java SE 17 在这里选择对应的JDK版本&#xff0c;我这里就直接选择JDK17的版本了。 然后下载对应的软件包&#xff0c;我这里采用的是Windows的安装程序。 点击上述圈起来的链接即可下载安装包&#xff0c;…...

安装nodejs | npm报错

nodejs安装步骤: 官网&#xff1a;https://nodejs.org/en/ 在官网下载nodejs: 双击下载下来的msi安装包&#xff0c;一直点next&#xff0c;我选的安装目录是默认的: 测试是否安装成功&#xff1a; 输入cmd打开命令提示符&#xff0c;输入node -v可以看到版本&#xff0c;说…...

聊点基础---Java和.NET开发技术异同全方位分析

1. C#语言基础 1.1 C#语法概览 欢迎来到C#的世界&#xff01;对于刚从Java转过来的开发者来说&#xff0c;你会发现C#和Java有很多相似之处&#xff0c;但C#也有其独特的魅力和强大之处。让我们一起来探索C#的基本语法&#xff0c;并比较一下与Java的异同。 程序结构 C#程序…...

【C++】C++中SDKDDKVer.h和WinSDKVer.h函数库详解

目录 一.SDKDDKVer.h介绍 二.WinSDKVer.h介绍 三.WinSDKVer.h 和 SDKDDKVer.h 的区别 一.SDKDDKVer.h介绍 SDKDDKVer.h 是一个在 Windows 软件开发中常见的头文件&#xff0c;它用于定义软件开发工具包&#xff08;SDK&#xff09;和驱动开发工具包&#xff08;DDK&…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...