为什么 OS X 没有默认的包管理器?

为什么 OS X 没有默认的包管理器?

Debian 有 APT。Red Hat 有 RPM。FreeBSD 有 Ports。NetBSD 有 pkg​​src。Mac OS X 有 MacPorts、Fink 和 Homebrew,但这些都是第三方包管理器。为什么 OS X 没有默认包管理器?

答案1

我的观点(这基本上只是观点,尽管我认为证据可能会让你产生同样的想法)是,这是因为开源软件行业与商业软件行业的思维过程存在根本差异。

对于开源软件项目来说,软件包系统非常棒,因为它们让任何用户都能非常轻松地获取软件或保持其最新状态 - 通常只需一个命令,现在则可以通过新手友好的 UI(如 Ubuntu 软件中心)来实现。对于桌面用户和服务器管理员来说,这都是极大的便利。

对于商业软件行业来说,货币化和营销与分销同样重要(如果不是更重要的话)。你知道开源 Windows 应用程序通常只有一个标准的 NSIS 安装程序,而商业软件往往有带有自定义窗口镶边、到处都是徽标和营销文案的糟糕安装程序吗?这是因为对于商业公司来说,尽可能地插入他们的品牌、营销和体验非常重要。这意味着商业软件公司通常希望控制其产品分销的各个方面,即自定义网站、安装程序和更新程序。公司还希望能够向客户收取产品费用,而传统的软件包系统没有许可和收费的规定。

软件包环境还需要软件制造商之间的大量合作,以统一打包标准并维护存储库。竞争对手的软件公司希望彼此脱颖而出,并且往往会目光短浅,更愿意尽可能不同代替尽可能方便用户。尽管开源世界中项目之间的竞争仍然存在,但在开发者的眼中,这种竞争往往不那么重要。相反,开源软件行业非常关注合作这意味着大型项目聚集在一起并达成标准化分配机制是理所当然的。

商业软件行业现在正迅速接受统一分发系统的好处,但这要归功于平台供应商而非软件制造商的努力,而且它不是从个人电脑开始,而是从手机开始:iOS 可能是第一个获得巨大成功的中央应用商店,然后是 Android,现在所有主要的手机操作系统都有它们。在台式机上,Mac 应用商店最近推出,我相信官方已经宣布 Windows 8 将推出应用市场。

什么是应用商店/市场?一个中央系统,您可以通过它下载并自动安装软件,它还会自动管理依赖项并检查更新。它实际上只是一个穿着更漂亮衣服的软件包管理器,着眼于收入。

总结:开源社区的动机自然导致了软件包系统的出现,而商业软件行业却没有看到其中的好处并采取主动。现在商业软件行业正在转变态度,并以应用商店的形式引入软件包系统。

答案2

我认为除了 Apple 认为没有必要包含它之外,没有其他真正的原因,因为对于大多数 Mac 用户来说,它不是那么必要。由于 Linux 有多种版本,您需要从源代码编译所有内容,因为所有不同的环境都有很大差异,在一个地方编译的可执行文件可能无法在另一个地方正常工作。这还需要确保所有依赖项都已到位。Linux 包管理器的包含是为了使用户更轻松。

对于 OS X,任何为其编译的东西都可能有效(几个不同版本之间肯定存在例外,但并不像 Linux 发行版那样零散)。您可以确信您正在下载的二进制文件将正常运行。Apple 控制着操作系统的开发和分发,因此它保持相当规律和一致 - 在这方面与 Windows 类似。但由于 OS X 是基于 Unix 核心构建的,并且有足够多的人想要使用 unix 工具,因此有第三方包管理器来提取源代码、检查依赖项并为该特定平台进行编译。

答案3

简单回答:

在此处输入图片描述

苹果的目标用户根本就不需要,而且他们希望其操作系统的工作方式与命令行打包系统的概念不兼容。

那么开发呢?即使 XCode 也不适用于该工作流程。第三方工具主要用于构建基于 Linux 的工具和基于 *nix 的库和项目。

相关内容