可以进行“apt-get 更新”但仅适用于一个软件包吗?

Sat*_*t93 8 apt ppa

添加新的ppa到存储库后,是否需要更新整个数据库?“整个数据库”是指是否有必要更新每个包的索引?

如果没有必要,那么我如何只更新我刚刚添加到存储库中的 ppa 的特定包。

例如,

如果我通过在终端中键入以下内容来添加 ppa,

sudo add-apt-repository ppa:tiheum/equinox
Run Code Online (Sandbox Code Playgroud)

然后我们通常在它之后运行以下命令,

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

但是如何更新与上述 ppa 关联的唯一包,而不是更新整个数据库。

Joh*_*ber 8

很抱歉,但据我所知,您必须完成整个过程apt-get update

如果其他存储库没有更改,则不应再次下载它们。检查存档服务器上的文件的日期和时间是否比您计算机上已有的日期和时间更新。如果它们发生了变化,它们迟早会被下载。

除了那些运行开发版本的人之外,变化很大的存储库非常小(包含稳定版本更新和安全修复程序的更新是我想到的两个存储库)。

开发版本很特别,因为包含每个主包的主存储库每天都会更改几次。主要存储库在发布之前被冻结。


但是,您不需要升级所有东西——您可以选择只升级您想要的软件包。


Anw*_*war 6

是的,您需要sudo apt-get update在添加 PPA 后执行。但是,如果您关心下载数据或只想从 PPA 更新索引文件,那么您可以采取一种技巧来防止这种情况发生。

我做这种伎俩来避免包列表的不必要的更新,看这个问题此事。

仅更新感兴趣的索引文件的解决方法:

大多数情况下,我们会更新包列表以添加 PPA。所以这是一个解决方法

  1. 创建一个文件/etc/apt/apt.conf.d/99mysettings,并
    把此行的文件中。Apt::Get::List-Cleanup 'false';.

    如何 ?: 在终端中输入这些

    sudo gedit /etc/apt/apt.conf.d/99mysettings    
    
    Run Code Online (Sandbox Code Playgroud)

    说明:它导致apt-get不删除已经下载的索引文件。

  2. 禁用您现在不想更新的存储库。您可以到这里 查看如何禁用存储库

打开后,请参阅下面的图片software-properties-gtk

在此处输入图片说明

在此处输入图片说明

  1. 然后apt-get update在终端中运行命令。等到它结束。

  2. 最后再次启用您几分钟前禁用的所有存储库。您现在已经用所有以前的索引更新了 PPA 索引

希望这会有所帮助。