运行 bundle install 时如何传递 gem 安装的参数?
Posted
技术标签:
【中文标题】运行 bundle install 时如何传递 gem 安装的参数?【英文标题】:How can I pass a parameter for gem installation when I run bundle install? 【发布时间】:2011-07-07 06:32:16 【问题描述】:我将pg gem 添加到我的gemfile 中
gem 'pg'
当我运行bundle install
时,我得到这个错误:
Installing pg (0.10.1) with native extensions /Users/ben/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/Users/benhartney/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
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.
看来我需要传入这个配置参数
--with-pg-config=/path/to/pg_config
当我使用bundle install
时,我该怎么做?
【问题讨论】:
【参考方案1】:您需要像这样设置构建配置选项:
bundle config build.pg --with-pg-config=/path/to/pg_config
更多信息可以在bundle config man page找到
【讨论】:
太棒了!看起来这将它存储在配置中,并将在未来使用。谢谢!【参考方案2】:在“bundle install”之前运行“bundle config”来设置参数,即:
bundle config build.pg --with-pg-config=/path/to/pg_config
bundle install
【讨论】:
【参考方案3】:使用 Rails3 和 PostgreSQL。我喜欢这个
>rails new test_app -d postgreSQL
>cd test_app
>mkdir .bundle
>echo "BUNDLE_BUILD__PG: --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config" > .bundle/config
>bundle install
这样您就可以将配置保存在源代码管理中。
用于用户的个人资料
bundle config build.pg --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config
这将创建 ~/.bundle/config 文件。
【讨论】:
除非只有你在应用程序上工作,并且它可能运行的每个地方都有相同的 postgres 配置路径,否则你不应该将这种事情签入你的 scm。它是特定于环境的,并且对于每台机器可能都不相同。这就是为什么通常最好按用户执行此操作。 空闲手指,是的。这是正确的。所以我给了两个选择。你/他的选择,什么最适合。 :-)【参考方案4】:如果您使用的是 Ruby 2.x 及更高版本,则 thrift 0.9.0 无法使用它构建。见https://issues.apache.org/jira/browse/THRIFT-2219。 Thrift 0.9.2 已修复。
尝试安装:
gem install rbhive -v 1.0.3.pre
【讨论】:
以上是关于运行 bundle install 时如何传递 gem 安装的参数?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Docker 镜像运行 bundle install 会忽略 bundle config 设置
无法在 bundle install ruby 上安装 mysql2
理解 Gemfile.lock:删除 Gemfile.lock 然后再次运行 bundle install 可以吗?
Ruby(bundle install,bundle update)FAILS无法安装gems http_parser.rb,eventmachine