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开源、稳定的优势。

相关推荐
ZCXZ12385296a2 小时前
汽车损伤检测技术实现:YOLO13-C3k2-ConvFormer模型优化与性能分析_1
python
阿猿收手吧!2 小时前
【C++】深入解析C++内存序:性能与正确性平衡
c++
Network_Engineer2 小时前
从零手写Transformer:基于每一步shape变化拆解与PyTorch实现
人工智能·pytorch·深度学习·transformer
147API3 小时前
60,000 星的代价:解析 OpenClaw 的架构设计与安全教训
人工智能·安全·aigc·clawdbot·moltbot·openclaw
audyxiao0013 小时前
智能交通顶刊TITS论文分享|如何利用驾驶感知世界模型实现无信号灯路口自动驾驶?
人工智能·机器学习·自动驾驶·tits
90的程序爱好者3 小时前
Flask 用户注册功能实现
python·flask
lisw053 小时前
氛围炒股概述!
大数据·人工智能·机器学习
hjs_deeplearning3 小时前
文献阅读篇#16:自动驾驶中的视觉语言模型:综述与展望
人工智能·语言模型·自动驾驶
qq_312920114 小时前
一款轻量级 Nginx 访问日志分析与可视化面板,支持实时统计、IP 归属地解析与客户端识别
运维·nginx