sudo apt-get update
命令是做什么的?它更新了什么内容?
apt-get update
并不实际安装新版本的软件。相反,它更新软件包列表以获取需要升级的软件包以及刚刚添加到存储库中的新软件包。
apt-get update
从软件源下载软件包列表并将其“更新”,以获取有关软件包及其依赖项的最新版本信息。它将为所有软件源和PPA执行此操作。
来自http://linux.die.net/man/8/apt-get:
用于重新同步软件包索引文件与其源之间的关系。可用软件包的索引从
/etc/apt/sources.list
(5)中指定的位置获取。在进行升级或发行版升级之前,应始终执行更新操作。
apt-get upgrade
将获取机器上已知的新版本软件包(通过apt-get update
)。
来自http://linux.die.net/man/8/apt-get:
用于从
/etc/apt/sources.list
(5)中列出的源安装当前系统上所有软件包的最新版本。将检索并升级当前已安装的具有新版本的软件包;绝不会删除当前已安装的软件包,也不会检索并安装尚未安装的软件包。无法在不更改其他软件包的安装状态的情况下升级的当前已安装软件包的新版本将保持其当前版本。 [强调是我的] 必须先执行更新操作,以便apt-get知道有新版本的软件包可用。
apt-get dist-upgrade
(在apt
中相当于full-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
apt-get --help
sudo apt-get update
基本上有三个部分:
sudo
apt-get
update
是apt-get程序的一个选项,用于从互联网上的服务器更新软件包列表。软件包列表为apt-get工具提供了关于可使用apt-get安装的软件包的重要信息。当给出安装命令时,apt-get使用这些列表来确定要安装哪个软件。例如
"sudo apt-get install guake
sudo apt-get update
sudo apt-get install <package>
&&
,就像这样 sudo apt-get update && sudo apt-get install foo bar baz
- nanofarad&&
表示只有在第一个命令成功运行后,第二个命令才会执行。如果你不关心第一个命令的成功与否,可以使用 ;
替代。 - Flimmapt-get update
。基本上:不要在没有我的同意下更新我的系统。然而,如果你想要这种行为,你可以在cron中添加一个脚本。 - Metro Smurfsudo apt update
不会有任何新的变化,除非你添加一个仓库,或者仓库的维护人员添加/更新了仓库中的软件包。 - nanofarad它会更新您计算机上的可用软件列表。
您的计算机有一个包含Ubuntu服务器上所有可用软件的列表(类似于目录)。但是可用软件和版本可能会发生变化,因此“更新”将访问服务器并查看可用的软件以更新其本地列表(或目录)。
请注意,“更新”与“升级”是不同的。如上所述,更新将获取可用的软件并更新列表,而“升级”将安装计算机上已安装软件的新版本(实际软件更新)。
要实际升级软件(而不是“更新”列表),请执行以下命令
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 ...
),或者在命令行中升级它们(使用upgrade
或dist-upgrade
而不是install
),以下信息是从您本地系统的配置获取的,而不是从互联网获取的:
有哪些可用的软件包
它们的可用版本
可用软件包应该从哪里获取
sudo apt-get update
(或sudo aptitude update
)会更新您本地系统上的这些信息。这一步实际上是从互联网源获取关于可以安装哪些软件包的信息,包括当前已安装软件包的可用更新。sudo apt-get update
的工作会自动完成。但是,如果您通过命令行安装软件包,则不会自动完成,您应该始终自己执行此操作,除非您最近已经这样做过。sudo apt-get update
(或sudo aptitude update
)来完成的,因此建议在安装任何软件包之前运行此命令,并且在安装最新更新时必须运行它,即使您没有添加或删除任何软件源(例如PPA)。sudo apt-get update
。只有在信息长时间未更新时,您才需要确保运行此命令。就像之前许多人所说的那样,这会更新您的本地仓库(软件包列表)。
如果您尝试安装可能会遇到麻烦。
apt-get install foobar
apt-get
时比通过运行软件更新器/更新管理器执行的自动检查更好处理。你使用HTTP代理吗?你能再次重现这个问题吗,还是只发生了一次?如果这只是一个孤立的异常,我想可能是由于临时服务器配置错误导致的问题。你使用哪个镜像?如果有更多信息,也许我可以改进我的回答。(顺便问一下,这是作为一个独立的回答,还是应该转换为评论?) - Eliah Kagansudo apt-get update
sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc
sudo apt-get update
命令?如果不这样做有什么缺点? - JohnnyQapt-get update
需要一段时间,这里的互联网还比较原始。 - JohnnyQ