
大家好,欢迎来到 huangjin007_ 的博客
⭐ 个人主页:huangjin007_
🔥 文章收录专栏:Linux 内功修炼手册(系统篇)
总会有一些坚持 能从冰封的土地里 培育出十万朵怒放的蔷薇
Linux 系统篇(六) —— 软件安装完全指南
文章目录
- Linux 系统篇(六) —— 软件安装完全指南
-
- 1. 软件包管理器
-
- 1.1 什么是软件包?
- 1.2 Linux 软件生态
- 1.3 包管理器具体操作
-
- 1.3.1 查看软件包(搜索)
* 1.3.2 安装软件
* 1.3.3 卸载软件
- 1.3.1 查看软件包(搜索)
- 1.4 安装源
- 1.1 什么是软件包?
- 2. Linux 软件安装的演进与核心思想
-
- 2.1 三种安装方式
- 2.2 为什么需要包管理器?
- 2.3 权限与系统全局安装
- 2.1 三种安装方式
- 结语:
1. 软件包管理器
1.1 什么是软件包?
如果你准备自己组装一台电脑。这时你需要买来 CPU、主板、内存、硬盘等各种零件,对着说明书一步步安装——这就是 Linux 下源码编译安装软件的原始方式:下载程序的源代码,然后执行配置、编译、安装等步骤,最终得到可执行程序。
这种方式虽然灵活,但对使用者要求很高。
为了让安装软件变得简单,一些热心的社区维护者和大神们,提前把常用的软件编译好,并且按照一定的规范打包成一个“压缩包”,这个压缩包不仅包含编译好的程序文件,还记录了软件的版本、依赖关系、安装路径等信息。这样一个封装好的整体,就叫做软件包(可以类比成 Windows 上的 .exe 安装程序)。
软件包被集中存放在专门的服务器上,供用户下载。而负责管理和操作这些软件包的工具,就是软件包管理器。
我们可以用一个类比来理解二者的关系:
- 软件包 相当于手机上的一个 App
- 软件包管理器 就相当于手机上的 应用商店
通过应用商店,你可以搜索、一键安装、升级和卸载 App,完全不用关心 App 内部的文件结构。同样,有了包管理器,你只需要几条简单的命令,就能自动完成软件的下载、依赖检查和安装。
- yum(Yellow dog Updater, Modified)是Linux下非常常常用的一种包管理器。主要应用在Fedora,RedHat, Centos等发行版上.
- Ubuntu:主要使用apt(Advanced Package Tool)作为其包管理器。apt同样提供了自动解决依赖关系、下载和安装软件包的功能。
1.2 Linux 软件生态
软件从哪里来?
一个软件的诞生路径大致是这样的:
- 开发者 写出源代码并开源(比如在 GitHub 上发布)。
- 操作系统发行版社区(如 CentOS 社区、Ubuntu 社区)的维护者,会挑选稳定版本的源码,根据自己系统的规范编译成二进制的软件包,并放入“软件仓库”。
- 最终用户 使用包管理器,从软件仓库中下载并安装这些编译好的软件包。

一个操作系统的好坏,看什么?
评价 Linux 发行版时,我们通常会关注两点:内核版本 和 社区生态。
- 内核版本决定了系统支持的新硬件和底层技术。
- 社区生态则决定了你能用多少软件、遇到问题能否快速找到答案。丰富的文档、活跃的论坛、海量的软件仓库。这也解释了为什么 Ubuntu 和 CentOS 能成为服务器领域的宠儿——它们背后有庞大的社区和商业支持。
软件包依赖问题
在实际安装中,一个软件往往需要其他软件或库才能运行。这些被需要的软件,就叫做“依赖”。
包管理器最大的价值之一,就是自动解决依赖关系。它会递归检查所有依赖项,一并下载安装,并确保各个软件包的版本兼容,让你一条命令就搞定所有。
国内镜像源
官方软件仓库的服务器大多在国外,在国内直接下载速度很慢。为了解决这个问题,国内许多公司和高校建立了镜像站,它们会定期与官方仓库同步,然后在国内提供高速下载通道。
下面是一些常用且稳定的国内镜像站:
- 阿里云官方镜像站
- 链接:https://developer.aliyun.com/mirror/
- 支持 CentOS、Ubuntu、Debian 等主流发行版,文档齐全,更新快。
- 清华大学开源软件镜像站(TUNA)
- 链接:https://mirrors.tuna.tsinghua.edu.cn/
- 资源极为丰富,除操作系统外还包括 Python、Ruby 等编程语言包,社区活跃。
- 中国科学技术大学开源镜像站(USTC)
- 链接:http://mirrors.ustc.edu.cn/
- 老牌镜像站,网络联通性好,覆盖广泛。
- 中国科学院软件研究所镜像站(ISCAS)
- 链接:http://mirror.iscas.ac.cn/
- 科研机构维护,稳定可靠。
- 上海交通大学开源镜像站
- 链接:https://ftp.sjtu.edu.cn/
- 综合性镜像站,包含软件仓库和安装镜像。
- 网易开源镜像站
- 链接:http://mirrors.163.com/
- 老牌商业镜像站,搜索功能便捷。
在实际使用中,我们可能还需要扩展源(EPEL)。EPEL 是 Extra Packages for Enterprise Linux 的缩写,它为 Red Hat 系列系统提供了大量官方基础源里没有的额外软件包。
1sudo yum install -y epel-release # CentOS 下安装 EPEL 扩展源 2
1.3 包管理器具体操作
下面我们通过实际例子,来掌握最常用的软件管理操作。无论你用的是 CentOS 还是 Ubuntu,思路完全一致,只是命令稍有不同。所有操作都需要确保网络畅通,可以提前用 ping -c3 www.baidu.com 验证。
1.3.1 查看软件包(搜索)
CentOS (yum):
1yum list | grep lrzsz 2
这条命令会列出当前系统中所有可用的软件包,然后用管道 | 交给 grep 进行过滤,只显示包含 “lrzsz” 的行。
Ubuntu (apt):
1apt search lrzsz 2
它会进行全文搜索,列出所有匹配项,并用简介说明功能。如果想查看某个包的详细信息,可以使用:
1apt show lrzsz 2
会输出版本、依赖、维护者、描述等完整信息,帮助你判断是否需要安装。
1.3.2 安装软件
安装软件只需记住一条命令。
CentOS:
1sudo yum install -y lrzsz 2
sudo表示以超级管理员权限执行。-y参数的作用是自动对所有确认提示回答 “yes”。
Ubuntu:
1sudo apt install -y lrzsz 2
注意事项
- 安装软件时需要 root 权限,普通用户必须加
sudo或直接切换到 root 账户。 - 同一时间不能同时运行两个包管理器进程。如果你在一个终端里执行
yum install,还没结束就打开另一个终端再执行yum install,第二个会报错提示锁被占用。apt 同理。
1.3.3 卸载软件
不需要某个软件时,同样用一行命令完成卸载。
CentOS:
1sudo yum remove lrzsz 2
加上 -y 可以跳过确认:
1sudo yum remove -y lrzsz 2
Ubuntu:
1sudo apt remove lrzsz 2
1.4 安装源
包管理器怎么知道该去哪个网址下载软件包?
CentOS 安装源路径
CentOS 的 yum 源配置位于目录 /etc/yum.repos.d/ 下,每个 .repo 文件代表一个仓库。
1$ ls /etc/yum.repos.d/ 2CentOS-Base.repo # 基础源(官方核心软件) 3epel.repo # 扩展源(额外软件,需手动安装epel-release包生成) 4
Ubuntu 安装源路径
Ubuntu 使用 apt 管理软件,主源配置文件为:
1/etc/apt/sources.list 2
此外,也可以在 /etc/apt/sources.list.d/ 目录下添加额外的 .list 文件,作为扩展源。
查看主源文件:
1$ cat /etc/apt/sources.list 2
更新安装源信息
下面以修改yum源为例:
- 备份原始yum源配置文件:

- 下载新的yum源配置文件:

- 清空缓存然后重新生成缓存:
1yum clean all 2yum makecache 3
- 更新系统软件包:
1yum update 2
对于云服务器,通常服务商已经默认将源配置为国内地址(比如阿里云 ECS 内部会自动使用阿里内部源),一般不需要我们手动更换。
2. Linux 软件安装的演进与核心思想
2.1 三种安装方式
- 源码编译安装
最原始的方式,优点是可以自定义编译选项、优化性能;缺点是需要手动解决所有依赖,对新手极不友好。 - 裸软件包安装
将编译好的程序打包成.rpm(Red Hat 系)或.deb(Debian 系)格式。优点是省去了编译过程,但依赖关系仍然需要用户自己处理。假如你下载了一个 rpm 包并执行rpm -ivh package.rpm,很可能会报错“缺少依赖 xxx”,然后你不得不去寻找那个缺失的包,很可能再次遇到新的依赖,陷入死循环。 - 包管理器安装(yum、apt)
自动解决依赖关系,一键式安装,是目前最主流的方式。包管理器背后连接着联网的软件仓库,它能自动计算出所有需要的依赖包,统一下载安装,同时还会检查版本兼容性,避免冲突。
2.2 为什么需要包管理器?
手动安装的痛点可总结为两个词:依赖缺失 和 版本冲突。包管理器完美地解决了这两个问题。此外,它还能:
- 统一管理已安装的软件,方便升级和卸载
- 验证软件包的来源和完整性,安全可靠
- 批量操作,自动化运维的基础
2.3 权限与系统全局安装
在 Linux 下,软件通常安装到诸如 /usr/bin、/usr/lib 等系统核心目录下。这些目录只有 root 超级管理员才有写权限。因此,执行 install 或 remove 等操作时,必须加上 sudo 或切换至 root 用户。
结语:
今天的内容到这里就结束了,希望你能有所收获~
干货整理到手抖,觉得有用的话,赏个三连回回血?__(:ᗤ」ㄥ)_ _

