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

本文是 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 包)安装软件流程

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

相关命令:

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

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

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

常用命令:

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

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

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

对比总结表

表格

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

字段解读

  1. lrzsz:软件包名
  2. jammy:Ubuntu 22.04 的版本代号
  3. 0.12.21-10:软件版本
  4. amd64:64 位架构(等同于 x86_64)
  5. [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 权限
  • 执行过程:
  1. apt 查询本地索引,找到 lrzsz
  2. 自动分析所有依赖包
  3. 列出将要安装的包,询问你 Y/n,输入y回车确认
  4. 从软件源下载 deb 包
  5. 自动完成安装

常用附加参数

复制代码
# -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 最大

常见结果含义

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

考点易错点

  1. ping 使用 ICMP 协议,不是 TCP/UDP
  2. Linux ping 默认无限发包,必须加 -c 指定次数,或者 Ctrl+C 停止
  3. 能 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 的同学可以无缝迁移。
易错考点:

  1. apt update ≠ 升级软件;apt upgrade 才是升级本机已装全部软件

    sudo apt upgrade # 更新系统所有已安装软件

  2. 必须加 sudo,普通用户无权安装软件

相关推荐
云计算练习生1 小时前
什么是操作系统安全?身份认证、访问控制与审计机
服务器·网络·安全·访问控制·操作系统安全
mi20061 小时前
不合规MAC地址导致通信故障
运维
sbjdhjd1 小时前
云安全 | 从特权容器到旧版 runC:Docker 宿主机访问与运行时缺陷复盘
运维·网络安全·docker·云原生·kubernetes·云计算·云安全
对空六课1 小时前
Vue 组件曝光埋点为什么会重复触发?去重方案与实现思路
服务器·前端·算法·数据分析
xiaoqiMikko2 小时前
Linux 实战(三):服务起不来、定时任务不执行 —— CentOS 7 / Rocky 9 / Ubuntu 24.04 实测差异
linux·centos
Hello_Pyhx2 小时前
Ventoy:Linux制盘与排障
linux·运维·服务器
pt10432 小时前
从阿波罗13号到命令行的网络实验转向
运维·网络
Jason_zhao_MR2 小时前
电力数据采集核心板选型指南
linux·嵌入式硬件·fpga开发·嵌入式
见闻小天地2 小时前
空调机房赛莱默B&G冷冻泵/冷却泵的核心技术特性分析
大数据·运维·数据库