はじめに
ラズパイ(Raspberry Pi OS)に Vapor をいれようとして失敗した話です。。。
失敗した話なので特にお役には立たないかも知れないです。
こちらの記事を参考にしました。
Installing Vapor (and Swift) on the Raspberry Pi
Swift インストール
Swift のインストールはこちらを参考。
Vapor インストール
Vapor はサーバーサイドの知識があまりなくても Swift でサーバーサイド API の開発ができるらしいです。
参考:【Server-side-Swift】【Vapor】iOSアプリエンジニアが挑戦する初めてのサーバーサイド【勉強会レポ】
-
SSH 接続する。
-
下記コマンドで Swift をインストールする。
1234567891011121314# libssl-devのインストール$ sudo apt install libssl-dev# vapor/toolboxのtar.gzファイルダウンロード$ wget https://github.com/vapor/toolbox/archive/18.0.0-beta.27.tar.gz# tar.gzファイルの解凍$ tar zxvf 18.0.0-beta.27.tar.gz# 解凍したディレクトリに移動$ cd toolbox-18.0.0-beta.27# Package.swift編集$ vim Package.swift -
i と入力し入力モードにする。
-
下記のように swift-nio と console-kit を書き換える。
12345678// 省略dependencies: [.package(url: "https://github.com/apple/swift-nio.git", .branch("main")), // <- ここ修正.package(url: "https://github.com/jpsim/Yams.git", .branch("master")),.package(url: "https://github.com/tanner0101/mustache.git", .branch("master")),.package(url: "https://github.com/vapor/console-kit.git", from: Version(4, 0, 0, prereleaseIdentifiers: ["beta", "2.3"])), // <-ここ修正],// 省略 -
Sources/VaporToolbox/exec.swift を編集する(オプショナルどうこうのエラーがでるので。。。)。
12# exec.swift編集$ vim Sources/VaporToolbox/exec.swift -
i と入力し入力モードにする。
-
下記のように
fileActions
を暗黙的なオプショナルに書き換える。12345// 省略func exec(_ program: String, _ arguments: [String]) throws {var pid = pid_t()var fileActions: posix_spawn_file_actions_t! // ここ// 省略 -
下記コマンドでツールをビルドする(割と時間かかります)。
12345# ツールのビルド$ swift build -c release# /usr/local/binにコピー$ sudo cp .build/release/vapor /usr/local/bin/vapor
vapor/tool は最新版(18.2.2)を入れると下記のエラーが出たのでとりあえず通った 18.0.0-beta.27 を入れました。
1 |
using Swift tools version 5.2.0 but the installed version is 5.1.0 |
これで必要そうなものは一通り入ったはずです。
プロジェクト作成
Vapor プロジェクトを作成します。
-
下記コマンドを実行する。
1234567891011# プロジェクト作成$ vapor new VaporTest# ディレクトリに移動$ cd VaporTest# LinuxMain.swift必要らしいので記載$ echo -e "import XCTest\n@testable import AppTests\n\nXCTMain([\n testCase(AppTests.allTests),\n])" | tee Tests/LinuxMain.swift# ビルド(失敗)$ vapor build
上記をやってみた結果プロジェクトは作成できましたがビルドに失敗します。。。
色々調べた結果参考記事をもう一度みてみると。。。
I started by trying to do all of this under Raspbian, since that should be your default for Raspberry Pi projects. Sadly, there was some kind of deep incompatibility in libunwind when trying to build the Vapor toolbox, and after a number of attempts that didn’t include re-building system libraries, I decided to switch to Ubuntu, since that’s what Swift-arm was directly available for anyway. I went with 18.04 LTS, but feel free to experiment.
はい!なんか Rasbian だとだめっぽいことが書いていました!!
おわりに
情報元の話はちゃんと読みましょう!!次は Ubuntu をインストールして試してみたいと思います!
Vapor 動かす方法はなんかありそうです(よくわかりませんでしたが。。。)。
参考:SwiftのみでIoT! Raspberry Pi Zeroでサーボを動かすサーバーを立ててiPhoneから制御する
参考
- Installing Vapor (and Swift) on the Raspberry Pi
- SwiftのみでIoT! Raspberry Pi Zeroでサーボを動かすサーバーを立ててiPhoneから制御する
- Raspberry Pi で Swift を使えるようにする【Swift 5】
- 【Server-side-Swift】【Vapor】iOSアプリエンジニアが挑戦する初めてのサーバーサイド【勉強会レポ】
コメント
There is certainly a lot to find out about this topic. I really like all the points you made. Olive Rafi Timmons
I enjoy the efforts you have put in this, thanks for all the great posts. Camala Garfield Nuncia
Im thankful for the article post. Thanks Again. Really Cool. Cindy Frederich Jaan
There is definately a great deal to find out about this topic. I love all of the points you have made. Leela Hendrick Addam
Hi, after reading this amazing post i am too happy to share my experience here with friends. Hedi Lindy Crain
Good luck to your blog as I continue to follow regularly. Lissa Galen Jobey
There is clearly a bunch to realize about this. I assume you made various nice points in features also. Barby Jecho Litt
Wohh just what I was looking for, thank you for putting up. Tansy Sonnie Monagan
Gaia1956
Gaia1956
Gaia1956
Gaia1956
Gaia1956
Gaia1956