为什么我不必安装程序?


13

我刚刚开始使用Mac进行iOS开发,使用了二十年的Windows,我感到惊讶和困惑,发现Mac程序没有安装过程。...您只需下载它们,打开DMG,复制文件,然后保存。

这使我困惑不已

有人可以在技术层面上解释有什么区别吗?可以想象,没有必要执行安装过程吗?

如果有可能,那么为什么所有的操作系​​统都不能那样工作?


值得注意的是,仅将*.app 文件夹拖动到本地磁盘中就可以触发文件操作。另外,这nnn.app是一个文件夹,而不是文件。Mac应用程序的工作原理相当复杂。
假名称

我只想指出,Windows安装程序除了复制文件和设置快捷方式外,还会执行其他操作。一种是创建还原点,以便在出现问题时可以将系统还原到其原始状态。另一个使用卸载过程更新注册表。由于Windows应用程序不像OS X应用程序那样捆绑在一起,因此绝对需要后者。
克里斯·哈珀

Answers:


15

我们Mac用户以另一种方式问同样的问题:为什么Windows中的所有内容都需要一个(卸载)安装程序?

大多数Mac程序是完整的软件包-它们的所有资源都位于应用程序的文件夹中(右键单击“应用程序”图标->显示软件包内容)。因此它们可以在任何地方运行,有一个系统变量可以告诉代码它在哪里。通常,可以直接从下载的DMG甚至从远程服务器运行应用程序。有点性能下降,但它可以工作。用户设置位于用户的库中,还有用于处理机制的系统例程。

Mac没有需要设置(或维护)的中央注册表,因此也无需进行任何操作。

如果您正在开发Mac应用程序,则应该非常努力地不需要安装程序-仅在安装共享库或Shell级服务的情况下。通常,可以不这样做。

由于您正准备进行iOS编程,因此建议您不要担心。iOS规则会告诉您在哪里保存内容,这是不容商量的。首选项转到此处,用户数据转到此处。您使用提供的API。遵守 遵守。


没有哪个应用程序可以认为与众不同?
Machinarius 2014年

不利的一面是,如果捆绑的应用程序(.app)确实将文件添加到系统中(例如,在/ Library中,在其他位置),注册服务,首选项窗格等,则简单的“删除.app”不会尽管实际上还有其他应用程序可以(或至少声称如此)清除不存在的应用程序中的工件,但实际上并没有什么可以清除的。
雨果

您能解释一下这有什么意义吗?需要将许多应用程序识别为某些文件的处理程序。仅凭文件提取过程是不可能的。该应用需要在某个地方注册自己,也许相当于Windows注册表。如何能在应用并不需要一个安装程序。
user541686

5

实际上,OS X上有很多东西需要“安装”。

通常,“已安装”的应用程序是包含某些说明的程序包。简而言之,该程序包运行一个脚本,并告诉系统在操作系统的不同部分中创建/移动文件。对于Adobe CS套件或Microsoft Office之类的软件,这是必需的。

另一种应用程序是“独立应用程序”,其中您只需要一个可执行文件。该文件在打开后会创建其依赖项,首选项文件等。


3

在许多情况下,Windows安装程序除了提取压缩文件并将其写入目标外,实际上不做任何其他事情。

然后,它创建了一些快捷方式,并且可能会注册自己以打开具有特定扩展名的文件。

在Windows中安装软件没有什么神奇的,对于许多Windows软件,实际上您可以将已安装的软件目录直接复制到另一台计算机上,然后在该计算机上运行它,而无需进行(重新)安装。

因此,这主要是用户界面(由谁负责复制文件)之间的差异,而不是实际情况之间的差异。

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.