1. 程式人生 > >編譯並部署Wire-server (Haskell Tools related)

編譯並部署Wire-server (Haskell Tools related)

Wire-Server 介紹

Wire-Server is a open source code for wire server, here is the download path here .

編譯步驟

下載原始碼並放在~/wireserver 下,解壓。

安裝Haskell Stack Tool

wget -qO- https://get.haskellstack.org/ | sh

root許可權下,完成安裝stack命令(如果網路使用代理,需要關閉代理)。

編譯wire-server

cd ~/wireserver ,執行

make

這個過程的下載過程比較漫長,需要耐心等待。

在make的過程中會國內使用者遇到下載依賴項的問題:

Selected mirror https://s3.amazonaws.com/hackage.fpcomplete.com/                                 
Downloading timestamp                                                                            
Downloading snapshot                                                                             
Downloading mirrors                                                                              
Cannot update index (no local copy)                                                              
Downloading index                                                                                
Updating package index Hackage (mirrored at https://s3.amazonaws.com/hackage.fpcomplete.com/) ...

國內訪問 https://s3.amazonaws.com/hackage.fpcomplete.com/ 有問題,可能被牆了,所以根據這個連結替換了清華的源。
~/.stack/config.yaml 下新增下面設定:

package-indices:
- name: Tsinghua
  download-prefix: https://mirrors.tuna.tsinghua.edu.cn/hackage/package/
  http: https://mirrors.tuna.tsinghua.edu.cn/hackage/00-index.tar.gz
setup-info: "http://mirrors.tuna.tsinghua.edu.cn/stackage/stack-setup.yaml"
urls: latest-snapshot: http://mirrors.tuna.tsinghua.edu.cn/stackage/snapshots.json lts-build-plans: http://mirrors.tuna.tsinghua.edu.cn/stackage/lts-haskell/ nightly-build-plans: http://mirrors.tuna.tsinghua.edu.cn/stackage/stackage-nightly/

重新執行make.

耐心等待…

  • 在編譯過程中遇到的另一個問題就是protoc 找不到的情況:
    參照https://google.github.io/proto-lens/installing-protoc.html
PROTOC_ZIP=protoc-3.3.0-osx-x86_64.zip
curl -OL https://github.com/google/protobuf/releases/download/v3.3.0/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
rm -f $PROTOC_ZIP
  • 安裝icu
yum install libicu-devel geoip geoip-devel snappy-devel openssl

執行通過。