2016-03-14 43 views
10

我想部署一个Go应用程序到Heroku,我正在使用godeps进行依赖关系管理,因为他们的文档建议。 但是,当我git push heroku master我得到以下错误,告诉文件sasl.go不存在。当部署去Heroku的应用程序时mgo依赖错误

remote: # github.com/grsouza/feeng-api/vendor/gopkg.in/mgo.v2/internal/sasl 
remote: vendor/gopkg.in/mgo.v2/internal/sasl/sasl.go:15:24: fatal error: sasl/sasl.h: No such file or directory 
remote: // #include <sasl/sasl.h> 
remote:      ^
remote: compilation terminated. 
remote: github.com/grsouza/feeng-api/vendor/github.com/onsi/gomega 
remote: 
remote: !  Push rejected, failed to compile Go app 
remote: 
remote: Verifying deploy.... 
remote: 
remote: ! Push rejected to limitless-ridge-36512. 
remote: 
To https://git.heroku.com/limitless-ridge-36512.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to 'https://git.heroku.com/limitless-ridge-36512.git' 

任何人都可以帮我解决这个问题吗?

谢谢。

+0

更新了'gopkg.in/mgo.v2'的商品版吗? – elithrar

回答

1

您是否在项目中使用godep save ./...

如果是,请删除Godepvendor目录,并尝试使用godep save,而不使用./...

我这样做,为我工作。

+0

问题是,heroku自动运行'godep保存。/ ...' – nkobber

+0

它适用于我 – Tineo

0

错误告诉sasl/sasl.h丢失,但不是sasl.go. sasl.h头文件是libsasl2-dev软件包的一部分,它并未安装在heroku上,我不知道安装它的简单方法。在我看来,您可以尝试在本地计算机上找到sasl标头(很可能是/ usr/include/sasl),并将其复制到您本地的应用程序源中的vendor/include/sasl。然后使他们可见的CGO使用heroku配置变量做

heroku config:set CGO_CFLAGS= -I/app/code/vendor/include/sasl 

在heroku控制台,而不是git推。 你也可以找libsasl2-dev的buildpack对Heroku的,并尝试使用两个buildpacks为您的应用程序的东西,如

heroku buildpacks:add heroku/some_libsasl2-dev 
相关问题