在不需要 Homebrew 的情况下在 macOS 上安装 Vapor

Posted

技术标签:

【中文标题】在不需要 Homebrew 的情况下在 macOS 上安装 Vapor【英文标题】:Installing Vapor on macOS without needing Homebrew 【发布时间】:2017-08-23 10:43:40 【问题描述】:

我正在尝试启动一个 Swift Vapor 项目。按照指南here,Homebrew 似乎是唯一的选择。我已经拥有 MacPorts,并且在很多方面都比 Homebrew 更喜欢它。不幸的是,Vapor 没有端口,所以我选择了 Vapor 人描述的 SPM 安装here。我之前在 Kitura 上取得过成功,所以我想为什么不使用 Vapor。好吧,当你去构建你的项目时,你会得到

$ swift build

[... build stuff ...]

note: you may be able to install ctls using your system-packager:

    brew install ctls

[... more build stuff ...]

<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "shim.h"
    ^
[... more like that ...]

  /Users/morpheu5/web/vizex/api/.build/checkouts/crypto.git-7980259129511365902/Sources/Crypto/Cipher/Cipher+Method.swift:1:8: error: could not build Objective-C module 'CTLS'
import CTLS
    ^
<unknown>:0: error: build had 1 command failures
error: exit(1):/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-build-tool -f /Users/morpheu5/web/vizex/api/.build/debug.yaml

显然你真的需要这个ctls 包,而获得它的唯一方法似乎是通过 Homebrew/Tap。

我真的不想要或不需要 Homebrew,那么我该如何解决这个问题呢?我真的很想试试 Vapor。

【问题讨论】:

AFAIK,Vapor 是通过 Swift 包管理器安装的。尽管命令行工具非常方便,但它们不是强制性的。 【参考方案1】:

强制 1:安装 Homebrew 是最简单的方法。如果您随后决定不想要 Homebrew,它会非常整齐地卸载。

义务 2:使用 Linux 虚拟机是第二简单的方法。

但要回答您的问题并手动安装CTLS

    确保您已安装 LibreSSLOpenSSL 的库(大概使用 MacPorts)

    下载CTLS的最新release。

    从发布存档中,将 macos.pc 重命名为 ctls.pc,然后使用文本编辑器对其进行编辑。更改路径以指向您的 LibreSSL/OpenSSL 安装。

    将编辑后的ctls.pc 移动到您的$PKG_CONFIG_PATH

我已经对此进行了测试,它对我有用,但需要注意的是我使用 Homebrew 安装了 LibreSSL,所以我不知道 MacPorts 会将它放在哪里。

【讨论】:

我对 Homebrew 的唯一问题是我仍然更喜欢 MacPorts,而且我讨厌它们互相踩脚。感谢您的详细回答:)

以上是关于在不需要 Homebrew 的情况下在 macOS 上安装 Vapor的主要内容,如果未能解决你的问题,请参考以下文章

解决在macOS下安装homebrew出现port 443: Connection refused的情况

如何在不需要自定义库的情况下在 Google Colabs 上使用 Selenium IDE,例如科拉?

如何在不重新启动的情况下在 Express 上重新加载一个文件?

如何在不使用渐变维度的情况下在维度中创建数据历史记录?

如何在不使用完成块的情况下在动画后执行代码?

如何在不使用滞后的情况下在偏移量旁边显示一列值