如何在Ubuntu 16.04上安裝Swift和Vapor
介紹
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 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 <[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)
金鑰匯入之後,去下載對應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 <[email protected]>"
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 "[email protected]"
$ 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的更多資訊,請檢視他們的文件。