更新如何与从.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中。
这确实有点复杂。 首先, apt
是dkpg
的前端 ,它实际上处理安装/删除包。 因此,/ /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文件中的脚本创建了此文件,因此您无需手动搜索更新。