bundler无法构建gem原生扩展

时间:2013-08-26 22:27:43

标签: ruby-on-rails bundler

我正在使用bitnami ruby​​堆栈设备,并尝试设置capistrano将我的应用程序从我的MS Windows笔记本电脑部署到设备。在捆绑安装部分期间,无法构建本机扩展时部署失败。到目前为止,这种情况发生在nokogiri和pg宝石上。

例如:

* ←[33mexecuting "cd /opt/bitnami/projects/melvin/releases/20130826221225 && bundle
install --gemfile /opt/bitnami/projects/melvin/releases/20130826221225/Gemfile --path
/opt/bitnami/projects/melvin/shared/bundle --deployment --quiet --without development 
test"←[0m

产生

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/opt/bitnami/ruby/bin/ruby extconf.rb --with-pg-config=/usr/pgsql-9.2/bin/pg_config
Using config values from /usr/pgsql-9.2/bin/pg_config
sh: 1: /usr/pgsql-9.2/bin/pg_config: not found
sh: 1: /usr/pgsql-9.2/bin/pg_config: not found
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

但是,如果我打开一个终端并进入ssh,并发出gem install pg -v'0.16.0'就行了。

那么我正在从ssh终端做什么和capistrano正在做什么(大概来自同一个ssh连接)有什么不同?

我已经在.bashrc中编辑了PATH,以使用与bitnami控制台中相同的PATH。

有人曾经使用过capistrano来部署到bitnam ruby​​堆栈设备(我认为是ubuntu 12.04)吗?

更新---

我刚试过cap deploy -d并在它发布目录之前就中止了部署。然后我使用我的ssh终端并转到发布目录并发出“sudo bundle install”,这也给出了上面的错误。所以也许它不是capistrano和手动ssh之间的区别,但它必须是发布目录中的内容,因为“sudo gem install'pg'”有效,这与我所在的目录无关。

另外,因为我可以安装宝石意味着我的机器上安装了必要的库等等 - 但是捆绑器似乎无法访问它们。

所以我认为这是一个捆绑问题而不是capistrano问题,也许?

确认,我绕过了capistrano,这是捆绑器的问题。

那么为什么gem安装pg -v'0.16.0'工作但捆绑安装不?

更多---

所以,bundle install --system工作正常。然后我可以做一个捆绑安装--local。 但捆绑安装--local --deployment失败,'在任何来源中找不到pg-0.16.0'。我不明白这意味着什么,它在系统上并显示在“宝石列表”中。

我想知道是否有办法迫使卡尼斯特拉诺这样做?

0 个答案:

没有答案
相关问题