可以肯定地说,苹果生态系统将“应用商店”带入了主流。 在 iPhone 推出之前,购买数字软件通常充满了尝试,例如向开发者网站提交付款、通过电子邮件等待许可证密钥以及协商退款。
考虑到 Apple 的做法,您会认为免费和开源软件 (FOSS) 在 Mac 上很少见,这是可以原谅的。 实际上,Mac 是许多社区最佳免费工具的绝佳宿主。
MacPorts 是所有这些出色软件的“应用商店”。 让我们来看看它是如何工作的。
什么是 MacPorts?
MacPorts 是 Mac 的软件包系统。 它在功能和使用上与 Red Hat 软件包管理 (RPM) 系统和高级软件包工具 (APT) 非常相似,后者在 Linux 上安装 DEB 软件包。 实际上,它源于 FreeBSD 的 Ports 系统。
你知道 Mac OS X 是作为一个名为 Darwin 的 FreeBSD 的分支开始的吗? 即使在今天,macOS 也有坚实的基于 UNIX 的基础。 这使开发人员可以很容易地创建将在 Mac 上运行的免费软件应用程序的“端口”。
MacPorts 是该软件以及充当“商店”或安装程序的应用程序的集合。 在 FreeBSD 世界中,ports 系统帮助用户从源代码编译软件:
- 首先,您获取 端口集合,这是描述应用程序以及如何构建它们(包括它们的依赖项)的大量配置。 这些存储在您的“/usr/ports”目录中,每个端口都有一个子目录。
- 然后导航到应用程序的目录并发出“make install”命令。 这 生成文件 从头开始构建应用程序:下载源代码,编译并配置它。 下图显示了 KDE 的 Amarok 音乐播放器的端口内容。 您甚至可以使用“make world”命令从源代码重新构建整个系统。
MacPorts 遵循这种模式。 当您选择一个应用程序时,系统将下载、编译并在您的 Mac 上安装它(同样,包括依赖项)。
有哪些类型的端口可用?
MacPorts 存储库充满了您在 Linux 和相关操作系统上可以找到的所有相同的优秀开源应用程序。 如果您熟悉 Linux,那么您最喜欢的应用程序很有可能在 19,000+ 可用. 不仅如此,它们还以非常类似于 Unix 的方式安装和维护,但仍与 macOS 很好地集成。
您会发现一些应用程序与商业应用程序一样好或更好,例如 Emacs 和 VIM 文本编辑器。 其他人可以说没有那么好,但仍然是免费的。
如果您正在寻找特定程序,请尝试浏览上面的链接或使用“端口搜索”命令(稍后会详细介绍)。 一些可用的软件包括:
- 服务器: 标准 FOSS 服务器堆栈,包括 AMP (Apache Web 服务器、MySQL/Maria 数据库服务器和 PHP/Python)、SSH、SAMBA 和 BIND DNS 服务器可用。
- GNOME/KDE 软件: 如果您是桌面 Linux 用户,请从 325 个 GNOME 端口和 274 个 KDE 端口中进行选择。 从 GNOME 的 GnuCash 到 KDE 的 Amarok,您不会错过任何东西。 包括 XFCE 和 NextStep 在内的其他桌面也有展示。
- 文本处理: 如果您正在编码、进行技术写作,或者您只是享受以纯文本方式工作所提供的禅宗般的体验,那么您将得到保障。 上述 Emacs 和 VIM 等文本编辑器可用于创作,而 Multimarkdown、DocBook 和 LaTeX 等应用程序和系统则有助于以漂亮的格式发布它。
- 编程语言: Python、PHP、Ruby 等标准都被考虑在内,CoffeeScript、Lua 和 Kotlin 等更新或更专业的语言也是如此。 其他工具,如开发环境(例如 Mac 的 Qt Creator)和编译器(gcc)也存在。
安装和设置 MacPorts
由于 MacPorts 将在您的机器上编译软件,因此您需要一些开发工具。 不用担心,该应用程序将完成所有繁重的工作,因此您不必学习任何书呆子语(除非您愿意,在这种情况下从这里开始)。 您首先需要安装 Xcode,这是从 App Store 中简单抓取的。
接下来,打开终端应用程序并运行以下命令,这将弹出一个对话框供您下载并安装 Xcode 的命令行工具:
xcode-select --install
获取 MacPorts 前端就像从网站下载适用于您的 macOS 版本的应用程序(如下图所示)一样简单 安装页面.
它以 PKG 文件的形式出现,因此您会看到熟悉的向导弹出来引导您完成安装。 你可以点击 继续 通过这些屏幕,因为你真的没有选择。
安装后,您将不会像普通的 Mac 程序那样在“应用程序”文件夹中看到任何内容。 这 端口搜索 应用程序是一个命令行程序,所以你需要启动 终端 (或您最喜欢的基于 Mac 的终端应用程序)开始。
首先要做的是更新端口集合(同样是可用应用程序的描述):
sudo port selfupdate
安装您的第一个端口
更新后,您可以开始寻找要安装的应用程序。 在终端中,您可以使用 端口搜索 命令。 假设我们想找到一个老式的双窗格文件管理器。 App Store 中的类似项目要么是商业项目,要么是应用内购买项目。 让我们尝试使用以下命令找到一个免费的:
port search 'file manager'
挑选这些结果,您会发现 Krusader。 这个超级有用的 Linux 工具确实是双窗格的,并增加了文件同步和存档管理等额外功能。 要安装它,请运行以下命令:
sudo port install krusader
您需要输入您的 admin 密码,因为您正在运行“sudo” 命令。安装将需要一段时间。(注意所有依赖项,超过 100 个,如下图所示。)
在你跑去喝杯咖啡之前,花点时间看看你的应用程序的自动下载和构建。 看起来终端窗口充满了很多技术喋喋不休(事实上,这些构建的输出是 幸运地 袖珍的)。 但是,如果您仔细观察,很容易弄清楚每个端口发生了什么。
- 首先,MacPorts 确定 哪个顺序 它应该根据它们的依赖关系安装端口。
- 对于每一个,MacPorts 都会下载它的 源代码存档 从服务器。
- 它还将通过以下方式验证它是否拥有正确的 比较存档的校验和 根据端口描述。
- 那么,它 解包 端口的源代码。
- 如果有 配置脚本 在构建之前运行,接下来是那些。
- 构建软件涉及 编译所有源代码 进入Mac可以执行的东西。
- 构建完成后,生成的可执行代码是 放在适当的目录中, 然后 注册应用程序 与系统。
- 最后,MacPorts 将 清理 所有的源代码。 下图中为 Krusader 显示了这些每个端口的步骤。
现在,您将在 Applications 中找到一个名为“MacPorts”的新子文件夹,其中包含您的应用程序(在本例中,Krusader 在“KDE4”文件夹下)。 启动它并将其粘贴到 Dock 上,就像任何其他应用程序一样。 您也可以使用 Spotlight 启动它。
更新和删除您的端口
要更新您的端口集合,请使用我们一开始使用的命令(这也将更新 MacPorts 应用程序本身):
sudo port selfupdate
然后,您可以使用以下命令列出任何过时的端口:
port outdated
要实际执行这些升级,请使用以下命令:
sudo port upgrade
这 升级 子命令将执行相同的步骤 安装,但它会覆盖旧版本。 如果您试用了一个应用程序并想要删除它, 卸载 子命令可以解决问题(Pallet,如下所示,是我安装的 MacPorts GUI,它似乎已损坏):
sudo port uninstall pallet
使用 MacPorts 获得 macOS 开源优势
MacPorts 项目解锁了许多关于开源软件的伟大之处,包括社区。 您可以以易于安装和维护的格式完全访问所有代码。
你怎么看? 命令行界面会让你失望吗? 到目前为止,您安装了哪些应用程序? 在下面的评论中让我们知道您的想法!