实践 :eosio编译安装

最开始时候在centOS7上安装,很不顺畅,遇到很多困难,可能是自己对linux不够了解,最后还是放弃了,选择了ubuntu16.04LTS 容易好多,但是还是自己编译安装了boost和gcc,
之后换了Ubuntu18.04,阻力就更小了,不知是eosio新版本的功劳,还是ubuntu18软件源可以apt-get更新的gcc版本,总之是要顺利好多
来分享一下我的安装步骤

我采用源码编译安装,有修改eosio源代码需求的亲可以选择这种安装方式,现在eosio已经发布了v1.5.0的binary版本下载下来安装到系统中也可以,只是研究一下合约开发的亲为了追求效率可以选择第二种安装方式

好,开始吧,我的目标环境是Ubuntu 18.04.1 LTS(在Ubuntu16.04LTS上面也成功安装过),eosio版本1.5.0,计算机内存不是问题,我用2G内存的机器也成功安装过,但是还是8G左右比较好,要不真是很慢很卡,如果你没有达到eosio要求的配置可以改动下脚本就可以顺利通过编译了(比如我是找到eosio_build_ubuntu.sh,找到限制内存大小的条件,注释一句exit就可以了,大家自己找到,通过log输出来搜索源码就可以定位)

1.下载源代码

git clone …不解释,记得要把submodules也都下载下来

2. 进入eos根目录,执行./eosio_build.sh脚本

如果需要gdb调试程序的话,执行 ./eosio_build.sh -o Debug
记得要用root权限哦,脚本首先检测eosio依赖的东东有没有安装,没有的话会帮你下载安装,好方便的说,
我也遇到了些小问题,
比如这种

E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) 
E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?

解决办法在这里
然后就静静地观赏它自动下载编译安装gcc7.3 boost mongodb LLVM clang一类东西,有的时候可能是由于网络条件不太好,会下载失败(记得mongodb很容易下载失败)导致脚本出错退出,没关系,只要重复执行./eosio_build.sh就可以了,多试几次
依赖的东西安装齐全了就可以编译eosio本尊了
看到下面的图画就代表你成功了
实践 :eosio编译安装_第1张图片

3. 执行./eosio_install.sh

主要就是把eosio相关的可执行,库什么的放到/usr/local/eosio/bin 和/usr/local/eosio/lib下面,在ENV path中可以找到这些东东,命令行工具会用起来比较方便吧

4. 大功告成

官方的推荐步骤还有一个测试安装的过程,不太记得清楚了,大体好像是执行一系列python脚本来检测eosio到底装得棒不棒,耗时相当的长,我记得有约40个检测项目,至少要1个多小时,而且很可能有某几个测试项目无法通过,比如我以前mongodb有关的测试项目就没通过,但是还是可以正常用的好好的,所以我的建议就是不要运行那个测试脚本了,我也只是第一次安装时候运行了,以后再也没有执行过,而且我也一直没有用到eosio的芒果DB

5.其它注意事项

编译脚本会检查系统能并行处理的作业(job)数量,我安装过的有两台机器上获取到的数目是0(可能与CPU核心数量少有关),这样的话执行“ make -j0 ”会出错,把脚本中所有的make -j${jobs} 改成 make 就可以解决。

内存1G的编译机会出现“g++: internal compiler error: Killed (program cc1plus)”错误,采用这个方法给系统配置swap分区的话就可以编得过了(不推荐在低配的机器上安装,我在1G内存的CentOS7阿里云服务器上光编译就用去了48小时)

还有就是mongo_db_plugin好像没有什么用(至少我是一直没有用到),可以不用编译,把下图示的 -DBUILD_MONGO_DB_PLUGIN置为false就可以,这段脚本位于eosio_build.sh
不编译mongodb_plugin
如果用不着mongo db的话,eosio依赖的mongo db 和驱动都不需要安装了,可以节约一些时间

我们的DApp 在EOSIO中的工作方式:
实践 :eosio编译安装_第2张图片
它就是一个非常不便于维护的分布式数据库,还浪费存储空间,可以应用的情境非常有限…
不过它是很好的c++源码库,是学习boost, openssl, c++11, websocket++的好资料

你可能感兴趣的:(EOS)