每次安装软件包之前是否必须执行“sudo apt-get update”?

每次安装软件包之前是否必须执行“sudo apt-get update”?

我知道更新命令的用途,我只是想知道我是否必须在执行任何软件包安装之前使用它。如果我太久没有更新并安装了一些关键软件包怎么办?此外,是否有不需要这样做的情况?

答案1

您的 Ubuntu 副本拥有 Ubuntu 存储库中软件包列表的私有副本。当您安装软件包时,apt-get会读取列表并确定要下载的软件包的 URL(通常包含软件包版本信息)。

apt-get update更新软件包列表。如果您在安装之前没有这样做,apt-get可能会抱怨无法在存储库中找到软件包,因为它是根据旧版本的列表(其中列出了软件包的旧版本)计算 URL 的。

当然,apt-get update在您更改存储库后这是必要的,因为系统需要下载新的存储库列表。

在升级已安装的软件包之前,这是必不可少的,因为系统无法知道 repo 是否有软件包的新版本,除非它拥有最新的软件包列表副本。

没有理由不在apt-get update安装软件包之前运行。但是,如果您知道自上次以来镜像中没有提供该软件包及其依赖项的新版本,则没有必要运行apt-get update。一种特殊情况是软件包列表是最新的,即自上次以来的相当短的时间之后apt-get update;这意味着镜像上的所有软件包都与原先的版本相同。

每当镜像上的软件包升级时,软件包列表都会发生变化。一般来说,如果不参考特定问题或错误报告,或者不关注该 Ubuntu 版本的开发,就无法预测其变化频率。

答案2

你不绝对在安装软件包之前需要使用更新命令,但如果不这样做,您可能会在安装软件包之后立即升级它。

另外,请记住,您需要定期更新系统。如果不这样做,您的计算机将面临风险(您将无法获得最新的安全补丁)。

答案3

如果您刚刚添加了软件存储库(PPA 或 Debian 存储库),则必须运行apt-get update以轮询存储库并将其中的所有软件包添加到 APT 的可用软件列表中。否则,APT 将无法识别您要求其安装的软件包的名称。

通过命令行安装新软件时,最好更新存储库信息,这样您就不会在安装软件时才发现它已经过时。升级软件也是如此。

如果您使用图形方法安装或升级软件,例如 Ubuntu 软件中心或更新管理器,这些客户端将自动检查软件包的绝对最新版本。

话虽如此,如果您正在安装一批软件,并且在几分钟甚至几个小时前运行了更新,那么您很可能会获得最新版本。但是,如果您正在安装经常更新的软件类型(例如 alpha/beta 或前沿软件),则您需要在从该软件的存储库获取任何内容之前运行更新。

相关内容