IPFS开发

准备

gawk不是预安装的,要确保安装;
运行gawk的时候可能还需要yacc;

获取依赖&build

go get github.com/ipfs/go-ipfs

# 这里是ipfs main函数的位置
# 从这里go build就可以build整个工程
cd $GOROOT/src/github.com/ipfs/go-ipfs/cmd/ipfs

go build 2> out.txt                #<--------\ 回 重 直
                                            #| 到 新 到
gawk -f scrpit.gawk out.txt > get.sh        #| 这 运 成
                                            #| 里 行 功
sh get.sh                          #--------/

这里是上面用到的gawk程序;
因为go build的过程中会缺少很多依赖,所以一次go build肯定无法通过,会提示缺少的包;所以这里我写了一个gawk程序,用于收集缺少的依赖,生成一个脚本用于获取依赖;由于依赖还有依赖,运行一次脚本之后仍然无法build成功,所以反复执行这个过程直到所有的依赖都被下载就可以build成功了;

把下面这段程序拷贝到$GOROOT/src/github.com/ipfs/go-ipfs/cmd/ipfs目录下,命名为script.gawk

# scrpit.gawk
BEGIN{
print "# Generated by script.gawk; used for collecting dependencies."
print "# go build 2> temp.txt"
print "# gawk -f script.gawk out.txt > get.sh"
print "# sh get.sh"
print "#"
print "# Created by AprilCal on 2019/5/7."
print ""
}

/"/{
print "echo go get",$5
print "go get",$5
}

在获取依赖的过程中会有警告

go get: warning: modules disabled by GO111MODULE=auto in GOPATH/src;
		ignoring ../../go.mod;

不必理会;如果打开go自带的依赖管理,其他工程目录的特定版本就会被下载到pkg路径下,不便开发;

注意

  • ipfs尤其是libp2p库,还在开发中,master分支上没有稳定版本,有时候master分支上的代码可能不能build成功;需要自己手动调整有问题的git仓库,回退版本;

  • 如果build成功了但是运行失败,很可能是因为没有使用项目里的makefile安装过的原因;

  • 佛了 XP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值