所以我需要在公司防火墙后面做一些工作,而且我是构建Go Apps的新手。我使用过的唯一一款应用程序已经构建好并可以使用了。我想玩BoltDB,但问题是我无法安装它,因为它需要:
go get github.com/boltdb/bolt/...
因为我的服务器不能去github.com它不能拉这个。我不太了解go构建策略,如果有可能继续我的本地机器并执行该命令并将$ GOPATH内容复制到服务器。这给了我一个错误。
我还尝试在内部git上加载repo,但它需要看起来像是对其他依赖项的调用?有没有人知道如何在没有go get命令的情况下在我的服务器上部署BoltDB?
修改 我到目前为止在我的本地笔记本电脑上尝试过的方法是设置我的路径:
export GOPATH=/Users/abc/go
go get github.com/boltdb/bolt/...
ls -ltr go/
(显示文件),压缩go目录。去了我的服务器并设置了我的GOPATH,
export GOPATH=/opt/space/gopath
cd /opt/space/gopath
wget https://.../general/go.zip
unzip go.zip
mv go/* .
现在,我的本地笔记本电脑上出现了与我服务器上相同的文件结构。 当我运行cayley(我正在玩的应用程序)时:
./cayley http --host="10.xxx.xx.xxx" --db="bolt" --dbpath=/tmp/bolt3
我得到了各种各样的错误,我在使用bolt时无法在网上找到其他任何人。
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x8 pc=0x698a03]
goroutine 1 [running]:
github.com/boltdb/bolt.(*Bucket).Get(0x0, 0xc20802b3f8, 0x4, 0x8, 0x0, 0x0, 0x0)
...