侧边栏壁纸
博主头像
Excalibur博主等级

真实自有万钧之力。

  • 累计撰写 25 篇文章
  • 累计创建 14 个标签
  • 累计收到 2 条评论

一文完全解决Ubuntu20.04下源码构建安装IPFS环境

Excalibur
2020-09-02 / 0 评论 / 0 点赞 / 309 阅读 / 2,341 字
温馨提示:
本文最后更新于 2022-04-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

0️⃣ 前言

如果是新装的Ubuntu系统,运行sudo命令输入密码,可能会不成功,所以需要先运行:

sudo passwd

重置密码,即可。

1️⃣ 安装配置Go语言

1️⃣.1️⃣ 下载Go

IPFS是基于Go语言的项目,环境要求go version 1.14+。在Go的官方网站下载最新的版本即可https://golang.org/dl/
可以用以下命令:

wget https://golang.org/dl/go1.14.6.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.14.6.linux-amd64.tar.gz

Tips:

1️⃣.2️⃣ 配置Go环境

  • 在进入用户主目录,并新建名为go的文件夹,在go的文件夹中建立三个子目录(名字必须为srcpkgbin)。创建目录过程如下:
cd ~
mkdir go
cd go
sudo mkdir src
sudo mkdir pkg
sudo mkdir bin
sudo chmod 777 src
sudo chmod 777 pkg
sudo chmod 777 bin
ls -l
  • 配置环境变量,首先输入:
vi ~/.profile
  • 打开用户的环境变量,在最后添加如下内容:
export PATH=$PATH:/usr/local/go/bin 
export GOROOT=/usr/local/go 
export GOPATH=$HOME/go 
export PATH=$PATH:$HOME/go/bin

然后按Esc退出,接着输入:wq,然后输入回车就可以保存退出。

  • 激活配置文件,即输入如下命令:
source ~/.profile
  • 最后验证一下是否成功,输入如下命令查看结果:
go version
go env
  • 但是这样关掉终端,配置就会失效,所以在~/.bashrc中也设置一下:
gedit ~/.bashrc

然后在最后面添加:

export PATH=$PATH:/usr/local/go/bin 
export GOROOT=/usr/local/go 
export GOPATH=$HOME/go 
export PATH=$PATH:$HOME/go/bin

最后再:

source ~/.bashrc

2️⃣ 安装配置IPFS环境

2️⃣.1️⃣ 更新apt-get 并安装 git

  • terminal执行以下语句:
sudo apt-get update
sudo apt-get install git

2️⃣.2️⃣ 下载go-ipfs源码

因为go get国内基本上下载不了,加上镜像的话例如:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go get -u github.com/ipfs/go-ipfs

虽然可以很快地下载,但却下载到了/go/pkg/mod/的目录下,感觉很难受,所以不推荐这种下载方法。

  • 可以采取直接git clone的方法,但是如果直接clone的是github上的源码还是很慢,所以我采取的方法是,先将源码fork到自己的仓库,然后再导入到码云,然后再从码云上clone下来,速度简直快的飞起,可以直接用我的码云上的源码库,版本为ipfs 0.6.0,操作如下:
cd ~
cd go/src
mkdir github.com
cd github.com
mkdir ipfs
cd ipfs
git clone https://gitee.com/ExcaliburAias/go-ipfs.git

当然,也不用非得clonego/src/github.com/ipfs/go-ipfs下面,直接clone到桌面也可以。

2️⃣.3️⃣ 编译go-ipfs源码

· 首先安装make工具,然后安装gcc,最后授予文件权限以及更改go get的源,操作如下:

cd ~
cd go/src/github.com/ipfs/go-ipfs
sudo apt update
sudo apt install make
sudo apt install build-essential
sudo chmod 777 /usr/local/go/bin
sudo chmod 777 /plugin/loader/preload.go
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
make install

· 测试:

ipfs version

在这里插入图片描述

最后建议设置回去,也就是:

go env -w GO111MODULE=off
  • 最后,除此之外,也可以不用install,直接build,即生成的ipfs.exe不加入系统环境,而是生成在go/src/github.com/ipfs/go-ipfs/cmd/ipfs/ipfs.exe这里。实现方法就是将最后的:
make install

改为

make build

3️⃣ IPFS的初始化和连接

  • 初始化IPFS节点:
ipfs init

在这里插入图片描述

  • 按提示输入
ipfs cat /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readme

查看已经存储的readme文件
在这里插入图片描述

0

评论区