CentOS与Ubuntu的详细区别

CentOS与Ubuntu的详细区别

CentOS和Ubuntu是两个主流的Linux发行版,它们在设计理念、技术架构和使用场景上存在显著差异。

发行版基础与理念差异

CentOS(Community Enterprise Operating System)基于Red Hat Enterprise Linux(RHEL)的源代码构建,属于Red Hat系发行版。它的核心理念是提供一个免费的企业级操作系统,强调稳定性和长期支持。CentOS采用保守的更新策略,软件包版本相对较旧但经过充分测试,适合需要高稳定性的生产环境。

Ubuntu则基于Debian发行版,由Canonical公司主导开发。它的设计理念更加注重用户友好性和创新性,采用相对激进的更新策略,软件包版本较新,每6个月发布一个新版本。Ubuntu在桌面环境和云计算领域都有广泛应用,特别适合开发环境和需要最新软件特性的场景。

包管理系统差异

两个发行版使用完全不同的包管理系统。CentOS使用YUM(Yellowdog Updater Modified)和DNF(Dandified YUM)作为包管理器,软件包格式为RPM(Red Hat Package Manager)。而Ubuntu使用APT(Advanced Package Tool)作为包管理器,软件包格式为DEB。这种差异意味着软件的安装命令、依赖处理方式和软件仓库结构都不相同。

系统管理和配置差异

在系统服务管理方面,虽然两者现在都使用systemd作为init系统,但在网络配置、防火墙管理等方面仍有差异。CentOS默认使用firewalld作为防火墙管理工具,网络配置文件位于/etc/sysconfig/network-scripts/目录。Ubuntu则使用ufw(Uncomplicated Firewall)作为防火墙前端,网络配置使用Netplan(较新版本)或传统的/etc/network/interfaces文件。

SELinux(Security-Enhanced Linux)是另一个重要差异点。CentOS默认启用SELinux,提供强制访问控制,增强系统安全性但也增加了配置复杂度。Ubuntu默认使用AppArmor作为安全模块,相对来说配置更简单,但功能不如SELinux全面。

发布周期和支持周期

CentOS传统上提供10年的支持周期,主要版本间隔较长(约3-4年),适合长期稳定运行的服务器。不过需要注意的是,CentOS 8已经在2021年底结束支持,Red Hat将重心转向CentOS Stream(滚动发布版本)。

Ubuntu提供两种版本:常规版本每6个月发布一次,支持9个月;LTS(Long Term Support)版本每2年发布一次,提供5年的免费支持。这种模式让用户可以根据需求选择稳定性或新特性。

CentOS配置镜像源

配置国内镜像源可以显著提高软件包下载速度。以下是配置阿里云镜像源的详细步骤:

CentOS 7配置镜像源

首先备份原有的repo文件,这是一个良好的习惯,可以在出现问题时快速恢复:

bash 复制代码
sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.backup

下载阿里云的CentOS 7镜像源配置文件:

bash 复制代码
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

如果系统没有curl,可以使用wget:

bash 复制代码
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

清理缓存并生成新的缓存:

bash 复制代码
sudo yum clean all
sudo yum makecache

CentOS Stream 8/9配置镜像源

对于CentOS Stream版本,配置略有不同:

bash 复制代码
# 备份原有配置
sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.backup

# 使用sed命令替换为阿里云镜像
sudo sed -i 's|mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-*

# 清理并重建缓存
sudo dnf clean all
sudo dnf makecache

配置EPEL源

EPEL(Extra Packages for Enterprise Linux)提供了许多额外的软件包,对于开发环境特别有用:

bash 复制代码
# CentOS 7
sudo yum install -y epel-release
sudo sed -i 's|#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/epel*
sudo sed -i 's|metalink|#metalink|g' /etc/yum.repos.d/epel*

# CentOS Stream 8/9
sudo dnf install -y epel-release
sudo dnf config-manager --set-enabled powertools  # CentOS 8
sudo dnf config-manager --set-enabled crb  # CentOS 9

安装常用开发软件

基础开发工具链

安装编译工具和基础开发包是搭建开发环境的第一步:

bash 复制代码
# 安装开发工具组
sudo yum groupinstall -y "Development Tools"

# 安装额外的常用工具
sudo yum install -y vim git wget curl tree htop net-tools

编程语言环境

Python开发环境的配置需要注意版本管理:

bash 复制代码
# 安装Python 3
sudo yum install -y python3 python3-devel python3-pip

# 升级pip并配置国内源
pip3 install --upgrade pip -i https://pypi.douban.com/simple/
mkdir ~/.pip
echo "[global]
index-url = https://pypi.douban.com/simple/
trusted-host = pypi.douban.com" > ~/.pip/pip.conf

# 安装虚拟环境工具
pip3 install virtualenv virtualenvwrapper

Node.js环境可以通过NodeSource仓库安装最新版本:

bash 复制代码
# 添加NodeSource仓库(以Node.js 18为例)
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -

# 安装Node.js和npm
sudo yum install -y nodejs

# 配置npm国内镜像
npm config set registry https://registry.npmmirror.com

# 安装常用全局包
npm install -g yarn pm2 nodemon

Java开发环境的安装相对简单:

bash 复制代码
# 安装OpenJDK
sudo yum install -y java-11-openjdk java-11-openjdk-devel

# 安装Maven
sudo yum install -y maven

# 配置Maven国内镜像(编辑~/.m2/settings.xml)
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << 'EOF'
<settings>
  <mirrors>
    <mirror>
      <id>aliyun</id>
      <mirrorOf>central</mirrorOf>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
  </mirrors>
</settings>
EOF

数据库和缓存

MySQL/MariaDB的安装和初始配置:

bash 复制代码
# 安装MariaDB(MySQL的开源分支)
sudo yum install -y mariadb mariadb-server

# 启动并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb

# 安全初始化
sudo mysql_secure_installation

Redis的安装和基础配置:

bash 复制代码
# 安装Redis
sudo yum install -y redis

# 修改配置允许远程连接(生产环境需谨慎)
sudo sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf
sudo sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf

# 启动服务
sudo systemctl start redis
sudo systemctl enable redis

容器化工具

Docker的安装需要配置专门的仓库:

bash 复制代码
# 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加Docker仓库
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF

# 启动Docker
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker

# 将当前用户加入docker组(需要重新登录生效)
sudo usermod -aG docker $USER

Web服务器

Nginx的安装和基础配置:

bash 复制代码
# 安装Nginx
sudo yum install -y nginx

# 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

# 配置防火墙允许HTTP/HTTPS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

这些配置和安装方法为CentOS系统搭建完整的开发环境提供了基础。根据具体的开发需求,安装其他专门的工具和库。生产环境中要特别注意安全配置,比如设置防火墙规则、配置SELinux策略、定期更新系统等。

相关推荐
xuefeiniao3 分钟前
CentOS + 宝塔服务器偶发 SSH、面板、网站全部无法访问排查记录(PHP-FPM 内存耗尽案例)
服务器·centos·ssh·php
带娃的IT创业者17 分钟前
突破内存瓶颈:利用 Nvidia GPU 显存作为 Linux Swap 空间的深度实践
linux·运维·服务器·nvidia·swap·gpu显存
zy happy36 分钟前
VMware虚拟机添加新的硬盘
java·linux·jvm·docker
LCG元37 分钟前
嵌入式开发踩坑排查实战:从 STM32 外设初始化到 Linux SPI 驱动的 15 类硬件疑难故障深度复盘
linux·stm32·单片机
代码AC不AC1 小时前
【Linux】Socket编程TCP
linux·tcp·socket编程
扛枪的书生1 小时前
SeaweedFS 学习总结
linux
minglie11 小时前
香橙派zero3配个iic屏显示ip
linux·学习
默默提升实验室1 小时前
Ubuntu 22.04.5 配置静态IP,手动安装SSH
ubuntu
edwarddamon1 小时前
SSH 指定端口建立隧道:打通内网访问完整教程
linux·命令行
ShirleyWang0122 小时前
Day02 K3s NGF(Nginx Gateway Fabric)单 Worker 环境网关更新与故障处置 SOP
linux·服务器·python·k8s·k3s