Macos 为什么大多数Mac应用程序不需要安装(只需复制到/应用程序中)?

Macos 为什么大多数Mac应用程序不需要安装(只需复制到/应用程序中)?,macos,installation,Macos,Installation,我使用过Windows、Mac OS和Linux(Ubuntu、Redhat)。在Mac OS上,安装新应用程序(在大多数情况下)只需要将其复制到/Applications,而在Windows中,安装程序会将文件复制到所有位置。在Linux中,makeinstall或Debian安装程序也会将文件复制到许多不同的文件夹中 是因为Mac软件大多是独立的吗?或者是因为操作系统非常聪明,能够在幕后处理依赖关系?因为操作系统X上的大多数“.app”应用程序都是自包含的,并打包了其所有依赖关系的自己版本。

我使用过Windows、Mac OS和Linux(Ubuntu、Redhat)。在Mac OS上,安装新应用程序(在大多数情况下)只需要将其复制到
/Applications
,而在Windows中,安装程序会将文件复制到所有位置。在Linux中,
makeinstall
或Debian安装程序也会将文件复制到许多不同的文件夹中

是因为Mac软件大多是独立的吗?或者是因为操作系统非常聪明,能够在幕后处理依赖关系?

因为操作系统X上的大多数“.app”应用程序都是自包含的,并打包了其所有依赖关系的自己版本。以Perforce为例,他们的每个GUI应用程序(P4v和P4Admin)都捆绑了自己的依赖项,这意味着每个应用程序都有100mbs的QT库,这些应用程序的总容量几乎为5gb


但这是一个折衷方案,一方面是尺寸,另一方面是安装方便。

我不能说100%确定,但主要是因为它是独立的。通常,当软件启动时,它会创建它需要的任何文件,通常是一个plist,也可能是几个其他文件,但通常不会超过几个。

这只是如何处理依赖项的选择,而不是操作系统本身所做的任何魔术。自包含应用程序的优点是可以消除依赖性问题并简化应用程序管理(拖放!),但由于需要将库和其他依赖性与应用程序捆绑在一起,因此带来了膨胀的代价。此外,还需要勤勉地更新/维护应用程序,以便纠正安全缺陷等问题(使用软件包管理器这项任务稍微简单一些)。

正如其他人所说,Mac.app文件基本上是独立的。另一方面,Windows需要大量信息进入Windows注册表。DLL必须注册、Shortcuts、shell扩展、卸载要求等