翻译自:How to Install Swift and Vapor on Ubuntu 16.04

介绍

Swift是Apple开发的一种编程语言,特点是快,安全和现代化,它有一个支持语言的庞大社区。Swift主要用于开发iOS和Mac OS应用程序,但从Swift 3开始,您也可以将其用于服务器端应用程序开发。

Vapor是一个流行的服务器端Swift Web框架,和Swift一样,Vapor也有快速和现代化的特点,它支持许多在其他编程语言的Web框架中有的功能。

在本指南中,您将在Ubuntu 16.04上安装Swift和Vapor,然后使用Vapor的模板创建一个简单的Web应用程序来测试您的设置。

准备工作

学习本教程,你需要准备以下内容:

1.一个非root用户有sudo权限的Ubuntu 16.04服务器。可以通过学习如何使用我们的初始化服务器设置指南进行设置。

2.服务器需要安装Git。Git应该已经安装在Ubuntu 16.04上,但是如果没有的话,运行sudo apt-get install git进行安装

第一步-安装Swift

要构建和运行Vapor Web应用程序,首先需要安装Swift。

首先,确保您的系统上有最新的软件包列表:

$ sudo apt-get update

然后安装Swift的必需的软件包,其中包括clang和一些Python 2.7组件

$ sudo apt-get install clang libicu-dev libpython2.7

之后,去下载最新的Swift二进制文件,你可以从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'

输出结果:

...
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)

密钥导入之后,去下载对应Swift版本的签名文件:

$ 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

验证结果:

gpg: 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

您可能会看到一个像这样的警告:

gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.

这意味着你导入的Swift key还没有被信任,或者由你或者你在你的钥匙圈中安装的其他key明确的。这样的警告您可以忽略,但是,如果出现一些不同的错误(error),则应重新下载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

在文件末尾添加:

$ export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"

保存并退出。

验证swift是否正确安装,运行一下swift命令即可:

$ swift

看到的是Welcome to …,这表明swift已经正确安装

Welcome to Swift version 4.0 (swift-4.0-RELEASE). Type :help for assistance.
  1>

可以进一步去检查swift的一些简单的功能, 输入1到5之间的所有整数求和的程序(在每行之间以回车隔开):

var x = 0
for i in 1...5 { 
    x += i 
} 
x

REPL将计算结果:

$R0: Int = 15

使用Ctrl+D退出Swift REPL。接下来我们准备安装Vapor

第二步 — 安装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已经安装成功

✅ Compatible with Vapor 2

现在Swift和Vapor都已经安装,就可以创建你的第一个Vapor应用程序啦。

第三步-创建Vapor应用程序

要创建我们的应用程序,这里我们将使用Vapor默认提供的模板,我们可以通过Vapor提供的Web模板创建面向用户的Web应用程序。

这个模板是基于Git,并且已经使用你的名字和电子邮件地址来配置好了,如果你没有Git或者没有配置完成,你可能会看到一个错误消息,让你配置Git。您可以忽略此消息,或者执行这些命令来提供您的详细信息:

$ git config --global user.email "your_email@example.com"
$ git config --global user.name "Your Name"

要从此模板创建Web应用程序,执行以下命令

$ vapor new demo --template=web

此脚本使用你指定的名称在新的目录中生成一个新应用程序

执行结果:

Cloning 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应用程序,你可以使用Vapor新demo提供的api模板与--template = api, 可以看看网页模板api模板的源代码,看看它们是如何工作的,接下来我们运行刚刚创建的应用程序,并实际去看一看。

第四步-编译并运行Vapor应用程序

Swift应用程序必须要编译,和Python或Ruby应用程序不一样,也就是说在你运行你的Vapor应用程序之前,你必须运行一个构建过程。

首先,切换到新创建的demo文件夹:

$ cd demo

然后执行 vapor build 命令编译vapor应用程序

$ vapor build

第一次构建应用程序时,程序将获取一些依赖关系,它会缓存这些依赖关系并在之后构建的过程中不再获取,以便构建过程更快。

构建过程完成后,使用以下命令运行应用程序

$ vapor run serve

服务器将启动,输出显示:

Running 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的更多信息,请查看他们的文档