Rust

在 A2hosting 用 AppImage deploy Rust rocket 這個 framework 的 app

Rust 的 Rocket 是一個後端框架 (framework)。除了有靜態型別語言的好處(比如減少runtime error)外,還有一個binary檔包全部,免除裝其他太多 library 或是框架 library 的問題。

因為自己的是網路租用的A2 site hosting 空間(Linux),想說為了物盡其用,所以想要把產生的 web app binary 放在上面執行,但想當然爾,還是缺相依性(空間提供的函式庫版本太舊)。後來想,既然 AppImage 可以包一個執行檔的諸多相依軟體或是函式庫,為何不用之包呢?

以下以放在 /path/to/exampleapp 這個 app 為例,講述我 deploy 的方法。

於 Windows 10 讓 Rust 專案使用 Cairo 和 Harfbuzz函式庫

Cargo.toml 中的 Dependencies 插入如(版本請依最新版而定):

[dependencies]
harfbuzz_rs = "1.2.0"
cairo-rs = "0.14.1"
glib = "0.14.2"

安裝 MSYS2,用該程式的終端機安裝下列程式:

pacman -Sy mingw-w64-i686-cairo mingw-w64-i686-glib2 mingw-w64-i686-harfbuzz

Windows 10 的控制台的「系統>進階系統設定」的「環境變數」的 Path(路徑)附加

C:\msys64\usr\bin</pre>

在編譯命令列中 Powershell 加入這句

$env:PKG_CONFIG_PATH+="C:\msys64\mingw32\lib\pkgconfig"

cargo build 應該就沒問題了。