当我运行bundle install
时,我会收到pg
gem的错误(它需要知道pg_config
所在的位置)。我可以通过手动gem install ... --with-pg-config=...
轻松解决这个问题,但是在使用git push heroku master
推送到Heroku时我遇到了同样的错误。我无法在那里手动安装它,因为dyno有一个只读文件系统。因此,有没有办法指定我想在Gemfile本身中使用--with-pg-config=...
,以便Heroku可以即时按照说明进行操作?
答案 0 :(得分:1)
您可以在捆绑包配置中指定gem install配置选项。
Bundler从本地应用程序(app / .bundle / config)环境变量中检索其配置,然后按优先级顺序检索用户的主目录(〜/ .bundle / config)。
一个非常常见的例子,mysql gem,要求Snow Leopard用户将配置标志传递给gem install,以指定在哪里找到mysql_config可执行文件。
gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
由于该可执行文件的特定位置可能会因机器而异,因此您可以在每台计算机上指定这些标记。
bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
运行此命令后,每次bundler需要安装mysql gem时,它都会传递你指定的标志。
访问bundle-config了解详情。