目录
Linux软件包管理器——yum详解
引言
一、什么是软件包
二、yum是什么
三、yum的基本操作
3.1 查看软件包
3.2 安装软件
3.3 卸载软件
3.4 其他常用命令
四、yum源与国内镜像
4.1 什么是yum源
4.2 国内常用镜像源
4.3 更换yum源(以阿里云为例)
4.4 扩展源(EPEL)
五、注意事项
六、总结
Linux软件包管理器——yum详解
引言
在Linux系统中安装软件,一个最原始的办法是下载程序的源代码,手动进行编译,最终得到可执行程序。但这种方式显然太麻烦了——不仅要处理复杂的编译选项,还要解决各种依赖关系。于是,社区中的开发者们把一些常用的软件提前编译好,做成软件包(可以理解成Windows上的安装程序),放在服务器上,用户通过包管理器就可以很方便地获取并安装这些软件包。
软件包和包管理器的关系,就好比手机上的“App”和“应用商店”
一、什么是软件包
在Linux中,软件包就是提前编译好的、可直接安装的程序文件。每个软件包包含了可执行程序、配置文件、文档等。而软件包管理器则是一个工具,它负责从指定的服务器(即软件源)下载、安装、更新和卸载软件包。
不同的Linux发行版使用不同的包管理器:
| 发行版 | 包管理器 |
|---|---|
| CentOS / RHEL / Fedora | yum(Yellow dog Updater, Modified) |
| Ubuntu / Debian | apt(Advanced Package Tool) |
yum主要应用在Fedora、RedHat、CentOS等发行版上,而Ubuntu则主要使用apt
二、yum是什么
yum(Yellow dog Updater, Modified)是一个基于RPM包管理的Shell前端软件包管理器。它的核心能力包括:
从指定的服务器自动下载RPM包并安装
自动处理依赖关系,一次安装所有依赖的软件包
提供查找、安装、删除软件包的命令,简洁易记
简单来说,yum帮助我们解决了三个核心问题:
去哪找软件(通过yum源)
怎么装软件(一条命令搞定)
依赖怎么办(yum自动处理)
三、yum的基本操作
3.1 查看软件包
通过yum list命令可以列出当前所有可用的软件包。由于包的数量非常多,通常配合grep进行筛选:
# CentOS $ yum list | grep lrzsz lrzsz.x86_64 0.12.20-36.el7 @base软件包命名规范解读:
x86_64:64位系统的安装包;i686为32位el7:适用于CentOS 7 / RedHat 7;el6适用于CentOS 6最后一列(如
@base)表示软件源的名称
3.2 安装软件
通过yum安装软件只需一条命令:
# CentOS $ sudo yum install -y lrzsz # Ubuntu $ sudo apt install -y lrzsz其中-y选项表示自动确认所有提示,无需手动输入“y”。安装完成后,出现complete字样即表示安装成功
3.3 卸载软件
卸载同样非常简单:
# CentOS $ sudo yum remove -y lrzsz # Ubuntu $ sudo apt remove -y lrzsz3.4 其他常用命令
| 命令 | 作用 |
|---|---|
yum update | 更新所有已安装的软件包 |
yum search <keyword> | 搜索匹配关键字的软件包 |
yum info <package> | 显示软件包的详细信息 |
yum clean all | 清理缓存 |
yum repolist | 列出当前启用的软件仓库 |
四、yum源与国内镜像
4.1 什么是yum源
yum源是一个配置文件,它告诉yum应该从哪里下载软件包。在CentOS系统中,yum源的配置文件位于:
$ ls /etc/yum.repos.d/ CentOS-Base.repo # 标准源 epel.repo # 扩展源4.2 国内常用镜像源
由于官方源服务器可能在国外,访问速度较慢,我们可以配置国内的镜像源来加速下载。以下是一些常用的国内镜像源:
阿里云镜像站:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
清华大学开源软件镜像站:清华大学开源软件镜像站 | Tsinghua Open Source Mirror
中国科学技术大学镜像站:USTC Open Source Software Mirror
网易开源镜像站:欢迎访问网易开源镜像站
上海交通大学开源镜像站:Index of /
4.3 更换yum源(以阿里云为例)
# 1. 备份原有源 $ sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 2. 下载阿里云源 $ sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 3. 清理并生成缓存 $ sudo yum clean all $ sudo yum makecache4.4 扩展源(EPEL)
EPEL(Extra Packages for Enterprise Linux)是一个由Fedora社区维护的扩展软件源,提供了大量官方源中没有的软件包
$ sudo yum install -y epel-release五、注意事项
需要root权限:安装和卸载软件需要向系统目录写入内容,需要使用
sudo或切换到root账户。网络畅通:yum的所有操作都需要联网,可以通过
ping www.baidu.com验证网络是否正常。一次只能安装一个:yum安装一个软件的过程中,不能再同时用yum安装另一个软件,否则会报错。
包名要匹配系统:选择软件包时要注意架构(x86_64 / i686)和发行版版本(el7 / el6)是否匹配
六、总结
yum作为Linux下最常用的包管理器之一,极大地简化了软件安装、更新和卸载的流程。它的核心优势在于:
自动化:一条命令完成安装,无需手动编译
依赖管理:自动处理复杂的依赖关系
丰富的软件源:配合国内镜像,下载速度有保障
掌握yum的使用,是每个Linux初学者必备的基础技能。从yum list到yum install,再到yum remove,这三板斧足以应对日常开发中的大部分软件管理需求