Ubuntu如何在Windows无法关闭的情况下更新运行中的应用程序而不必关闭它们?


11

运行64位Ubuntu 12.04。

我主要通过终端使用更新sudo apt-get update && sudo apt-get upgrade

我不明白这一点:让Firefox或任何其他此类集成应用程序主动运行,同时在终端同时运行更新过程,这会将Firefox更新到较新的版本。我知道重新启动Firefox将导致Firefox作为较新版本打开。

例如,在MS Windows 7中进行更新时,它要求在更新之前关闭同一应用程序的活动实例(如果处于活动状态)。

Ubuntu如何在不干扰其活动实例的情况下将活动的工作应用程序替换为较新的版本?

在这种情况下,更新过程的后端究竟发生了什么?

Answers:


19

对于MS Windows 7中的示例更新,它要求关闭同一应用程序(如果处于活动状态)的活动实例进行更新。

Ubuntu如何在不干扰其活动实例的情况下将活动的工作应用程序替换为较新的版本。[被许多包装删除]

我将尽力解释这一点。大多数Linux文件系统与Windows的文件系统(NTFS)略有不同。它们的核心本质上都包含指向存储在磁盘上的实际数据的文件名(条目)索引表。在NTFS中,这称为MFT(主文件表)-如果运行,您可能已经看到名称滚动了chkdsk

但是,我提到的“轻微差异”是Linux的索引表(如果可以的话)包括两个级别:index和inodes。索引节点包含实际的文件元数据,包括其在磁盘上的物理位置;索引中的“文件名”只是指向索引节点的(硬)链接。

当您更新/升级正在运行的应用程序时,更新的文件将写入磁盘,inode指向创建/更新的新数据,并且文件名也将更新以链接到这些新的inode。但是,对于正在运行的应用程序已使用的任何文件(即存在文件句柄),其文件名将继续指向旧的inode(包含旧数据),直到关闭文件句柄为止。当您退出应用程序或重新启动某些系统文件时,通常会发生这种情况。此时,实际上已从磁盘中删除了旧数据。

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.