DDlog is a bottom-up, incremental, in-memory, typed Datalog engine. It is well suited for writing programs that incrementally update their output in response to input changes
DDlog是一種自底向上,增量式,基于記憶體的型別化Datalog引擎,它非常適合撰寫回應輸入更改而增量更新其輸出的程式,目前官方說明檔案介紹的安裝方式,只在Linux和maxOS上經過了驗證,未介紹Windows平臺下運行環境搭建的方法,最近因為學習需要,自己在Liunx(Ubuntu 18.04) 系統下,經過一番折騰,終于把編譯運行環境搞定,這里做個記錄,
官方檔案-Installation
主要依賴Haskell 編譯環境和對應的stack管理工具,以及rust編譯環境

推薦方案:electron-ssr 訪問外網 + 執行官方安裝腳本,如果不能訪問外網,可以考慮修改安裝腳本,將下載源改成 tuna 源或 ustc 源,但是考慮到編譯運行環境的依賴關系較為復雜,此方法若非萬不得已,還是不要用了,費時費力,浪費感情!(良心建議~)
1. 配置、使用electron-ssr
由于 electron-ssr 開源專案的作者洗掉了該專案github主頁的內容,所以使用搜索引擎時,可以考慮從一些用戶備份的github倉庫下載,Ubuntu系統可以選擇deb 或 AppImage 格式的安裝包,
electron-ssr下載地址: https://github.com/qingshuisiyuan/electron-ssr-backup/releases
AppImage格式的安裝包,使用 chmod a+x electron-ssr.AppImage 命令授予運行權限,然后運行 /electron-ssr.AppImage 命令,即可執行客戶端,根據引導,配置服務器節點,和小飛機一樣,
由于electron-ssr采用Python腳本作為后端,所以在啟動electron-ssr之前,要確保Python環境配置好,如果python環境沒配好,執行electron不會報錯,但是使用 netstat -lntp 查看,會發現代理埠沒有被打開(使用netstat -lntp命令之前要先安裝net-tools安裝包),
在終端下檢查python命令是否存在,如果python命令不存在,而python3命令存在,可以執行 sudo ln /usr/bin/python3 /usr/bin/python 命令,用一個軟鏈接把python3 鏈接到 python 上,這樣系統查找 python的時候,就直接可以使用python3了;如果python3命令也沒有,就證明系統沒有任何python環境,需手動安裝,
electron-ssr環境配置好后,在瀏覽器(Ubuntu默認是Firefox)搜索殷勤搜索"ip"關鍵詞,即可查看本機IP服務商的位置,如下圖所示

若IP服務商的位置仍是本地,需要進一步對瀏覽器配置網路代理,在首選項-> 網路設定中配置結果如下,隨后應該就能正常使用瀏覽器上外網,

而我們在終端使用腳本安裝,需要在終端使用代理,可以使用 export http_proxy="IP:PORT" 方式對當前終端設定代理,其中代理資訊IP:PORT在小飛機的選單欄可以找到,然后使用 curl www.google.com 命令,檢查終端能否成功使用代理,
2. 使用官方安裝腳本來配置編譯運行環境
安裝腳本是專案倉庫中的一部分,因此首先需要將專案下載到本地,強烈建議使用 git clone 方式,而非下載壓縮包方式,后續在build程序中,會檢查專案目錄中的git資訊,如果是以壓縮包方式下載,process 29 會build失敗,
專案檔案比較大,git clone 程序發生 RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length 錯誤;
參考解決辦法:https://blog.csdn.net/qq_34121797/article/details/79561110?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
解決了網路問題,親測后面的安裝程序較為順利!為了加快stack的下載速度,可以修改鏡像源為中科大或者清華大學,詳見 http://mirrors.ustc.edu.cn/help/stackage.html
3,使用ddlog
撰寫一個playpen.dl的sample, 官方檔案介紹了兩種測驗方式,但是親測之后,發現使用 stack test --ta '-p playpen 測驗框架依然會遇到網路訪問問題,不要慌,前面的努力沒白費,使用 ddlog -i playpen.dl -L../../lib 是可以順利編譯的,希望到了這一步的童靴不要放棄啊!(能倒騰到這一步的,我反正血槽已干…)
最后,就是萬事具備,只剩寫代碼了,頭禿啊!
參考鏈接
https://zhuanlan.zhihu.com/p/31635905
http://abloz.com/tech/2019/08/19/rust-install-cn/
https://segmentfault.com/a/1190000016475279
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/14275.html
標籤:其他
