我正在使用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'。我不明白这意味着什么,它在系统上并显示在“宝石列表”中。
我想知道是否有办法迫使卡尼斯特拉诺这样做?