搭建Linux(Ubuntu)系统下的Differential Datalog运行环境

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 changeshtml

DDlog是一种自底向上,增量式,基于内存的类型化Datalog引擎,它很是适合编写响应输入更改而增量更新其输出的程序。目前官方说明文档介绍的安装方式,只在Linux和maxOS上通过了验证,未介绍Windows平台下运行环境搭建的方法。最近由于学习须要,本身在Liunx(Ubuntu 18.04) 系统下,通过一番折腾,终于把编译运行环境搞定,这里作个记录。python

官方文档-Installation git

主要依赖Haskell 编译环境和对应的stack管理工具,以及rust编译环境github

推荐方案:electron-ssr 访问外网 + 执行官方安装脚本。若是不能访问外网,能够考虑修改安装脚本,将下载源改为 tuna 源或 ustc 源,可是考虑到编译运行环境的依赖关系较为复杂,此方法若非万不得已,仍是不要用了,费时费力,浪费感情!(良心建议~)segmentfault

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

相关文章
相关标签/搜索