PRF:20180726 The evolution of package managers.md

@pityonline
This commit is contained in:
Xingyu.Wang 2018-08-19 09:51:25 +08:00
parent 53e4de040a
commit 93442984cd

View File

@ -248,7 +248,7 @@ YUM、DNF 和 Zypper 三剑客拥有的功能比在这篇小文里讨论的要
#### 基于 Debian 的包管理器 #### 基于 Debian 的包管理器
作为一个现今仍在被积极维护的最古老的 Linux 发行版之一Debian 的包管理系统和基于 RPM 的系统的包管理系统非常类似。它使用扩展名为 “.deb” 的包,这种文件能被一个叫做 `dpkg` 的工具所管理。`dpgk` 同 `rpm` 非常相似它被设计成用来管理在存在于本地硬盘的包。它不会去做包依赖关系解析它会做依赖关系检查不过仅此而已而且在同远程软件仓库交互上也并无可靠的途径。为了提高用户体验并便于使用Debian 项目开始了一个软件项目Deity最终这个代号被丢弃并改成了现在的 <ruby>[高级打包工具][15]<rt>Advanced Pack Tool</rt></ruby>APT 作为一个现今仍在被积极维护的最古老的 Linux 发行版之一Debian 的包管理系统和基于 RPM 的系统的包管理系统非常类似。它使用扩展名为 “.deb” 的包,这种文件能被一个叫做 `dpkg` 的工具所管理。`dpgk` 同 `rpm` 非常相似它被设计成用来管理在存在于本地硬盘的包。它不会去做包依赖关系解析它会做依赖关系检查不过仅此而已而且在同远程软件仓库交互上也并无可靠的途径。为了提高用户体验并便于使用Debian 项目开始了一个软件项目Deity最终这个代号被丢弃并改成了现在的 <ruby>[高级打包工具][15]<rt>Advanced Package Tool</rt></ruby>APT
在 1998 年APT 测试版本发布(甚至早于 1999 年的 Debian 2.1 发布),许多用户认为 APT 是基于 Debian 系统标配功能之一。APT 使用了和 RPM 一样的风格来管理仓库,不过和 YUM 使用单独的 .repo 文件不同APT 曾经使用 `/etc/apt/sources.list` 文件来管理软件仓库,后来的变成也可以使用 `/etc/apt/sources.d` 目录来管理。如同基于 RPM 的系统一样,你也有很多很多选项配置来完成同样的事情。你可以编辑和创建前述的文件,或者使用图形界面来完成上述工作(如 Ubuntu 的“Software & Updates”为了给所有的 Linux 发行版统一的待遇,笔者将会只介绍命令行的选项。 在 1998 年APT 测试版本发布(甚至早于 1999 年的 Debian 2.1 发布),许多用户认为 APT 是基于 Debian 系统标配功能之一。APT 使用了和 RPM 一样的风格来管理仓库,不过和 YUM 使用单独的 .repo 文件不同APT 曾经使用 `/etc/apt/sources.list` 文件来管理软件仓库,后来的变成也可以使用 `/etc/apt/sources.d` 目录来管理。如同基于 RPM 的系统一样,你也有很多很多选项配置来完成同样的事情。你可以编辑和创建前述的文件,或者使用图形界面来完成上述工作(如 Ubuntu 的“Software & Updates”为了给所有的 Linux 发行版统一的待遇,笔者将会只介绍命令行的选项。
要想不直接编辑文件内容而直接增加软件仓库的话,可以用如下命令: 要想不直接编辑文件内容而直接增加软件仓库的话,可以用如下命令:
@ -482,7 +482,7 @@ Total Removed Size:  38.91 MiB
:: Do you want to remove these packages? [Y/n] :: Do you want to remove these packages? [Y/n]
``` ```
在笔者看来Pacman 是搜索一个指定实用程序中的包名的最齐全的工具。如上所示YUM 和 APT 都依赖于‘路径’去搜索到有用的结果,而 Pacman 则做了一些智能的猜测,它会去猜测你最有可能想搜索的包。 在笔者看来Pacman 是搜索一个指定实用程序中的包名的最齐全的工具。如上所示YUM 和 APT 都依赖于“路径”去搜索到有用的结果,而 Pacman 则做了一些智能的猜测,它会去猜测你最有可能想搜索的包。
``` ```
user@arch ~ $ sudo pacman -Fs updatedb user@arch ~ $ sudo pacman -Fs updatedb