はじめに
前回 Ubuntu 20.10 で Vapor を入れようとして失敗したので今回は下記のサイトと色々バージョンを合わせるため Ubuntu 18.04.5 LTS でやってみました。
Installing Vapor (and Swift) on the Raspberry Pi
結果。。。失敗しました。。。
SD 準備
SD に必要なものを入れます。
-
SD フォーマット (FAT32) する。
下記のコマンドで disk を確認してフォーマットします。12345# 対象のdisk確認$ diskutil list# 対象のdiskをフォーマット$ diskutil eraseDisk MS-DOS RPI /dev/disk2私の環境では disk2 が SD でしたが適宣書き換えてください。しっかり確認しましょう!(他の消してしまうとめんどくさいことになります。。。)
-
Raspberry Pi Imager を Mac にインストールする。
-
Raspberry Pi Imager を起動する。
-
下記から ubuntu-18.04.5-preinstalled-server-arm64+raspi3.img.xz をインストールする。
http://cdimage.ubuntu.com/releases/bionic/release/
*OS のインストール・ダウンロードは自己責任でお願いします! -
Use custom でダウンロードしたイメージを選択する。
-
CHOOSE SD CARD でフォーマットした SD カードを選択する。
-
WRITE で書き込む。
SD が system-boot という名前になっているはずです。 -
SD カードを挿し直します。
-
ルートディレクトリに ssh という空ファイルを作成する。
1$ touch /Volumes/system-boot/ssh -
network-config の wifis の部分を下記のように書き換える(Wifi 設定と IP アドレス固定)。
123456789101112wifis:wlan0:dhcp4: falseoptional: trueaddresses: [固定したいIP/24]gateway4: ルーターのIPnameservers:addresses: [ルーターのIP, 8.8.8.8, 8.8.4.4]search: []access-points:"SSID":password: "パスワード"
ラズパイ設定
ラズパイの設定をしていきます。
- ラズパイに SD を挿す。
- ラズパイにディスプレイ、キーボードを接続する。
- ラズパイに電源ケーブルを接続する。
- login で ID とパスワードを入力する(ubuntu/ubuntu)。
- パスワードを変更する。
- reboot する(初回は Wifi につながらない?)。
SSH 接続
Mac からラズパイに SSH 接続します!!
-
ターミナルで下記コマンドを実行する。
1$ ssh ubuntu@固定したIPアドレス -
下記のように出たら /.ssh/known_hosts を修正する。
12345@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$ ssh-keygen -f "/Users/ユーザー名/.ssh/known_hosts" -R "固定したIPアドレス" -
ラズパイ設定で設定したパスワードを入力し Enter。
成功すると下記のような表示になる。1ubuntu@ubuntu:~ $ -
接続できたらとりあえずパッケージをアップデートしておきます。
1$ sudo apt update && sudo apt upgrade -y
下記のようなエラーが出たので Ubuntu 18.04でlockファイル関連の不具合を参考に関連ファイルを削除しました。
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
SSH 接続を終了したい場合は下記コマンド。
1 |
$ exit |
ラズパイをシャットダウンする場合は下記コマンド(電源をいきなり切ってはいけません!)。
1 |
$ sudo shutdown -h now |
Swiftインストール
下記コマンドで Swift をインストールする!
1 2 |
curl -s https://packagecloud.io/install/repositories/swift-arm/release/script.deb.sh | sudo bash sudo apt install swift5 |
swift --version を実行すると下記のように出ました!!
1 2 |
Swift version 5.1.5 (swift-5.1.5-RELEASE) Target: aarch64-unknown-linux-gnu |
Vaporインストール
Installing Vapor (and Swift) on the Raspberry Pi を参考に入れていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# libssl-devのインストール $ sudo apt install libssl-dev # vapor/toolboxのtar.gzファイルダウンロード $ wget https://github.com/vapor/toolbox/archive/18.0.0-beta.26.tar.gz # tar.gzファイルの解凍 $ tar zxvf 18.0.0-beta.26.tar.gz # 解凍したディレクトリに移動 $ cd toolbox-18.0.0-beta.26 # Package.swift編集 $ vim Package.swift |
エラーがでるので Package.swift を下記のように修正します。
1 2 3 4 5 6 7 8 |
// 省略 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: "4.0.0-beta.2.3"), // <-ここ修正 ], // 省略 |
ビルドして /usr/local/bin にコピーします。
1 2 3 4 5 |
# ツールのビルド $ swift build -c release # /usr/local/binにコピー $ sudo cp .build/release/vapor /usr/local/bin/vapor |
Vaporプロジェクト作成
1 2 3 4 5 6 |
# 作成時に色々いわれるので設定しておきます $ git config --global user.email "you@example.com" $ git config --global user.name "Your Name" # プロジェクト作成 $ vapor new VaporTest |
Fluent と Leaf はとりあえず no にして作成!!
build 時にエラーが出るので色々修正します。
1 2 3 4 5 6 7 8 |
$ cd VaporTest # LinuxMain.swift必要らしいので記載(ないと下記エラーがでる) # error: missing LinuxMain.swift file in the Tests directory $ echo -e "import XCTest\n@testable import AppTests\n\nXCTMain([\n testCase(AppTests.allTests),\n])" | tee Tests/LinuxMain.swift # Package.swift編集 $ vim Package.swift |
Package.swift を下記のように編集します。
1 2 3 4 |
// swift-tools-version:5.1 // ここ // 省略 .package(url: "https://github.com/vapor/vapor.git", from: "4.0.0-beta.3.15"), // ここ // 省略 |
これでエラーは消えたのでビルド!!
1 |
$ vapor build |
結果、下記で停止。。。。
Building project...
おわりに
vapor build で Trace/breakpoint trap (core dumped) にはならなくなったけど結局起動できず。。。
もうむりなのか。。。
コメント
I got what you intend,bookmarked, very decent website.
I am incessantly thought about this, thanks for posting.
I reckon something truly special in this website.
Some really great info, Gladiola I detected this. I’m not spaming. I’m just saying your website is AWSOME! Thank you so much! Please vist also my website.