ARM下源碼編譯etcd
etcd由go語言編寫,編譯結果是一個二進制的可執行文件,因此不能跨平臺。網絡上沒有找到ARM直接可用的etcd可執行程序(其實有,只是要積分才能下)。所以考慮在ARM平臺下直接源碼編譯出etcd,需要提前準備ARM下的Go環境。可以直接在go的官網下載arm版本的壓縮包,解壓即可用。
一、 下載etcd源碼
# 可根據自己的需求將3.2.0更換對應版本
wget https://github.com/coreos/etcd/archive/v3.2.0.tar.gz
二、解壓編譯
tar -zxvf etcd-3.2.0.tar.gz
cd etcd-3.2.0
./build
完成後會在bin目錄下生成 etcd
和 etcdctl
的可執行文件
三、運行測試
出現報錯看第四步
cd bin
./etcd -version
# etcd Version: 3.2.0
# Git SHA: GitNotFound
# Go Version: go1.11.10
# Go OS/Arch: linux/arm64
./etcdctl -v
# etcdctl version: 3.2.0
# API version: 2
四、報錯處理
很多情況下,直接執行etcd或者查看版本測試會出現如下錯誤:
2019-06-12 18:17:17.641595 E | etcdmain: etcd on unsupported platform without ETCD_UNSUPPORTED_ARCH=arm64 set.
其實提示很清楚,需要添加對應的環境變量即可:
export ETCD_UNSUPPORTED_ARCH=arm64
完後再執行etcd
程序查看效果