apt-get update ,upgarde,dist-upgrade的区别

apt-get是某些linux发行版使用的一个“包管理器”(还有别的发行版使用yum等,以及brew等其他平台上的包管理器,工作原理类似)。

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

1. update和upgrade分别是更新什么呀?

首先说明一下update和upgrade分别是更新的是什么:

  • update是下载源里面的metadata的,包括这个源有什么包, 每个包什么版本之类的。软件包列表是不会被自动下载的,需要用户使用apt-get update更新。这样,apt-get才能知道每个软件包的最新信息,从而正确地下载最新版本的软件。

  • upgrade是根据update命令下载的metadata,决定要更新什么包(同时获取每个包的位置)。对已经安装的软件包本身进行更新的过程。由于确定要更新的软件包需要对本地安装的版本和列表的版本进行比较,所以要在update以后运行这一条。

要求在install操作之前执行update和upgrade,实际上是确保本地软件列表信息和已安装软件均为最新的过程。这样做可以最大限度地确保新安装的软件包正常工作。

一般来说,update和upgrade不需要每次安装软件之前都运行,安装新软件的话一天左右运行一次即可,不安装软件的时候隔十天半个月运行一下来更新软件包,服务器系统如果没有安全性更新就别乱更新了,稳定最重要。

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

2. upgrade和dist-upgrade的差别

  • upgrade:系统将现有的Package升级,如果有相依性的问题,而此相依性需要安装其它新的Package或影响到其它Package的相依性时,此Package就不会被升级,会保留下来

  • dist-upgrade:可以聪明的解决相依性的问题,如果有相依性问题,需要安装/移除新的Package,就会试着去安装/移除它. (所以通常这个会被认为是有点风险的升级)

apt-get upgradeapt-get dist-upgrade本质上是没有什么不同的。只不过,dist-upgrade会识别出当依赖关系改变的情形并作出处理,而upgrade对此情形不处理。

例如软件包a原先依赖b c d,但是在源里面可能已经升级了,现在是a依赖b c e。这种情况下,dist-upgrade会删除d安装e,并把a软件包升级;而upgrade会认为依赖关系改变而拒绝升级a软件包。

3. 参考文章

https://blog.csdn.net/wangyezi19930928/article/details/54928201

阅读更多
个人分类: Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

apt-get update ,upgarde,dist-upgrade的区别

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭