找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2919

积分

0

好友

378

主题
发表于 6 小时前 | 查看: 5| 回复: 0

引言

Linux 系统的稳定性与高效性早已成为服务器领域的标杆,而其强大的软件生态更是开发者与运维人员依赖它的核心原因之一。但在 云栈社区 的日常技术交流中,我们发现对于 Linux 新手而言,“安装软件”往往是入门的第一道坎——手动编译源码、解决依赖循环、清理残留文件,繁琐且易出错。而软件包管理器,正是为解决这些痛点而生的核心工具。

本文将全面拆解 Linux 软件包管理器,涵盖 Linux 软件生态架构、镜像源优化技巧,以及最常用的 yum 和 apt 包管理器完整实操,助力大家快速玩转 网络/系统 级别的软件管理。

一、软件包管理器

在 Windows 系统中,我们安装软件通常是下载 .exe 文件,双击下一步即可完成,但 Linux 系统中没有统一的“安装文件格式”,取而代之的是“软件包”,而软件包管理器就是管理这些软件包的工具,二者相辅相成。

1.1 解析:软件包的核心

  • 软件包: 本质上是一个压缩归档文件,包含了软件的可执行程序、配置文件、依赖库、帮助文档等所有运行该软件所需的文件,同时还会记录软件的版本信息、依赖关系(即运行该软件需要提前安装的其他软件/库)。
  • 包管理器: Linux 系统中用于管理软件包全生命周期的工具,核心功能包括:安装软件包、卸载软件包、更新软件包、查询软件包信息、解决软件包依赖关系。

简单来说:软件包好比“App”,软件包管理器就是 Linux 系统的「应用商店」。

【常见的软件包格式】:

  • RPM 包: RedHat 系列(CentOS、RHEL、Fedora)默认格式,后缀为 .rpm
  • DEB 包: Debian 系列(Ubuntu、Debian、Deepin)默认格式,后缀为 .deb
  • 源码包: 后缀为 .tar.gz.tar.bz2,需要手动编译安装,灵活性高但操作复杂(新手不推荐)

【常见的软件包管理器】:

  • yum: RedHat 系列默认包管理器,基于 RPM 包,自动解决依赖,操作简单
  • apt-get/apt: Debian 系列默认包管理器,基于 DEB 包,与 yum 功能类似(比如 apt install 对应 yum install

【Linux 下载软件过程】: Ubuntu、Centos、other

云服务器与软件包服务器交互流程图

1.2 Linux 的软件生态:核心问题与优势

评价一款操作系统的好坏,生态是关键指标——Linux 的软件生态以 “开源、多样” 为核心特点,广泛应用于服务器领域,但同时也存在两个新手最容易踩坑的核心问题:依赖关系复杂、系统版本兼容性差

操作系统生态思维导图

  • 软件包依赖问题:
    大部分 Linux 软件都不是独立运行的,需要依赖其他的软件库(如 C 语言库、加密库)或其他软件,这种依赖关系可能形成 “链式依赖”(A 依赖 B,B 依赖 C,C 依赖 D),只要其中一个依赖缺失或版本不匹配,软件就无法正常运行。

软件依赖链流程图

  • 版本兼容性问题:
    Linux 有多个发行版(RedHat、CentOS、Ubuntu 等),不同发行版的软件包格式不同(RPM vs DEB);即使是同一发行版的不同版本(如 CentOS 7 vs CentOS 8),软件包的版本、依赖库也可能不同,导致软件包无法跨版本、跨发行版兼容。

  • 优势所在: Linux 软件生态的优势十分突出,这也是它在服务器领域占据主导地位的核心原因。

特点 体现
开源免费 大部分 Linux 软件都是开源的,可以直接使用,且可以根据需求修改源码
安全性高 开源软件的漏洞能被全球开发者发现并修复,比闭源软件有保障
可定制性强 软件的源码开放,可根据需求裁剪功能、修改配置
轻量化、稳定 Linux 软件普遍占用系统资源少,运行稳定,适合长期不间断运行

那么在社区为什么会有很多的免费软件供人使用?还是上面提到的:开源模式。开源本身也是一种商业模式。

操作系统生态和软件包管理流程示意图

二、镜像源:解决 Linux 软件下载慢、下载失败的关键

我们使用 yum 安装软件时,yum 会从“软件源”(存放软件包的服务器)中下载软件包和依赖。默认情况下,Linux 系统的官方软件源服务器都在国外,国内用户访问时会出现下载速度慢(几 KB/s)、超时、下载失败等问题——配置国内镜像源,是解决这些问题的唯一有效方法

2.1 基础:镜像源是什么

镜像源(Mirror) 本质上是官方软件源的“副本”——国内的各大厂商(阿里云、腾讯云、网易、清华、中科大等)会将国外官方源中的所有软件包,同步到自己的国内服务器上,形成国内镜像源。

软件包管理与分发流程架构图

2.2 国内常见镜像安装源

镜像站名称 网址 发行版本
清华大学 TUNA 镜像站 https://mirrors.tuna.tsinghua.edu.cn/ Ubuntu, Debian, CentOs, Arch Linux, EPEl 等
中国科学技术大学 USTC 镜像站 https://mirrors.ustc.edu.cn/ Ubuntu, Debian, CentOS, Arch Linux, EPEL 等
阿里云镜像站 https://developer.aliyun.com/mirror/ Ubuntu, Debian, CentOS, Fedora, Arch Linux, EPEL 等
华为云镜像站 https://mirrors.huaweicloud.com/home Ubuntu, Debian, CentOS, Fedora, EPEL 等
网易开源镜像站 https://mirrors.163.com/ Ubuntu, Debian, CentOS, Fedora, EPEL
腾讯云镜像站 https://mirrors.cloud.tencent.com/ Ubuntu, CentOS, EPEL, Docker, PyPI 等

【选择建议】:

  • 地理位置优先: 选择离你物理位置最近的镜像站
  • 稳定性测试: 可以 ping 或 curl 测试响应速度
  • 一键脚本: 有些镜像站提供自动替换脚本,更加便捷
  • 企业环境: 对于企业级的 运维/DevOps/SRE 实践,建议使用阿里云、腾讯云、华为云等企业级镜像,保证 SLA

三、yum + apt 指令实操:从基础到常用

【温馨提示】:

  • 所有指令需使用 root 用户 执行,或在指令前加 sudo(如 sudo yum install nginx -ysudo apt install nginx -y),否则会提示“权限不足”。
  • 指令中的 -y 参数表示“自动确认”,避免每次操作都提示“是否继续(y/n)”,提升操作效率,建议加上。
  • 所有操作需 保证系统联网,否则会提示“无法连接到软件源”。

3.1 查看软件源状态

用于确认配置的国内镜像源是否生效,执行后可验证后续指令能否正常使用:

# CentOS:yum专属指令,查看当前启用的yum源列表,确认镜像源生效
sudo yum repolist
# 会输出类似如下内容(以阿里云yum镜像源为例):
# repo id         repo name                               status
# base/7/x86_64   CentOS-7 - Base - mirrors.aliyun.com    10,072
# epel/x86_64     Extra Packages for Enterprise Linux 7 - x86_64 13,735
# updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com  4,896
# 其中“repo id”为yum源标识,“repo name”为yum源名称(含阿里云标识),“status”为该源可用软件包数量,
# 若能看到对应国内镜像源(如aliyun)且软件包数量正常,说明yum镜像源配置成功,后续yum指令可正常使用。
#=====================================================================
# Ubuntu:查看当前启用的apt源列表,确认镜像源生效
sudo apt update && sudo apt list --upgradable
# 1. 先执行sudo apt update,会输出各apt源的更新进度,类似:
# Hit:1 http://mirrors.aliyun.com/ubuntu focal InRelease
# Hit:2 http://mirrors.aliyun.com/ubuntu focal-updates InRelease
# ......(无“Could not connect”等报错)
# Reading package lists... Done
# Building dependency tree
# Reading state information... Done
# 2. 再执行sudo apt list --upgradable,会列出可升级的软件包(若暂无可升级软件,会提示“No upgrades available”),
# 整个过程无网络报错、能正常加载源信息,说明apt镜像源配置成功,后续apt指令可正常使用。
  • yum(sudo yum repolist):执行后会显示 yum 源的名称、标识、软件包数量,如果能看到 aliyun 相关的源(如 base、epel),且软件包数量正常(通常上万个),说明阿里云 yum 镜像源配置成功,后续所有 yum 指令可正常使用。
  • apt(sudo apt update && sudo apt list --upgradable):执行后先更新缓存,再显示可升级的软件包列表,若没有“无法连接”报错,且能正常显示软件包,说明阿里云 apt 镜像源配置成功,后续所有 apt 指令可正常使用。

3.2 查询软件包

# CentOS:搜索lrzsz软件包
$ yum list | grep lrzsz
lrzsz.x86_64 0.12.20-36.el7 @base
#lrzsz软件已安装(@base表示从基础源安装),版本0.12.20,适用于CentOS 7
# Ubuntu:搜索lrzsz软件包
$ apt search lrzsz
Sorting... Done
Full Text Search... Done
cutecom/focal 0.30.3-1build1 amd64
Graphical serial terminal, like minicom
lrzsz/focal,now 0.12.21-10 amd64 [installed]
#lrzsz软件已安装([installed]标识),版本0.12.21,适用于Ubuntu 20.04
Tools for zmodem/xmodem/ymodem file transfer
# Ubuntu查看lrzsz详细信息
$ apt show lrzsz
Package: lrzsz
Version: 0.12.21-10
# 解读:确认软件包名称为lrzsz,版本0.12.21-10
Tools for zmodem/xmodem/ymodem file transfer
# 解读:软件功能描述——用于Zmodem/Xmodem/Ymodem协议的文件传输工具

lrzsz 软件包提供 rz(接收)和 sz(发送)命令。

  • yum list | grep ≈ apt search:搜索软件包
  • yum info ≈ apt show:查看详细信息

【注意事项】:

  • 软件包名称:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构
  • x86_64 后缀表示 64 位系统的安装包,i686 后缀表示 32 位系统安装包,选择包时要和系统匹配
  • el7 表示操作系统发行版的版本,el7 表示的是 centos7/redhat7el6 表示 centos6/redhat6
  • 最后一列,base 表示的是“软件源”的名称,类似于“小米应用商店”、“华为应用商店”这样的概念
  • Ubuntu 有上述详细介绍

3.3 安装软件包

# 一、CentOS
#1.查询lrzsz是否已安装
sudo yum list | grep lrzsz
#若已安装
lrzsz.x86_64 0.12.20-36.el7 @base
#lrzsz已安装,版本0.12.20,适配CentOS 7,@base表示从基础源安装,无需再执行安装指令
#若未安装
lrzsz.x86_64 0.12.20-36.el7 base
#lrzsz未安装,软件包存在于base基础源中,可执行以下安装指令
# 2.未安装时,执行yum安装指令
sudo yum install lrzsz -y
#======================================================
#Ubuntu系统
# 1.先查询lrzsz是否已安装
sudo apt search lrzsz
#若已安装
lrzsz/focal,now 0.12.21-10 amd64 [installed]
#lrzsz已安装,版本0.12.21,适配Ubuntu 20.04(focal),[installed]为已安装标识,无需再执行安装指令
#若未安装
lrzsz/focal 0.12.21-10 amd64
#lrzsz未安装,软件包存在于配置的国内镜像源中,可执行以下安装指令
#2.未安装时,执行apt安装指令
sudo apt install lrzsz -y
#3.安装完成后,查看lrzsz详细信息(验证安装)
sudo apt show lrzsz
Package: lrzsz
Version: 0.12.21-10
#确认软件包名称为lrzsz,安装版本0.12.21-10,与下载版本一致
Tools for zmodem/xmodem/ymodem file transfer

指令语法: 安装软件包:yum / apt install [选项] 软件包名-y 自动确认)

【注意事项】:

  • 安装软件时需要 root 用户或者 sudo
  • yum / apt 安装软件只能安装完一个再装另一个,尝试同时安装会报错

3.4 卸载软件包

#卸载lrzsz工具,保留配置
#yum
sudo yum remove lrzsz -y
sudo yum erase lrzsz -y
#apt
sudo apt remove lrzsz -y

关于 yum/apt 的所有操作必须保证主机(虚拟机)网络畅通!可通过 ping 指令验证:ping www.baidu.com

总结

本文梳理了 Linux 软件包、管理器及镜像源的核心知识,拆解新手常见的依赖与兼容问题,同步给出 yum、apt 的实操指令。

对新手而言,掌握基础指令并配置国内镜像源,是高效搞定软件安装的关键,也是熟悉 Linux 生态的入门必备。后续可结合实际需求探索进阶操作,充分发挥 Linux 开源、稳定的优势。




上一篇:Go语言后端开发进阶路线:从Gin框架到微服务高并发实战
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-3 07:58 , Processed in 0.388570 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表