Gem文件中的Gem安装配置
问题描述:
当我运行bundle install
时,出现pg
gem错误(它需要知道pg_config
位于何处)。我可以很容易地通过手动安装gem install ... --with-pg-config=...
来解决这个问题,但我在使用git push heroku master
推送到Heroku时遇到了同样的错误。由于dyno具有只读文件系统,因此我无法在其中手动安装它。因此,有没有一种方法可以指定我想在Gemfile中使用--with-pg-config=...
,这样Heroku就可以按照指令进行实时操作?Gem文件中的Gem安装配置
答
您可以在软件包配置中指定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
运行此命令后,每次打包程序需要安装mysql gem时,它会传递您指定的标志。
访问bundle-config了解更多信息。