首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开/装箱/迁移:在构建Go标记时不允许进行操作

打开/装箱/迁移:在构建Go标记时不允许进行操作
EN

Stack Overflow用户
提问于 2022-06-01 00:21:52
回答 1查看 114关注 0票数 1

我遵循这个Go + GraphQL教程https://www.howtographql.com/graphql-go/4-database/,我被困在了一个点,我试图安装然后运行迁移。

整个命令链是

代码语言:javascript
复制
go get -u github.com/go-sql-driver/mysql
go build -tags 'mysql' -ldflags="-X main.Version=1.0.0" -o $GOPATH/bin/migrate github.com/golang-migrate/migrate/v4/cmd/migrate/
cd internal/pkg/db/migrations/
migrate create -ext sql -dir mysql -seq create_users_table
migrate create -ext sql -dir mysql -seq create_links_table

但特别是在

代码语言:javascript
复制
go build -tags 'mysql' -ldflags="-X main.Version=1.0.0" -o $GOPATH/bin/migrate github.com/golang-migrate/migrate/v4/cmd/migrate/
cd internal/pkg/db/migrations/

我将在我的终端中得到以下错误:

代码语言:javascript
复制
go build github.com/golang-migrate/migrate/v4/cmd/migrate: copying /var/folders/f9/d6pn7fz92w53vcpywqd_08zm0000gp/T/go-build1656176552/b001/exe/a.out: open /bin/migrate: operation not permitted

如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-01 01:52:41

没有设置$GOPATH (这很好,go将回到默认值)。

这导致$GOPATH/bin/migrate计算结果为/bin/migrate,而不是它的期望值--类似于/home/you/go/bin/migrate (其中/home/you/go是默认的$GOPATH)。

如果没有设置$GOPATH,则使用默认值;您的go build命令应该调用$(go env GOPATH)而不是直接使用$GOPATH

代码语言:javascript
复制
go build -tags 'mysql' -ldflags="-X main.Version=1.0.0" -o $(go env GOPATH)/bin/migrate github.com/golang-migrate/migrate/v4/cmd/migrate/

本教程只是错误地假设总是设置$GOPATH环境变量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72455304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档