本人在跑XuperChain的过程中,第一关make就搞了二天,收获很多,现在记录一下,方便后面的兄弟参考。
本人环境:Windows10,ubuntu子系统是20.04.1版本focal版。
XuperChain 版本:v5.2.0 release版本。
官网环境配置
- 操作系统:支持Linux以及Mac OS
- 开发语言:Go 1.12.x及以上
- 编译器:GCC 4.8.x及以上
- 版本控制工具:Git
由于XuperChain是用Go写的,所以Go的安装是必需的,容易出问题的也是Go这里。
特明强调一下:
$GOROOT就是Go的二进制文件所在目录我的是/usr/local/go
$GOPATH就是我们GO项目的开发目录,我的是/work/go xuperChain我是下载在/work/go/src/xuperchain/xuperchain 这里。
我的ubuntu之前有安装过Go是1.10的版本,所以我虽然又下载了1.15.15的版本安装,也指定了GOROOT,GOPATH,但是还是在报了一大堆的 Cannot find package "xxx" in any of ...
如果同学们也出现了类似错误,不用怀疑,这个就是与GO的安装环境有关。
在上图中,报了大量的 Cannot find package "xxx" in any of ...,,同时他报的$GOROOT,$GOPATH也与go env中我设置的值不一样。
我是这么解决的:升级GO版本,同是卸载旧的GO版本。
参考文档: https://github.com/golang/go/wiki/Ubuntu
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go
安装好后,我再执行了 sudo apt-get autoremove
把Go1.0版本卸载掉。我升级的当前版本是GO 1.18版
这步操作完成以后,我再在xuperchain目录下执行
sudo make cleanall
sudo make
就OK了。
重点来了,因为我是在虚拟机里执行的,所以在编译的过程中要下载很多依赖包,速度会有些慢,而且还会超时,连接拒绝等。
所以,我自己直接在powershell中ping了以下域名对应的地址,然后保存到/etc/hosts中去,解决了连接超时,无法下载包的问题。
需要访问资源:科学上网方式备用。
20.205.243.166 github.com
20.205.243.165 codeload.github.com
172.217.27.17 proxy.golang.org
2404:6800:4005:813::2010 storage.googleapis.com
配置好上述地址后,再make我这边就OK了。
另外,我在编译的过程中还出现了一个问题。
XVM_BUILD_MAIN not set ,也会阻止下一步编译。
出现这个问题的时候,根据Github网友的回复:
在 xuperchain/auto/build_xvm.sh 中增加 export XVM_BUILD_MAIN=0 这个即可。我是加在function buildxvm()这个函数前面。
然后再编译,这个问题就消失了。于就是报后面的包找不到问题。再用前面的方法进行了升级,这个图中的Go1.15是一开始使用的版本,升级后就是1.18版本,原来1.10的就完全删除掉了。
PS:
查看ubuntu系统版本
lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
我的是focal版本,所以大家在指定镜像源时要用focal版本的我的是ubuntu20版本的focal版。
修改sources.list文件
$ sudo vim /etc/apt/sources.list
1
ubuntu 20.04
#阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
更新
$ sudo apt-get update
$ sudo apt-get upgrade