IPFS编译

作者: 乐乐_6272 | 来源:发表于2018-05-06 23:12 被阅读459次

    按照官方网站的介绍,IPFS编译一般无法通过。原因基本是中间下载包失败。所以你最好有一个能访问ipfs.io的代理。本文假定你已经有一个代理。

    假定你的代理地址是:

    socks5://127.0.0.1:8088

    按照正常的流程,ipfs的编译步骤很简单:

    # apt-get install gcc
    # go get github.com/ipfs/go-ipfs
    # cd $GOPATH/src/github.com/ipfs/go-ipfs
    # make build

    注意,上面编译前的cd命令,ipfs的编译一定要在gopath下面进行。

    但为了使用代理,需要进行如下操作:

    1. 修改dist_get

    vim bin/dist_get

    找到try_download "$dl_url" "$dl_output" "curl
    给curl命令增加参数:--socks5-hostname 127.0.0.1:8088, 即修改成如下: try_download "$dl_url" "$dl_output" "curl --socks5-hostname 127.0.0.1:8088

    2. 修改shell.go, 这一步引用自[http://emacsvi.com/2018/04/go-ipfs-gx.html]

    修改 go-ipfs-api/shell.go,内容改成如下:

    func NewShell(url string) *Shell {
          c := &gohttp.Client{
                  Transport: &gohttp.Transport{
                   Proxy: gohttp.ProxyFromEnvironment, // 这里是添加的一行
                   DisableKeepAlives: true,
                  },
          }

          return NewShellWithClient(url, c)
    }

    3. 重新编译gx,

    go install github.com/whyrusleeping/gx

    go install github.com/whyrusleeping/gx-go

    cd $GOPATH/src/github.com/ipfs/go-ipfs/bin

    mv gx gx.old ; mv gx-go gx-go.old

    ln -s /opt/gopath/bin/gx ; ln -s /opt/gopath/bin/gx-go

    然后再运行make build, 就可以正常下载依赖并编译

    相关文章

      网友评论

        本文标题:IPFS编译

        本文链接:https://www.haomeiwen.com/subject/hcuprftx.html