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下编程的必备工具。

相关推荐
梦想的颜色21 小时前
【Docker原理】Docker 容器一文打尽:生命周期、环境管控、迁移备份、日志进程排查、垃圾清理
运维·docker·容器·容器生命周期·容器日志排查·容器迁移备份·容器进程管理
欢呼的太阳1 天前
数据库设计Step by Step (10)——范式化
服务器·数据库·oracle
夜雪一千1 天前
Python enumerate() 函数完整详解:遍历同时获取索引,告别手动计数
服务器·windows·python
donoot1 天前
Linux系统下图书馆级电子书全自动标准化分类整理完整实施方案
大数据·linux·运维·电子书管理
ITKEY_1 天前
macOS brew 安装的nginx 文件在哪里?
运维·nginx·macos
Felix-lxd1 天前
Ubuntu 22.04 配置 Nginx
linux·nginx·ubuntu
Elastic 中国社区官方博客1 天前
如何比较两个 Elasticsearch 索引并找出缺失的文档
大数据·运维·数据库·elasticsearch·搜索引擎
大E帝国子民11 天前
MacOS 安装Seismic Unix
服务器·macos·unix
Tim_Van1 天前
在 CentOS 7 中安装 Chromium 的完整步骤
linux·运维·chrome·centos
德福危险1 天前
富有想象力的XSS盲打:靶机练习之Tempus_fugit5
服务器·网络·xss