我默认在软件中心激活了所有存储库(主存储库、Universe 存储库、Multiverse 存储库、受限存储库)。如果我进行更改(例如,取消选中 Multiverse 存储库的复选框),我将无法再使用软件中心从此存储库安装软件。
是否可以使用“apt-get”从多元宇宙安装软件?
答案1
不,这是不可能的。apt-get
与 中定义的存储库一起工作sources.list
,就像软件中心一样。
您会在 Linux 的许多地方发现这种“分层”系统。为了说明这一点,让我们看看应用程序是如何“低级”安装的。要安装应用程序,需要将几个(大多数情况下是很多)应用程序复制到几个(或很多)不同的目录中。可执行文件需要转到一个目录,一些库需要转到另一个目录,一些手册(手册页)需要转到另一个目录,一些图标需要转到另一个目录,等等。当您想要卸载该应用程序之后,您必须“整理”所有不同位置的所有文件。
为了简化这一过程,我们可以使用包管理器dpkg
。deb 包(之所以这样命名,是因为它最初是为 Debian 开发的,而 Ubuntu 正是基于 Debian)或多或少是一个包含文件的存档,其中包含这些文件应存放在何处的信息。当您安装包时,文件会被复制到适当的位置;当您卸载包时,文件会被删除。为此,可以tar
使用“常用”的低级工具,例如。这说明了这一概念:dpkg
使用已有内容来简化任务。
此外,包装大多有依赖项。包可以说,“如果你想安装我,你也需要安装这个包,因为它包含我需要的文件”。或者,“如果你想安装我,你不能安装这个其他包,因为我们的文件会发生冲突”。同样,在“将一些文件复制到正确的目录”之上还有一个额外的层,即用途已经存在的东西。
下一个问题是,我在哪里可以得到这些软件包?这就是下一层的作用,即 apt 工具(apt-get
,apt-cache
等等)。使用 apt,您可以管理软件包源,即所谓的存储库,它可以自动获取软件包。存储库可以位于网络上的某个服务器上、CD 或 DVD 上、本地硬盘上等等。哪些存储库可用在 中定义sources.list
。从这些存储库中,apt 工具构建一个缓存,它本质上是存储库中可用的软件包的列表。
因此,如果您使用 安装包apt-get
,则会从相应的存储库中获取该包并交给dpkg
。dpkg
,反过来,使用 之类的工具按照上述说明安装该包tar
。
在下一层,有 Synaptic 或软件中心等 GUI 工具。它们提供了使用图形界面而不是“仅”在命令行上管理软件包的可能性。“后台”的 GUI 工具将工作交给 apt 工具,后者(如所述)使用dpkg
,后者使用 等工具tar
。因此,apt-get
不可能知道软件中心不知道的任何存储库。事实上,情况恰恰相反:软件中心在 apt 的缓存“之上”工作,因此它只能知道 中定义的存储库sources.list
。
当然,上面的描述可能只是一个大纲,省略了各个层的许多细节和附加功能。例如,有一个sources.list.d
目录,可以在其中定义附加存储库。当然,它们适用于 apt 工具以及软件中心等 GUI 工具。另一个例子是,软件中心不仅提供使用图形界面管理软件包的功能,还提供出售和购买软件包的可能性。