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

相关推荐
kaoa00018 分钟前
Linux入门攻坚——84、网络虚拟化技术-1
linux·运维·服务器
RisunJan26 分钟前
Linux命令-shutdown(安全关闭或重启系统)
linux·服务器·安全
2601_965798471 小时前
MTDb Movie & TV Database Script Setup, Caching, and SEO Guide
linux·服务器·数据库·php
我头发多我先学1 小时前
linux系统编程:初识进程
linux·运维·服务器
Freak嵌入式2 小时前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
云飞云共享云桌面2 小时前
SolidWorks—天津智能装备工厂1台高配主机共享给10个研发用
运维·服务器·自动化·汽车·制造
苍狗T2 小时前
LVS相关知识总结
linux·运维·服务器·lvs
lightqjx3 小时前
【Linux系统】基础 IO
linux·c语言·重定向·缓冲区·文件io·文件的系统调用
我星期八休息3 小时前
扩展— TCP 全连接队列与 tcpdump 抓包
linux·服务器·开发语言·前端·网络·tcp/ip·tcpdump
各类产品分享3 小时前
什么是AR智慧运维系统,主要能解决什么问题
运维·ar·ar智慧运维解决方案