【Linux系统编程】软件包管理器
【Linux系统编程】软件包管理器
- 1. 什么是软件包
- 2. Linux软件生态
- 3. yum和apt具体详解
- 3.1 查看软件包
- 3.2 安装软件
- 3.3 卸载软件
- 4. 安装一些好玩的命令
- 5. 安装源(软件源)配置
1. 什么是软件包
在 Linux 的早期,安装软件通常意味着需要手动下载程序的源代码,并进行配置、编译和安装。这个过程繁琐且容易出错,尤其对新手来说门槛很高。
为了解决这个问题,软件包 的概念应运而生。发行版的维护者或软件开发者会将软件提前编译好,并与其元信息(如版本、描述、依赖关系等)一起打包成一个文件。这类似于 Windows 系统中的 .exe安装程序或 macOS 中的 .dmg文件。
软件包管理器 就是用于操作这些软件包的工具。它的核心职责包括:
- 安装:从指定的服务器获取软件包并安装到系统中。
- 卸载:清理已安装软件包的文件。
- 更新:将已安装的软件升级到最新版本。
- 解决依赖关系:自动处理软件运行所必需的其他库或软件,这是包管理器最核心的功能之一。
软件包和软件包管理器的关系,可以通俗地理解为智能手机上的 “App” 和 “应用商店” 的关系。
主流的 Linux 发行版使用不同的包管理器:
- CentOS / Red Hat / Fedora 等系列主要使用 yum(Yellow dog Updater, Modified)。在新版本中,dnf是其下一代替代工具,但命令用法与 yum基本一致。
- Ubuntu / Debian 等系列主要使用 apt(Advanced Package Tool)。
2. Linux软件生态
Linux 的软件获取流程可以概括为下面4个过程:
1.用户 向本地的包管理器(如 yum或 apt)发出指令(例如,安装一个软件)。
2.包管理器 根据系统中配置的软件源(即软件包服务器)地址,向服务器发送请求。
3.软件包服务器 上存储着大量编译好的软件包。服务器响应请求,将所需的软件包及其依赖包一并返回。
4.包管理器 在本地下载并完成安装和配置。
这个生态系统的健康运行,离不开强大的社区支持,包括官方文档、论坛、邮件列表等,它们共同确保了软件源的丰富性和可靠性。
3. yum和apt具体详解
以下操作示例将同时对比 CentOS(使用 yum)和 Ubuntu(使用 apt)两种系统。
3.1 查看软件包
在安装软件之前,我们通常需要先确认软件仓库中是否有我们需要的软件包。
# Centos
# 列出所有可用的软件包,并用 grep 进行过滤
sudo yum list | grep lrzsz
结果:

# Ubuntu
# 在软件仓库中搜索软件包
sudo apt search lrzsz
sudo apt list | grep lrzsz
3.2 安装软件
确认软件包存在后,即可进行安装。包管理器会自动解决依赖问题。
# Centos
sudo yum install -y lrzsz
# Ubuntu
sudo apt install -y lrzsz
参数 -y表示在确认提示时自动选择 “yes”,使安装过程无需中断。
出现"complete"字样或者中间未出现报错,说明安装完成。
注意事项:
- 权限要求:安装软件需要向系统目录写入文件,因此必须使用 sudo或切换到 root用户。
- 独占性:yum或 apt在安装一个软件的过程中,无法同时安装另一个软件,必须等待当前操作完成。 - 错误处理:如果安装过程报错(如网络问题、依赖冲突),请仔细阅读错误信息,并善用搜索引擎(如百度)查找解决方案。
3.3 卸载软件
# Centos
sudo yum remove -y lrzsz
# Ubuntu
sudo apt remove-y lrzsz
注意事项:
所有 yum或 apt操作的前提是主机(虚拟机)网络畅通!
操作前,可以通过以下命令验证网络连接:
ping www.baidu.con

虽然也存在离线安装的方式,但日常使用中均依赖于网络从软件源服务器获取数据。
4. 安装一些好玩的命令
火车动画
# Centos
sudo yum install sl
# Ubuntu
sudo apt-get install sl

这样好玩的命令还有很多,想玩的话可以看https://blog.csdn.net/xiaoxiaosutang/article/details/141053674
5. 安装源(软件源)配置
软件源服务器列表的配置文件存放在系统的特定目录下。
# Centos
# 软件源配置文件位于 /etc/yum.repos.d/目录下,通常以 .repo结尾。
ls /etc/yum.repos.d/
常见的文件包括:
- CentOS-Base.repo:官方标准源,提供了系统核心软件。
- epel.repo:扩展源(Extra Packages for Enterprise Linux),提供了大量额外软件。可以通过以下命令安装:
sudo yum install -y epel-release

# Ubuntu
# 软件源列表文件是 /etc/apt/sources.list
# 额外的源配置在 /etc/apt/sources.list.d/目录下。
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/
更新软件源:当软件源地址发生变化或需要获取最新的软件列表时,需要更新本地缓存。
# Centos
sudo yum makecache
# Ubuntu
sudo apt update
对于国内的云服务器或虚拟机,建议配置国内的镜像源(如清华源、阿里云源)以显著提升下载速度。
