欢迎光临
我们一直在努力

【Linux】基础开发工具---软件包管理器

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}

本文是 Linux 软件包管理器与 ping 命令的学习笔记,主要涵盖 yum / apt 两大包管理器的核心概念、安装流程、常用命令,以及 ping 网络诊断工具的使用方法。内容面向 Linux 初学者和备考者,帮助快速掌握软件安装与网络连通性排查的常见操作与易错点。

1. 软件包管理器

1-1 什么是软件包

  • 在 Linux 下安装软件,原始方式:下载源代码 → 手动编译 → 生成可执行程序。
  • 缺点:编译麻烦,需要处理大量依赖库,不同机器编译环境不一样,容易编译失败。
  • 软件包:开发者提前把源码编译好,打包成一个文件(类似 Windows 的 exe 安装包),里面包含可执行程序、配置文件、手册、依赖信息。
  • 软件包管理器:用来检索、下载、安装、卸载、升级软件包,自动处理依赖关系。

类比:软件包 = App;包管理器 = 手机应用商店。

两大主流:

  • yum:RedHat / CentOS / Fedora(RPM 包格式 .rpm)
  • apt:Ubuntu / Debian(DEB 包格式 .deb)

1-2 Linux 软件生态 & 下载软件完整流程

核心概念

Linux 的软件存放在软件源(仓库 /repo),就是互联网上的服务器集群,存放大量预编译软件包。包管理器就是从软件源拉取软件。

CentOS(yum,rpm 包)安装软件流程

  • yum 读取本机的源配置文件(/etc/yum.repos.d/),知道软件仓库地址
  • yum install xxx
  • yum 去远程仓库查询:软件包是否存在、需要哪些依赖包
  • 自动下载软件包 + 所有缺失依赖包(.rpm)
  • 自动安装,注册软件信息到本地 rpm 数据库
  • 完成,可直接执行命令使用
  • 相关命令:

    yum list | grep xxx # 查询软件
    yum install xxx # 安装
    yum remove xxx # 卸载
    yum update xxx # 更新

    Ubuntu(apt,deb 包)安装软件流程

  • apt 读取源配置 /etc/apt/sources.list
  • apt update:更新本地软件包索引清单(只更新清单,不安装软件)
  • apt install xxx
  • apt 解析依赖,从源下载 .deb 包
  • 自动安装所有依赖,写入本地 dpkg 数据库
  • 使用软件
  • 常用命令:

    apt update # 更新软件源索引
    apt search xxx # 搜索软件
    apt install xxx # 安装
    apt remove xxx # 卸载(保留配置)
    apt purge xxx # 彻底卸载(删除配置)

    其他方式(通用,所有 Linux 发行版都能用)

  • 源码编译安装 下载源码压缩包 → 解压 → ./configure 检测环境 → make 编译 → make install 安装 缺点:不会自动管理依赖,卸载麻烦,包管理器看不到这个软件。
  • 二进制包 直接下载已经编译好的可执行文件,解压就能运行(如 Golang 程序、jdk),不需要安装。
  • 跨发行版通用包:snap / flatpak / appimage 软件自带所有依赖,一次打包,任意 Linux 都能跑,体积偏大。
  • 对比总结表

    表格

    发行版包管理器软件包格式源配置文件位置
    CentOS/RHEL/Fedora yum/dnf .rpm /etc/yum.repos.d/
    Ubuntu/Debian apt .deb /etc/apt/sources.list

    字段解读

  • lrzsz:软件包名
  • jammy:Ubuntu 22.04 的版本代号
  • 0.12.21-10:软件版本
  • amd64:64 位架构(等同于 x86_64)
  • [installed]:本机已经安装好了 lrzsz
  • 警告说明:apt list 这个命令提示apt does not have a stable CLI interface,意思是:apt list 的命令行接口不保证稳定,写 shell 脚本的时候不推荐用 apt list,日常手动敲命令查看没问题。

    ch lrzsz # 查看已经安装的包 apt list –installed | grep lrzsz

    1-3 Ubuntu 安装软件(apt)

    注意:Ubuntu/Debian 系列用 apt,不要用 yum;yum 是 CentOS 红帽系的。

    前置:更新软件源索引(重要)

    sudo apt update

    • 作用:去远程软件仓库,更新本地软件包清单(只下载清单,不会安装任何软件)
    • 为什么要执行:仓库里软件版本会更新,本地索引如果不刷新,可能搜到旧版本或者找不到包
    • 每次安装新软件前,推荐先执行一次

    安装软件命令

    sudo apt install 软件名

    示例:安装 lrzsz

    sudo apt install lrzsz

    • sudo:提升管理员权限,安装软件必须 root 权限
    • 执行过程:
  • apt 查询本地索引,找到 lrzsz
  • 自动分析所有依赖包
  • 列出将要安装的包,询问你 Y/n,输入y回车确认
  • 从软件源下载 deb 包
  • 自动完成安装
  • 常用附加参数

    # -y 自动确认,不需要手动输入y
    sudo apt install -y lrzsz

    查看是否安装成功(验证)

    apt list | grep lrzsz
    # 或者
    dpkg -l | grep lrzsz

    出现 [installed] 代表安装完成。

    注意事项

    ping 命令笔记

    作用

    ping 用来测试网络连通性,向目标主机发送 ICMP 请求包,等待对方回复,判断能不能通、延迟多大。

    原理:基于 ICMP 协议(网络层协议)

    基础语法

    ping [选项] 目标IP/域名

    示例

    ping www.baidu.com
    ping 8.8.8.8
    ping 192.168.1.1

    ⚠️ Ubuntu / Linux 默认不会自动停止,会一直发包,按 Ctrl + C 终止 Windows 的 ping 默认只发 4 个包自动结束,这是很大的区别!

    常用参数

    # -c count:指定发送数据包个数(重点!Linux必用)
    ping -c 4 www.baidu.com # 发送4个包,自动结束,不用Ctrl+C
    -i interval:包之间间隔时间(单位秒,不能小于0.2,root才可以设更小)
    ping -c 3 -i 0.5 www.baidu.com
    -W 超时时间:等待回复的超时时间
    ping -c2 -W2 www.baidu.com

    输出结果解读

    64 bytes from 180.101.49.11: icmp_seq=1 ttl=53 time=28.1 ms

    • 64 bytes:收到的数据包大小
    • icmp_seq:包序号,用来判断丢包(序号跳了就是丢包)
    • ttl:生存时间,数据包每经过一个路由器 TTL-1,TTL 耗尽包就丢弃
    • time=28.1ms:往返延迟,数值越小网络越快

    结束汇总信息(Ctrl+C 之后)

    — www.baidu.com ping statistics —
    4 packets transmitted, 4 received, 0% packet loss, time 3005ms
    rtt min/avg/max/mdev = 27.892/28.754/30.201/0.868 ms

    • 4 transmitted,4 received:发 4 包,收到 4 包
    • 0% packet loss:丢包率
    • rtt:往返时间 min 最小 /avg 平均 /max 最大

    常见结果含义

  • 能收到回复:网络连通
  • Request timeout / 没有回复:不通。可能:防火墙禁 ICMP、目标机器关机、路由不可达
  • unknown host:域名解析失败(DNS 问题,不是 ping 不通 IP)
  • 考点易错点

  • ping 使用 ICMP 协议,不是 TCP/UDP
  • Linux ping 默认无限发包,必须加 -c 指定次数,或者 Ctrl+C 停止
  • 能 ping 通 ≠ 端口能访问!ping 只测 ICMP,不能检测端口(80/22)。比如服务器防火墙放通 ICMP,但关闭 22 端口,ping 通但是 ssh 连不上。
  • 配套对比

    表格

    系统ping 默认行为
    Linux(Ubuntu/CentOS) 持续发包,手动 Ctrl+C 终止
    Windows cmd 默认发送 4 个包,自动停止

    卸载软件(配套知识点)

    # remove:删除程序,保留配置文件
    sudo apt remove lrzsz
    purge:彻底删除,程序+配置文件全部删掉
    sudo apt purge lrzsz

    清理缓存(拓展)

    apt 下载的 deb 安装包会缓存到本地,占用磁盘,可以清理:

    sudo apt autoremove # 删除不再需要的依赖包
    sudo apt clean # 清空所有下载的软件包缓存

    对比记忆(考试笔记)

    表格

    对比维度Ubuntu / Debian(apt)CentOS / RHEL(yum)Fedora / RHEL 8+(dnf)
    软件包格式 .deb .rpm .rpm
    源配置文件位置 /etc/apt/sources.list /etc/yum.repos.d/ /etc/yum.repos.d/
    更新索引命令 sudo apt update 不需要单独 update 索引(yum install 自动拉) 不需要单独 update 索引(dnf 自动拉取元数据)
    安装命令 sudo apt install xxx sudo yum install xxx sudo dnf install xxx
    卸载命令 sudo apt remove xxx(保留配置)
    sudo apt purge xxx(彻底删除)
    sudo yum remove xxx sudo dnf remove xxx
    清理缓存命令 sudo apt clean
    sudo apt autoremove
    sudo yum clean all sudo dnf clean all

    dnf 说明:dnf 是 yum 的现代替代品,从 RHEL 8 / Fedora 22 起成为默认包管理器。dnf 底层仍使用 RPM 包格式和 /etc/yum.repos.d/ 源配置,但相比 yum 拥有更快的依赖解析速度、更清晰的内存占用和更友好的输出信息。日常使用中,dnf install / remove / update 等命令与 yum 基本一一对应,习惯 yum 的同学可以无缝迁移。

    易错考点:

  • apt update ≠ 升级软件;apt upgrade 才是升级本机已装全部软件
  • sudo apt upgrade # 更新系统所有已安装软件

  • 必须加 sudo,普通用户无权安装软件
  • 赞(0)
    未经允许不得转载:171主机测评 » 【Linux】基础开发工具---软件包管理器
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址