Linux软件包管理器详解 —— yum与apt的使用及软件生态

前言

在Linux系统中安装软件,最常见的方式并不是去官网下载源码包然后手动编译,而是通过软件包管理器 来一键安装。这就像在手机上的应用商店下载App一样方便。本文将详细介绍Linux下的两大主流包管理器------CentOS/RHEL系列的yum 和Ubuntu系列的apt,带你掌握软件安装、卸载、更新以及配置国内镜像源的方法,并深入理解Linux软件生态。

一、什么是软件包管理器?

软件包管理器是一种自动处理软件安装、升级、配置和卸载的工具。它将预先编译好的可执行程序、配置文件、依赖关系等信息打包成一个"软件包",存放在远程服务器(称为软件源或镜像站)上。用户只需一条命令,包管理器就会自动下载并安装所需软件。

  • yum(Yellowdog Updater, Modified):主要用在Fedora、RedHat、CentOS等发行版。

  • apt(Advanced Package Tool):主要用在Debian、Ubuntu等发行版。

无论是yum还是apt,都具备自动解决依赖关系的能力。例如,当你安装A软件时,如果它依赖B库,包管理器会自动先安装B,再安装A。

二、Linux软件生态与镜像源

一个操作系统的好坏,很大程度上取决于它的软件生态。Linux之所以强大,是因为全球有无数开发者免费为社区贡献软件,并提供镜像服务供大家下载。在国内,由于访问国外官方源速度较慢,我们通常会切换到国内镜像源。

常见国内镜像源:

更换镜像源后,需要更新缓存:

  • CentOS:sudo yum makecache

  • Ubuntu:sudo apt update

三、yum的基本操作(CentOS/RHEL)

1. 查看软件包
复制代码
yum list | grep 软件名

例如,查看串口传输工具lrzsz:

复制代码
yum list | grep lrzsz

输出示例:

复制代码
lrzsz.x86_64   0.12.20-36.el7   @base

其中x86_64表示64位架构,el7表示CentOS7,@base表示来自标准源。

2. 安装软件
复制代码
sudo yum install -y 软件名

-y选项表示自动确认,否则会提示是否安装。例如安装gcc编译器:

复制代码
sudo yum install -y gcc
3. 卸载软件
复制代码
sudo yum remove -y 软件名
4. 更新软件源和系统
复制代码
sudo yum clean all           # 清理缓存
sudo yum makecache           # 生成新缓存
sudo yum update              # 升级所有软件包

四、apt的基本操作(Ubuntu/Debian)

1. 搜索软件包
复制代码
apt search 软件名

例如搜索lrzsz:

复制代码
apt search lrzsz
2. 查看软件包详细信息
复制代码
apt show 软件名
3. 安装软件
复制代码
sudo apt install -y 软件名
4. 卸载软件
复制代码
sudo apt remove -y 软件名
5. 更新源列表并升级系统
复制代码
sudo apt update              # 更新软件源索引
sudo apt upgrade             # 升级已安装的软件
sudo apt full-upgrade        # 全面升级(包含内核)

五、配置国内镜像源(以CentOS7为例)

  1. 备份原有源:
复制代码
sudo mkdir /etc/yum.repos.d/backup
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
  1. 下载阿里云源:
复制代码
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  1. 生成缓存并更新:
复制代码
sudo yum clean all && sudo yum makecache

六、注意事项

  • 所有yum/apt操作必须保证网络畅通,可用ping www.baidu.com测试。

  • 安装软件一般需要sudo或root权限。

  • 一次只能安装一个软件,若另一个yum进程正在运行,会报错。

  • 云服务器通常已配置好国内源,无需手动修改。

七、总结

软件包管理器是Linux入门的第一关。掌握yum/apt的基本命令,能够让你快速搭建开发环境,省去手动编译的麻烦。理解软件源的概念,并学会切换国内镜像,可以显著提高下载速度。下一篇文章我们将进入编辑器Vim的世界,它是Linux下编程的必备工具。

相关推荐
数字化顾问33 分钟前
(138页PPT)流程体系的建设优化与运营(附下载方式)
大数据·运维·人工智能
2601_967287571 小时前
轮胎侧壁上的 91V 是什么意思,负荷指数与速度级别怎么看
运维·服务器·汽车
Ivanqhz1 小时前
正余弦位置编码(Sinusoidal Positional Encoding)
java·linux·数据库
H.莓飛1 小时前
【数据结构】队列
linux·数据结构·centos
Ivanqhz2 小时前
层归一化、残差、前馈网络与激活函数简述
服务器·数据库·人工智能·深度学习·算法
小此方2 小时前
Linux网络(十九):TCP流量控制与滑动窗口详解,超时重传和快重传到底有什么区别
linux·运维·服务器·网络·网络协议·tcp/ip
海宇服务2 小时前
零信任架构实战:基于海宇运营商近3个月欠费次数构建自动化履约能力评估管线
运维·人工智能·架构·自动化
码上有光2 小时前
Linux进程通信——共享内存、消息队列和信号量
android·linux·运维·共享内存·通信
沫璃染墨2 小时前
《从零入门Linux系统篇(五十四):线程篇·七——互斥锁底层原理:从原子交换到线程竞争与锁实现》
linux·运维·服务器·开发语言·c++·驱动开发·系统架构
志栋智能2 小时前
超自动化巡检中的异常检测与根因分析
运维·自动化