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


11

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

我知道我有一个/etc/apt/sources.list列出所有存储库的 文件,并且在我使用时会查询这些存储库apt-get update-以后再与eg一起使用
apt-get upgrade。这很合理,我最近spotify通过添加
deb http://repository.spotify.com stable non-free到此“源”列表进行安装。

但是后来我很困惑...

当我去下载Google Chrome浏览器时,我只需要下载并获取一个.deb文件,Chrome浏览器安装就没有问题了……但是我没有看到任何新条目/etc/apt/sources.list……

那么,如何apt-get update知道在哪里查询有关Chrome更新的信息?是否以某种方式将其添加到了源文件中已列出的存储库之一中?

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

Answers:


10

这确实有点复杂。首先,apt是一个前端dkpg这实际上手柄安装/删除软件包。因此,/etc/apt/sources.list(以及中的任何文件/etc/apt/sources.list.d/)都由而apt不是读取dpkg

现在,当您.deb手动下载文件时,您将绕过aptdpkg -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/),从而确保在您使用时chrome 其更新apt-get


好的,有道理...但是有什么办法可以轻松管理所有手动安装的软件包的更新吗?
Kirbies 2014年

2
@Morten不,这就是为什么apt存在etc 的原因,如果您退出该系统,则您是一个人。有一些技巧,但是对于您可能会手动安装的一些软件包,很少值得付出努力。
terdon 2014年

1
软件包管理器实际上并不关心dpkg或apt是否已安装软件包。如果在存储库中找到软件包的较新版本,则会安装较新版本。
Florian Diesch 2015年

@FlorianDiesch是的,当然。我的观点是针对不在存储库中的软件包。
terdon 2015年

1

apt搜索中列出的源/etc/apt/sources.list以及中的所有文件/etc/apt/source.list.d。你将有一个文件,如google-chrome.list/etc/apt/sources.list.d其中将有以下线路:

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.