如何在Ubuntu16.04上安装Swift和Vapor
介绍
Swift 是来自 Apple 的一种编程语言。 它快速、安全、现代,并且拥有庞大的社区支持该语言。 Swift 主要用于开发 iOS 和 macOS 应用程序,但从 Swift 3 开始,您也可以将其用于服务器端应用程序开发。
Vapor 是一个流行的服务器端 Swift Web 框架。 与 Swift 一样,Vapor 既快速又现代,它支持您将在其他编程语言的 Web 框架中看到的许多功能。
在本指南中,您将在 Ubuntu 16.04 上安装 Swift 和 Vapor。 然后,您将通过使用 Vapor 的模板之一创建一个简单的 Web 应用程序来测试您的设置。
先决条件
要遵循本教程,您将需要:
- 一台 Ubuntu 16.04 服务器,非 root 用户可以访问
sudo
。 您可以通过我们的 初始服务器设置指南 了解如何进行设置。 - Git 安装在您的服务器上。 Git 应该已经安装在 Ubuntu 16.04 上,但如果没有,请运行
sudo apt-get install git
。
第 1 步 — 安装 Swift
为了能够构建和运行 Vapor Web 应用程序,您首先需要安装 Swift。
首先,确保您的系统上有最新的软件包列表:
sudo apt-get update
然后安装 Swift 的必备组件,包括 clang
和一些 Python 2.7 组件:
sudo apt-get install clang libicu-dev libpython2.7
之后,下载最新的 Swift 二进制文件。 这无法通过 apt
获得,但您可以从 Swift 下载页面 手动下载,或使用 wget
下载:
wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz
接下来,验证您的下载没有损坏或被篡改。 将 Swift 的 PGP 密钥导入您的密钥环,用于验证签名文件:
gpg --keyserver hkp://pool.sks-keyservers.net \ --recv-keys \ '7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD' \ '1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F' \ 'A3BA FD35 56A5 9079 C068 94BD 63BC 1CFE 91D3 06C6' \ '5E4D F843 FB06 5D7F 7E24 FBA2 EF54 30F0 71E1 B235'
你会看到这个输出:
Output[... gpg: key 412B37AD: public key "Swift Automatic Signing Key #1 <swift-infrastructure@swift.org>" imported gpg: key 21A56D5F: public key "Swift 2.2 Release Signing Key <swift-infrastructure@swift.org>" imported gpg: key 91D306C6: public key "Swift 3.x Release Signing Key <swift-infrastructure@swift.org>" imported gpg: key 71E1B235: public key "Swift 4.x Release Signing Key <swift-infrastructure@swift.org>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 4 gpg: imported: 4 (RSA: 4)
导入密钥后,下载您下载的版本的签名文件:
wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig
要验证此签名文件,请运行下一个命令,该命令会生成以下输出:
gpg --verify swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig
你会看到这个输出:
Outputgpg: assuming signed data in `swift-4.0-RELEASE-ubuntu16.04.tar.gz' gpg: Signature made Wed 20 Sep 2017 01:13:38 AM UTC using RSA key ID 71E1B235 gpg: Good signature from "Swift 4.x Release Signing Key <swift-infrastructure@swift.org>" Primary key fingerprint: 5E4D F843 FB06 5D7F 7E24 FBA2 EF54 30F0 71E1 B235
您可能会看到如下所示的警告:
Outputgpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner.
这意味着您导入的 Swift 密钥尚未受您或您在密钥环中安装的其他密钥的明确信任。 您可以放心地忽略这些消息。 但是,如果您遇到不同的错误,您应该重新下载 Swift 二进制文件。
现在,我们可以实际安装 Swift。 执行以下命令以提取您之前下载的二进制文件:
tar xzf swift-4.0-RELEASE-ubuntu16.04.tar.gz
然后将 Swift 工具链添加到您的路径中,以便您可以在系统范围内运行 swift
命令:
export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"
输入此命令只会将 swift
命令添加到当前 shell 会话的路径中。 要确保它在以后的会话中自动添加,请将其添加到 .bashrc
文件中。
打开.bashrc
文件:
nano ~/.bashrc
在文件末尾添加以下行
~/.bashrc
. . . export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"
保存并退出文件。
为确保一切正常,请运行 swift
命令:
swift
您将看到 Swift REPL,这表明一切正常。
OutputWelcome to Swift version 4.0 (swift-4.0-RELEASE). Type :help for assistance. 1>
让我们仔细检查一切是否正常。 输入这个程序,它将 1 到 5 之间的所有整数相加。 在 REPL 中输入每一行,在每一行之后按 ENTER
键:
var x = 0 for i in 1...5 { x += i } x
REPL 将显示计算结果:
Output$R0: Int = 15
使用 CTRL+D
退出 Swift REPL。 现在 Swift 已经安装好了,我们准备安装 Vapor。
第 2 步 — 安装 Vapor
要安装 Vapor,您将从 Vapor 开发人员处下载并执行一个脚本,该脚本将 Vapor 的官方包存储库添加到您服务器的包列表中。 然后您将使用 apt
安装最新版本的 Vapor。
执行从其他人下载的脚本而不先检查它们通常不是一个好的安全实践。 首先,使用带有 -o
开关的 curl
命令将安装脚本下载到您的服务器以指定本地文件名:
curl -sL apt.vapor.sh -o apt.vapor.sh
使用 less
命令检查此脚本:
less apt.vapor.sh
检查安装脚本的内容后,执行脚本以添加存储库:
bash ./apt.vapor.sh
系统将提示您输入 sudo 密码。 输入它,以便脚本可以添加新的包源。
脚本完成后,您可以安装 vapor
包及其依赖项。
sudo apt-get install vapor
您可以使用 Vapor 开发人员提供的另一个脚本来验证 Vapor 是否已成功安装。 再次下载脚本,检查它,然后执行它:
curl -sL check.vapor.sh -o check.vapor.sh less check.vapor.sh bash ./check.vapor.sh
您将看到以下输出,表明 Vapor 已成功安装:
Output✅ Compatible with Vapor 2
现在 Swift 和 Vapor 都已安装,您可以创建您的第一个 Vapor 应用程序。
第 3 步 — 创建一个 Vapor 应用程序
为了创建我们的应用程序,我们将使用 Vapor 默认提供的模板。 web
模板可让您创建面向用户的 Web 应用程序。
此模板假定您使用的是 Git,并且您已使用您的姓名和电子邮件地址对其进行了配置。 如果还没有,您可能会看到一条错误消息,告诉您配置 Git。 您可以放心地忽略此消息,或执行以下命令来提供您的详细信息:
git config --global user.email "your_email@example.com" git config --global user.name "Your Name"
要从此模板创建 Web 应用程序,请执行以下命令:
vapor new demo --template=web
该脚本使用您指定的名称在新目录中生成一个新应用程序:
OutputCloning Template [Done] Updating Package Name [Done] Initializing git repository [Done] ... _ __ ___ ___ ___ \ \ / / /\ | |_) / / \ | |_) \_\/ /_/--\ |_| \_\_/ |_| \ a web framework for Swift Project "demo" has been created. Type `cd demo` to enter the project directory. Use `vapor cloud deploy` to host your project for free! Enjoy!
如果您想创建 API 而不是完整的 Web 应用程序,可以将 api
模板与 vapor new demo --template=api
一起使用。
让我们运行我们的应用程序并查看它的实际效果。
第 4 步 — 编译并运行 Vapor 应用程序
Swift 应用程序必须经过编译,这与 Python 或 Ruby 中的应用程序不同。 这意味着在你可以运行你的 Vapor 应用程序之前,你必须运行一个构建过程。
首先,切换到新建的demo
文件夹:
cd demo
然后执行 vapor build
命令编译 Web 应用程序。
vapor build
第一次构建应用程序时,该过程将获取一些依赖项。 它将缓存这些并在将来跳过此步骤,这将使构建过程更快。
构建过程完成后,使用以下命令运行应用程序:
vapor run serve
服务器将启动,显示以下输出:
OutputRunning demo ... ... Starting server on 0.0.0.0:8080
您会看到有关不安全哈希和密码密钥的警告,但您可以在尝试演示时忽略它们。 当您构建自己的应用程序时,请按照警告提供的说明进行操作。
打开您的网络浏览器并访问 http://your_server_ip:8080
以查看正在运行的 Vapor 应用程序的欢迎页面。
结论
Swift 社区正在稳步发展,有很多参与方式。 虽然 Swift 主要用于构建原生 iOS 和 macOS 应用程序,但 Linux 平台上的 Swift 正在兴起。 您可以通过阅读 Apple 的免费电子书 The Swift Programming Language 来了解更多关于 Swift 的信息。 要了解有关 Vapor 的更多信息,请查看他们的 文档 。