更新如何与从.deb文件安装的程序一起使用

我在准确理解整个更新工作如何在Ubuntu中工作以及安装软件的良好实践方面遇到了一些困难。

我知道我有一个/etc/apt/sources.list文件,其中列出了我的所有存储库,并且当我使用apt-get update时查询这些存储库 – 以后用于例如
apt-get upgrade 。 这很有道理,我最近添加了spotify
deb http://repository.spotify.com stable non-free到这个“来源”列表。

但后来我感到困惑……

当我去下载谷歌浏览器时,我只需要下载并获取.deb文件,并且Chrome安装没有问题……但我在/etc/apt/sources.list中看不到任何新条目…

那么apt-get update如何知道有关Chrome更新的查询位置? 它是否以某种方式被添加到源文件中已列出的存储库之一?

我希望所有已安装的软件都包含在更新function中。

这确实有点复杂。 首先, aptdkpg 的前端 ,它实际上处理安装/删除包。 因此,/ /etc/apt/sources.list / apt /etc/apt/sources.list (以及/etc/apt/sources.list所有文件)都是由apt读取的,而不是dpkg

现在,当您手动下载.deb文件时,您将绕过apt并将使用dpkg -i packagename.deb来安装它。 这意味着apt的数据库不会被更新,并且apt系统将不知道您安装的软件包。 换句话说, apt-get upgrade永远不会更新任何手动安装的软件包。

话虽如此, chrome实际上是一个例外。 当您转到其下载页面时,您将看到以下消息:

在此处输入图像描述

这个注释的底部是:

注意:安装Google Chrome会添加Google存储库,以便您的系统自动更新Google Chrome。 如果您不想要Google的存储库,请在安装软件包之前执行“sudo touch / etc / default / google-chrome”。

这意味着.deb包中包含一个脚本,可以将Google的存储库添加到您的系统中(具体来说,它将在/etc/apt/sources.list.d/创建一个文件),从而确保在使用apt-get时更新chrome apt-get

apt搜索/etc/apt/sources.list列出的源以及/etc/apt/sources.list所有文件。 您将在/etc/apt/sources.list.d有一个文件,例如google-chrome.list ,它将包含以下行:

 deb http://dl.google.com/linux/chrome/deb/ stable main 

这用作更新google-chrome的来源。

当您手动下载google-chrome的deb文件并安装它时,deb文件中的脚本创建了此文件,因此您无需手动搜索更新。