我是新手。
我克隆了这个项目:[oauth2_proxy] [1] 我想添加其他提供商。所以我在提供者中创建了提供者文件。将提供程序名称添加到providers switch语句。 但是,当我构建生成的二进制文件时,提供程序会继续回到谷歌。
似乎我的提供者尚未添加。我怀疑go build可能会从github中提取提供程序并忽略我的本地更改。那是对的吗?你是如何构建这个东西的?
我使用go build
构建,因为./dist.sh脚本对我不起作用。我正在设法制作二进制文件。但它并没有出现我的代码文件。我知道这是因为当我为#34; google"或" linkedin"或者生成的二进制文件中的任何提供程序名称:Binary file oauth2_proxy matches
。但对于我自己的提供商来说,没有比赛。
它可能与我编译应用程序的方式有关。我怎么做?没有提供github页面上的说明。对不起我的无知。我来自c ++背景,这更符合逻辑。 Go似乎自动获得了依赖性!?
根据@Topo的建议
matthewh@xen:~/dev/oauth2_proxy$ export GOPATH=`pwd`
matthewh@xen:~/dev/oauth2_proxy$ rm -rf src
matthewh@xen:~/dev/oauth2_proxy$ go get ./...
go install: no install location for directory /home/matthewh/dev/oauth2_proxy outside GOPATH
For more details see: 'go help gopath'
go install: no install location for directory /home/matthewh/dev/oauth2_proxy/api outside GOPATH
For more details see: 'go help gopath'
go install: no install location for directory /home/matthewh/dev/oauth2_proxy/cookie outside GOPATH
For more details see: 'go help gopath'
go install: no install location for directory /home/matthewh/dev/oauth2_proxy/providers outside GOPATH
For more details see: 'go help gopath'
src/cloud.google.com/go/internal/retry.go:21:2: cannot find package "github.com/googleapis/gax-go" in any of:
/usr/local/go/src/github.com/googleapis/gax-go (from $GOROOT)
/home/matthewh/dev/oauth2_proxy/src/github.com/googleapis/gax-go (from $GOPATH)
src/google.golang.org/api/internal/settings.go:22:2: cannot find package "google.golang.org/grpc" in any of:
/usr/local/go/src/google.golang.org/grpc (from $GOROOT)
/home/matthewh/dev/oauth2_proxy/src/google.golang.org/grpc (from $GOPATH)
src/google.golang.org/api/transport/dial.go:30:2: cannot find package "google.golang.org/grpc/credentials" in any of:
/usr/local/go/src/google.golang.org/grpc/credentials (from $GOROOT)
...
[1]: https://github.com/bitly/oauth2_proxy
答案 0 :(得分:1)
修改强>
我刚刚在我的机器上做了go get -v github.com/bitly/oauth2_proxy
。
详细详情:http://pasted.co/60e2b56d
二进制文件是在$GOPATH/bin/oauth2_proxy
下生成的。
-rwxr-xr-x 1 jeeva staff 10M Jul 11 19:02 oauth2_proxy
让我们从基础开始。首先设置Go工作区(How to Write Go Code)选择GOPATH目录。
例如:/ Users / matt / dev
export GOPATH=/Users/matt/dev
然后执行go get
获取oauth2_proxy
。通常go get是该存储库的git clone。
go get github.com/bitly/oauth2_proxy
它将获取源代码并运行go install
。成功执行此命令后。您将在$GOPATH/bin
中看到二进制文件。
现在根据需要修改源代码并运行go install来构建二进制文件。
go install github.com/bitly/oauth2_proxy
OR
cd $GOPATH/src/github.com/bitly/oauth2_proxy
go install
如果您想手动而不是go get
。然后选择GOPATH
的目录并导出它(如上所述)然后
mkdir -p $GOPATH/src/github.com/bitly
cd $GOPATH/src/github.com/bitly
git clone https://github.com/bitly/oauth2_proxy.git
cd oauth2_proxy
go get ./...
go install
现在二进制文件将在$GOPATH/bin
。