所以我需要在公司防火墙后面做一些工作,而且我是构建 Go 应用程序的新手。我使用过的唯一 Go 应用程序已经构建并可以使用。我想玩 BoltDB,但问题是我无法安装它,因为它需要:
go get github.com/boltdb/bolt/...
因为我的服务器不能访问 github.com,所以它不能拉这个。我不太了解 go build 策略,以及是否可以在我的本地机器上执行 go get 并执行该命令并将 $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)
...