捆绑安装没有互联网的本地pg gem

时间:2019-02-14 19:21:45

标签: ruby-on-rails ruby bundle pg

我在远程服务器上,无法访问互联网。 有一个Rails应用程序。 尝试bundle install(所有宝石都使用bundle package --allapp/vendor/cached缓存了)

由于没有互联网连接,因此我使用--local标志(告诉bundle使用缓存的值-link):运行bundle install --local失败:

An error occurred while installing pg (1.1.4), and Bundler cannot continue.
Make sure that "gem install pg -v '1.1.4' --source 'https://rubygems.org'" succeeds before bundling.

现在,缓存的gem位于app/vendor/cached/pg.1.1.4.gem上的app文件夹中 这仅发生在pg宝石上。

通常,我使用以下命令解决此问题:bundle config build.pg --with-pg-include=/usr/pgsql-10/include --with-pg-dir=/usr/pgsql-10(基本上告诉捆绑软件在安装pg时使用这些参数)。但这就是我可以上网的时候。

现在我可以使用以下命令手动安装pg: gem install --local app/vendor/cached/pg.1.1.4.gem -- --with-pg-include=/usr/pgsql-10/include --with-pg-dir=/usr/pgsql-10 请注意,参数分为两部分,用--分隔:

  1. --local app/vendor/cached/pg.1.1.4.gem
  2. --with-pg-include=/usr/pgsql-10/include --with-pg-dir=/usr/pgsql-10

所以参数的第一部分:--local app/vendor/cached/pg.1.1.4.gem

我如何捆绑销售? 在我有互联网连接的工作站上,我仍然遇到该错误,但可以使用此错误来解决: bundle config build.pg --with-pg-include=/usr/pgsql-10/include --with-pg-dir=/usr/pgsql-10基本上告诉bundle在安装pg时使用这些参数

但是现在捆绑包还需要使用本地路径吗?我猜? (例如gem install命令使用? 它尝试连接到rubygems.org

总结一下:如何使bundle install安装本地pg gem?或将先前显示的工作gem install命令转换为捆绑安装命令?

ruby 2.5.3rails 5.2.1bundler 1.17.3

bundle config的输出:

build.pg (/home/myuser/.bundle/config): "--with-pg-include=/usr/pgsql-10/include --with-pg-dir=/usr/pgsql-10"

我使用bundle config build.pg命令尝试了几种组合,但没有成功:

  • 捆绑配置build.pg --with-pg-include = / usr / pgsql-10 / include --with-pg-dir = / usr / pgsql-10
  • 捆绑配置build.pg-本地应用程序/供应商/缓存/pg.1.1.4.gem---with-pg-include = / usr / pgsql-10 / include --with-pg-dir = / usr / pgsql-10

1 个答案:

答案 0 :(得分:0)

通过运行解决 捆绑配置build.pg --with-pg-config = / usr / pgsql-10 / bin / pg_config