"Sudo apt-get update"做什么?

我在想什么 sudo apt-get update 真的吗?

它更新了什么?

一言以蔽之, apt-get update 实际上并不安装新版本的软件。 相反,它会更新需要升级的软件包的升级列表,以及刚刚进入存储库的新软件包。

  • apt-get update 从存储库下载软件包列表并"更新"它们以获取有关软件包及其依赖项的最新版本的信息。 它将为所有存储库和Ppa执行此操作。从 http://linux.die.net/man/8/apt-get:

    用于从源重新同步包索引文件。 可用包的索引是从 /etc/apt/sources.list(5). 更新应始终在升级或dist-upgrade之前执行。

  • apt-get upgrade 如果APT通过 apt-get update.

    http://linux.die.net/man/8/apt-get:

    用于安装系统上当前安装的所有软件包的最新版本,这些软件包来自 /etc/apt/sources.list(5). 将检索和升级当前安装的具有可用新版本的软件包;在任何情况下都不会删除当前安装的软件包,也不会检索和安装尚未安装的软件包。 当前安装的软件包的新版本在不更改其他软件包的安装状态的情况下无法升级,将保留其当前版本。 [强调我的]必须首先执行更新,以便apt-get知道新版本的软件包可用。

  • apt-get dist-upgrade 我会做同样的工作。 apt-get upgrade 此外,它还将智能地处理依赖关系,因此它可能会删除过时的包或添加新的包。 看这里: 什么是"dist-upgrade"以及为什么它升级超过"upgrade"?

    http://linux.die.net/man/8/apt-get:

    除了执行升级的功能外,此选项还智能地处理与新版本软件包的变化依赖关系;apt-get有一个"智能"冲突解决系统,如果需要,它将尝试升级最重要的软件包, 该 /etc/apt/sources.list(5)文件包含从中检索所需包文件的位置列表。 另请参阅apt_preferences(5),以获取超越单个包的常规设置的机制。

您可以将命令与 && 如下:

sudo apt-get update && sudo apt-get install foo bar baz foo-dev foo-dbg

或者根据依赖项的版本要求获得可能的最新版本:

sudo apt-get update && sudo apt-get dist-upgrade

你需要 sudo 两次,但自从 sudo 默认情况下,不会在上一次5分钟内提示您 sudo 操作,您将被提示输入您的密码只有一次(或根本没有)。

Google搜索可以为您提供几乎任何终端命令的定义,也可以在终端中提供帮助。 例如,

apt-get --help

sudo apt-get update 基本上有三个部分:

sudo

使用超级用户(root)功能执行以下命令。 许多需要修改系统文件或安装应用程序的操作都需要额外的权限才能完成。

apt-get

是Ubuntu用来安装、删除和管理软件包的命令行工具

update

是apt-get程序的一个选项,用于从internet上的服务器更新软件包列表。 软件包列表为apt-get实用程序提供了有关您可以使用apt-get安装的软件包的重要信息。 apt-get使用这些列表来确定在给出要安装的命令时要安装哪个软件。 例如

sudo apt-get install guake

将安装Guake终端,因为它目前列在我的计算机的本地软件列表中。 然而,这可能不是合适的版本,或者如果程序是新的,它可能根本不可用。 因此,使用apt-get安装软件时,您通常键入

sudo apt-get updatesudo apt-get install <package>

确保apt-get知道安装最新版本的软件包。

另一个有用的信息来源是 help.ubuntu.com 网站。 例如,如果您在该网站上搜索 apt-get 你会发现 AptGet/Howto 作为结果之一。

跑步 sudo apt-get update 只需确保所有存储库和PPA的软件包列表是最新的。 如果您不运行此命令,您可能会得到您正在安装的各种软件包的旧版本,或者更糟糕的是,依赖性问题。 如果您刚刚添加了PPA并且没有更新,则ppa中的任何内容都不会起作用,因为您没有来自该PPA或存储库的包列表。

一言以蔽之:它是 高度 推荐运行 sudo apt-get update 在安装之前,但它 如果你真的时间紧迫,可能会被跳过 除非您自上次更改了存储库或Ppa apt-get update.

它会更新计算机上的可用软件列表。

您的计算机有一个列表(如目录),其中包含Ubuntu服务器可用的所有可用软件。 但是可用的软件和版本可能会更改,因此"更新"将击中服务器并查看可用的软件以更新其本地列表(或目录)。

请注意 update 是不同的 upgrade. 如上所述,更新将获取可用的软件并更新列表。 upgrade 将安装您的计算机上安装的软件的新版本(实际的软件更新)。

要实际升级软件(而不是"更新"列表),请执行以下命令

sudo apt-get upgrade

通常在"更新"之后执行。

你需要跑 apt-get update 在安装新软件包之前,这会更新本地存储库信息。

如果您要在不久之后安装多个软件包,则不需要运行 apt-get update 每次安装前;第一次安装前只需一次。

此外,如果键入,您可以一次安装多个软件包sudo apt-get install package1 package2...,但你仍然需要运行 apt-get update 在多个软件包安装之前。

当您从命令行安装软件包时, sudo apt-get install ... (或 sudo aptitude install ...),或者当你从命令行升级它们时(用 upgradedist-upgrade 而不是 install),以下信息是从本地系统的配置中获得的,以及 不是 来自互联网:

  1. 有哪些软件包可用

  2. 它们有哪些版本

  3. 可用的软件包应该从哪里检索

跑步 sudo apt-get update (或 sudo aptitude update)在本地系统上更新此内容。 这是实际检索有关可以安装哪些软件包的信息的步骤, 包括当前安装的软件包的可用更新,来自互联网来源。

当您使用GUI界面(更新管理器、软件中心或突触软件包管理器)安装软件包时, sudo apt-get update 是自动完成的。 当您从命令行安装软件包时,它不是,您应该始终自己执行此操作 除非你最近这么做了.

因为有关可用的软件包更新版本的信息是通过运行获取的 sudo apt-get update (或 sudo aptitude update),建议在安装任何软件包之前运行它,并运行它以安装最新的更新, 即使您没有添加或删除任何软件源(如PPA).

请注意,如果您要在同一时间执行多个包管理操作,则不需要运行 sudo apt-get update 在每一个之前。 只有当信息有一段时间没有更新时,您才应该确保运行它。

正如我之前的很多人所说,这更新了您的本地存储库(包列表)。

如果您尝试安装,您可能会遇到麻烦

apt-get install foobar

并且foobar或依赖项在存储库中没有最新版本。 这可能是特别有问题的,如果安装一个。deb文件手动或第三方的ppa。

基本上它可以确保 你的名单 匹配的 师父 名单。

正如以利亚*卡根上面提到的,你会 期待 GUI应用程序将运行 apt-get update 以前 apt-get install / apt-get upgrade,但我刚刚发现了一个有趣的错误404,在一个相对较新的反安全VM机器上,让我难倒了一分钟。

从命令行,我跑 apt-get update,然后再次尝试了System Tools/Software-Update命令,这次运行没有404错误。

所以,我想你不能总是假设 apt-get update 从GUI应用程序运行。..

让我们考虑安装的例子 VLC媒体播放器 在Ubuntu上:

sudo apt-get update

它将检查存储库以获取可用的更新。

鉴于

sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc

将从我们搜索的存储库安装VLC媒体播放器。

如果您以root用户(管理员)身份登录,则不必使用 sudo,因为您已经拥有超级用户权限。