Linux中的update和upgrade分别是更新什么呀?

@一安全

update 是下载源里面的metadata(包括这个源有什么包, 每一个包什么版本之类的)服务器

同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引更新软件包索引告诉包管理器最新的一份源里面的软件包版本信息这样才能获取到最新的软件包spa

upgrade 是对已经安装的软件包自己进行更新升级的过程,升级以后的版本就是本地索引里的,.net

upgrade是根据update命令下载的metadata决定要更新什么包(同时获取每一个包的位置).翻译

所以,在执行 upgrade 以前必定要执行 update, 这样才能是最新的索引

可简单的理解前者是更新整个仓库的版本信息,后者是升级软件包get

安装软件以前, 能够不upgrade, 可是要update. 由于旧的信息指向了旧版本的包, 可是源的服务器更新了以后旧的包可能被新的替代了, 因而你会遇到404...同步

@二it

Linux 和 Windows 不同,同一发行版(好比 Ubuntu) 的不一样版本(好比 14.04, 14.10 )用的软件仓库是不同的,因此有仓库 (repository ) 这样的概念,天然就有了要更新仓库信息的逻辑。
若是不更新仓库信息, upgrade 就在本地的旧仓库转悠一圈发现并无要更新的,但实际上本地仓库已通过时了。
这也是为何用 apt 查找某个包的命令是 apt-cache search xxx 的缘由,用的是本地 cache 了仓库信息。class

包管理器

做用是从源(Source)服务器那里下载最新的软件包列表,而后在你须要安装某个软件包(apt-get install)的时候从列表里面查询这个软件包的版本信息、系统要求、翻译、依赖项(该软件正常运行必须安装的其它软件)而且添加到同时安装的列表里面,再查询全部安装列表里面的软件包的.deb文件下载地址,最后批量下载,自动分析安装顺序而后安装完成。

可是这个软件包列表是不会被自动下载的,须要用户使用apt-get update更新。这样,apt-get才能知道每一个软件包的最新信息,从而正确地下载最新版本的软件。

通常来讲,update和upgrade不须要每次安装软件以前都运行,安装新软件的话一天左右运行一次便可,不安装软件的时候隔十天半个月运行一下来更新软件包,服务器系统若是没有安全性更新就别乱更新了,稳定最重要。

PS:软件源服务器地址能够在/etc/apt/sources.list里面看到。

相关文章
相关标签/搜索