软件更新程序与apt-get更新


11

我一直以为跑步 apt-get update 其次是 apt-get upgrade 只是运行软件更新程序的命令行版本;但是,运行软件更新程序会导致以下程序包需要更新:

Complete Generic Linux kernel  
Header files relates to Linux kernel version 3.2.0  
Linux kernel headers for version 3.2.0 on 64 bit x86 SMP  
Generic Linux kernel headers  
Linux kernel image for version 3.2.0 on 64 bit x86 SMP  
General Linux kernel image  
Linux Kernel Headers for development

ISC DHCP client  
common file used by all the isc-dhcp* packages  
LightDM GObject client library  
graphical boot animation and logger-shared libraries  
DisplayManager  
graphical  boot animation and logger-main package  
graphical boot animation and logger-label control  
graphical boot animation and logger-ubuntu-logo theme (-logo)  
graphical boot animation and logger-ubuntu-logo theme (-text)  
Jabber/XMPP connection manager

(53.9 MB)

而跑步 apt-get updateapt-get upgrade 结果是:

Reading package lists... Done  
Building dependency tree  
Reading state information... Done  
The following packages have been kept back:  
  linux-generic linux-headers-generic linux-image-generic  
The following packages will be upgraded:  
  isc-dhcp-client isc-dhcp-common liblightdm-gobject-1-0 libplymouth2 lightdm  
  linux-libc-dev plymouth plymouth-label plymouth-theme-ubuntu-logo  
  plymouth-theme-ubuntu-text telepathy-gabble  
11 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.  
Need to get 2,594 kB of archives.  
After this operation, 2,048 B of additional disk space will be used.  

谁能解释一下发生了什么?


在某些时候他们改变了行为 upgrade,你现在正在寻找 dist-upgrade 如果你还想升级内核。
Bobby

Answers:


9

这里似乎有些混乱。

  • apt-get update :这只是刷新可用包的列表。

  • apt-get upgrade:这会将任何已安装的软件包升级到最新版本。

  • apt-get dist-upgrade :与升级相同但使用“智能”冲突解决系统,它将尝试升级最重要的包,但必要时会牺牲不太重要的包。

因此,如果您想要确保当前安装的软件包是最新版本,则运行

apt-get update && apt-get upgrade

如果这导致问题,那么您可能想尝试:

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

现在,您发布的消息与此无关 dist-upgrade,它们是简单的升级。它们之间也没有什么区别,只是软件更新程序正在为您提供 说明 包的时候 apt-get 列出包名称。例如

Complete Generic Linux kernel  == linux-generic
ISC DHCP client                == isc-dhcp-client
Jabber/XMPP connection manager == telepathy-gabble  

如果仔细阅读这两个列表,您将看到它们完全相同。

也就是说,你发布的消息说的完全一样。


1
我认为它们会是相同的,但下载的大小却大不相同,除非这些数字不具有可比性?!
ChrisW

1

afaik,你错过了第三件:

apt-get dist-upgrade

实际上,apt-get upgrade在某些情况下不会升级包,例如当它们更改依赖关系或需要删除其他一些包时。 Bu apt-get dist-upgrade会。因此,要获得类似于您需要的软件更新程序的行为:

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

或者,如果你想更安全地玩一下:

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

看到: http://www.ghacks.net/2010/03/11/what-is-it-with-the-dist-upgrade-option-of-apt-get/
并且: https://askubuntu.com/q/194651/125726


2
“apt-get update&& apt-get upgrade&& apt-get dist-upgrade”除此之外 dist-upgrade 执行所有已经运行的操作 upgrade
Bobby

对。重点是在之前和之后进行“更安全”的升级 dist-upgrade 升级。
gerlos

我没有看到你获得了什么......除了第二轮中较小的包裹号码。
Bobby

前段时间我遇到了一些麻烦,包括第三方ppa的包依赖性。使用“正常”升级我可以更新除了那些破损包之外的所有东西,并且由于它们与其他包装“隔离”,我可以将它们与其他包装隔离,并解决我的麻烦。不是经常发生的事情,而是在他们遇到你之前发现问题的好方法,imho。
gerlos

我的意思是,如果你跑了,我看不出它有什么不同 upgrade 要么 dist-upgrade 遇到麻烦时主要区别在于后者也会尝试更新内核,但不会触及现有内核,所以系统永远不会有危险。
Bobby
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.