在 Linux 系统上安装软件,一般可以通过系统的包管理工具(Package Manager)。之前我们在开发 Node.js 应用的时候,经常会用到 Node.js 的包管理工具(npm),为项目安装一些包。在这里我们说的包管理工具是为操作系统准备的,在不同类型的 Linux 操作系统里面,这个包管理工具可能会不太一样。
我们的云服务器的操作系统是 CentOS 8,在这种操作系统上,有两个可用的包管理工具,一个是 yum,还有一个是 dnf。这个 dnf 以后可能会替代 yum,因为 yum 一直存在一些解决不了的问题。所以就又弄出来一个 dnf,准备替换掉之前的 yum。
用包管理工具管理操作系统上的软件包非常简单,只需要一行命令,就可以把软件安装在系统上,安装的时候包管理工具会帮我们搞定软件包之间的依赖关系。就是如果你要安装的软件包,需要另外一些软件包提供的功能,这些软件包如果在系统上还不存在,包管理工具就会自动下载安装这些被依赖的软件包。
能用包管理工具安装哪些软件包,这取决于系统里的软件仓库。英文可以用 repo 表示,之前我们给应用做源代码管理的时候,也出现过 repo 这个词,全名是 repository。我们可以把它理解成是某种 “仓库”。在 Linux 操作系统里提到的 repo,指的就是软件仓库,用包管理工具安装软件包的时候,会查询系统里的这些软件仓库,这样包管理工具才知道怎么下载安装需要的软件包。在系统里自带了一些软件仓库,我们也可以额外再安装一些软件仓库。