Ubuntu16.04にSwiftとVaporをインストールする方法
序章
Swift は、Appleのプログラミング言語です。 それは速く、安全で、そして現代的であり、そしてそれは言語を支持する巨大なコミュニティを持っています。 Swiftは主にiOSおよびmacOSアプリケーションの開発に使用されますが、Swift 3以降、サーバー側のアプリケーション開発にも使用できます。
Vapor は、人気のあるサーバー側のSwiftWebフレームワークです。 Swiftと同様に、Vaporは高速で最新のものであり、他のプログラミング言語のWebフレームワークに見られる機能の多くをサポートしています。
このガイドでは、Ubuntu16.04にSwiftとVaporをインストールします。 次に、Vaporのテンプレートの1つを使用して簡単なWebアプリケーションを作成することにより、セットアップをテストします。
前提条件
このチュートリアルに従うには、次のものが必要です。
sudo
にアクセスできるroot以外のユーザーがいる1つのUbuntu16.04サーバー。 これを設定する方法は、初期サーバー設定ガイドで学ぶことができます。- サーバーにGitがインストールされています。 GitはすでにUbuntu16.04にインストールされているはずですが、インストールされていない場合は、
sudo apt-get install git
を実行してください。
ステップ1—Swiftのインストール
Vapor Webアプリケーションを構築して実行できるようにするには、最初にSwiftをインストールする必要があります。
まず、システムに最新のパッケージリストがあることを確認します。
- sudo apt-get update
次に、clang
といくつかのPython2.7コンポーネントを含むSwiftの前提条件をインストールします。
- 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 <[email protected]>" imported
gpg: key 21A56D5F: public key "Swift 2.2 Release Signing Key <[email protected]>" imported
gpg: key 91D306C6: public key "Swift 3.x Release Signing Key <[email protected]>" imported
gpg: key 71E1B235: public key "Swift 4.x Release Signing Key <[email protected]>" 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 <[email protected]>"
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
コマンドのみが追加されます。 今後のセッションで自動的に追加されるようにするには、.bashrc
ファイルに追加してください。
.bashrc
ファイルを開きます。
- nano ~/.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
でSwiftREPLを終了します。 Swiftがインストールされたので、Vaporをインストールする準備が整いました。
ステップ2—Vaporのインストール
Vaporをインストールするには、Vaporの公式パッケージリポジトリをサーバーのパッケージリストに追加するスクリプトをVapor開発者からダウンロードして実行します。 次に、apt
を使用して最新バージョンのVaporをインストールします。
一般に、他の人からダウンロードしたスクリプトを最初に検査せずに実行することは、適切なセキュリティ慣行ではありません。 まず、curl
コマンドと-o
スイッチを使用してインストールスクリプトをサーバーにダウンロードし、ローカルファイル名を指定します。
- 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を構成するように指示するエラーメッセージが表示される場合があります。 このメッセージを無視しても問題ありません。または、次のコマンドを実行して詳細を入力してください。
- git config --global user.email "[email protected]"
- 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!
完全なWebアプリの代わりにAPIを作成する場合は、api
テンプレートをvapor new demo --template=api
とともに使用できます。
Webテンプレートのソースコードとapiテンプレートを見て、それらがどのように機能するかを確認してください。
アプリを実行して、実際の動作を見てみましょう。
ステップ4—Vaporアプリケーションをコンパイルして実行します
PythonやRubyのアプリケーションとは異なり、Swiftアプリケーションはコンパイルする必要があります。 つまり、Vaporアプリを実行する前に、ビルドプロセスを実行する必要があります。
まず、新しく作成したdemo
フォルダーに切り替えます。
- cd demo
次に、vapor build
コマンドを実行して、Webアプリケーションをコンパイルします。
- vapor build
初めてアプリケーションをビルドするとき、プロセスはいくつかの依存関係をフェッチします。 これらをキャッシュし、将来このステップをスキップして、ビルドプロセスを大幅に高速化します。
ビルドプロセスが完了したら、次のコマンドを使用してアプリを実行します。
- vapor run serve
サーバーが起動し、次の出力が表示されます。
OutputRunning demo ...
...
Starting server on 0.0.0.0:8080
安全でないハッシュキーと暗号キーに関する警告が表示されますが、デモを試している間は無視してかまいません。 独自のアプリを作成するときは、警告の指示に従ってください。
Webブラウザーを開き、http://your_server_ip:8080
にアクセスして、動作しているVaporアプリのウェルカムページを確認します。
結論
Swiftコミュニティは着実に成長しており、参加する方法はたくさんあります。 Swiftは主にネイティブiOSおよびmacOSアプリの構築に使用されますが、LinuxプラットフォームでのSwiftは増加傾向にあります。 Swiftの詳細については、Appleの無料の電子書籍である The Swift ProgrammingLanguageを参照してください。 Vaporの詳細については、ドキュメントをご覧ください。