Linux包管理器速成:yum/apt双精要/镜像源加速/依赖解析30分钟通解,掌握软件安装的艺术与生态哲学



🔥@雾忱星: 个人主页
👀专栏:《C++学习之旅》《Linux学习指南》
💪学习阶段:C/C++、Linux
⏳"人理解迭代,神理解递归。"


文章目录

  • 引言
  • 一、软件包管理器:
    • [1.1 解析:软件包的核心](#1.1 解析:软件包的核心)
    • [1.2 Linux 的软件生态:核心问题与优势](#1.2 Linux 的软件生态:核心问题与优势)
  • 二、镜像源:解决Linux软件下载慢、下载失败的关键
    • [2.1 基础:镜像源是什么](#2.1 基础:镜像源是什么)
    • [2.2 国内常见镜像安装源](#2.2 国内常见镜像安装源)
  • [三、yum + apt指令实操:从基础到常用](#三、yum + apt指令实操:从基础到常用)
    • [3.1 查看软件源状态](#3.1 查看软件源状态)
    • [3.2 查询软件包](#3.2 查询软件包)
    • [3.3 安装软件包](#3.3 安装软件包)
    • [3.4 卸载软件包](#3.4 卸载软件包)
  • 总结

引言

  Linux系统的稳定性、高效性早已成为服务器领域的标杆,而其强大的软件生态更是开发者、运维人员依赖它的核心原因之一。但对于Linux新手而言,"安装软件"往往是入门第一道坎 ------手动编译源码、解决依赖循环、清理残留文件,繁琐且易出错。而软件包管理器 ,正是为解决这些痛点而生的"神器"

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

一、软件包管理器:

  在 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 测试响应速度
  • 一键脚本: 有些镜像站提供自动替换脚本,更加便捷
  • 企业环境: 建议使用阿里云、腾讯云、华为云等企业级镜像,保证SLA

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

【温馨提示】:

  • 所有指令需使用root用户 执行,或在指令前加sudo (如sudo yum install nginx -ysudo apt install nginx -y),否则会提示"权限不足"。

  • 指令中的-y参数表示"自动确认",避免每次操作都提示"是否继续(y/n)",提升操作效率,建议加上。

  • 所有操作需保证系统联网,否则会提示"无法连接到软件源"。

3.1 查看软件源状态

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

bash 复制代码
# 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 查询软件包

bash 复制代码
# 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/redhat7。 "el6" 表示 centos6/redhat6
  • 最后⼀列,base 表示的是 "软件源" 的名称,类似于 "小米应用商店","华为应用商店" 这样的概念
  • Ubuntu 有上述有详细介绍

3.3 安装软件包

bash 复制代码
# 一、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 卸载软件包

bash 复制代码
#卸载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


总结

html 复制代码
🍓 我是晨非辰Tong!若这篇技术干货帮你打通了学习中的卡点:
👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长
❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量
⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用
💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑
🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解
技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标!

结语:

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

  对新手而言,掌握基础指令+配置国内镜像源,是高效搞定软件安装的关键,也是熟悉Linux生态的入门必备。

  后续可结合实际需求探索进阶操作,充分发挥Linux开源、稳定的优势。

相关推荐
冬奇Lab12 小时前
Agent 系列(21):Harness 测试工程——45 个测试怎么设计,以及它发现了什么 bug
人工智能·llm·agent
冬奇Lab12 小时前
每日一个开源项目(第133篇):EchoBird - 把 AI 工具的安装和部署做成傻瓜操作
人工智能·开源·资讯
程序员龙叔13 小时前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试
_wyt00113 小时前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
IT_陈寒14 小时前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
用户51914958484515 小时前
Windows 渗透测试载荷加载器 POC 工具集
人工智能·aigc
大树8815 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
用户83562907805115 小时前
使用 Python 操作 Word 内容控件
后端·python
摇滚侠15 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
通信小呆呆16 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人