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

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文件
在这里插入图片描述

  • 启动守护进程并连接到IPFS网络:ipfs daemon
    在这里插入图片描述
    可以在浏览器中输入:http://127.0.0.1:5001/webui 打开webui界面
    在这里插入图片描述
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
IPFS 是分布式文件系统,寻求连接所有计算机设备的相同文件系统。在某些方面,这很类似于原始的 Web 目标,但是 IPFS 最终会更像单个比特流群交换的 git 对象。 IPFS = InterPlanetary File System IPFS 云成为一个新的,重要的网络子系统,如果构建得当,那么可以完善或者替换 HTTP,或者说可以完善或者替代更多,听起来很疯狂,但是确实很疯狂! IPFS 结合了 Git,BitTorrent,Kademlia,SFS 和 Web 的优势,提供跟 HTTP web 一样简单的接口。 IPFS 分为 3 个代码库:github.com/ipfs/ipfs - IPFS 规范github.com/ipfs/go-ipfs - Go 实现github.com/protocol/ipfs-webui - Web 工作台 使用:USAGE:     ipfs - global p2p merkle-dag filesystem     ipfs []  [] ...     BASIC COMMANDS         init          Initialize ipfs local configuration         add     Add an object to ipfs         cat      Show ipfs object data         get      Download ipfs objects         ls       List links from an object         refs     List hashes of links from an object     DATA STRUCTURE COMMANDS         block         Interact with raw blocks in the datastore         object        Interact with raw dag nodes         file          Interact with Unix filesystem objects     ADVANCED COMMANDS         daemon        Start a long-running daemon process         mount         Mount an ipfs read-only mountpoint         resolve       Resolve any type of name         name          Publish or resolve IPNS names         dns           Resolve DNS links         pin           Pin objects to local storage         repo gc       Garbage collect unpinned objects     NETWORK COMMANDS         id            Show info about ipfs peers         bootstrap     Add or remove bootstrap peers         swarm         Manage connections to the p2p network         dht           Query the dht for values or peers         ping          Measure the latency of a connection         diag          Print diagnostics     TOOL COMMANDS         config        Manage configuration         version       Show ipfs version information         update        Download and apply go-ipfs updates         commands      List all available commands
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值