我正在将rails应用程序部署到服务器。有一些环境限制,即:
我几乎有capistrano部署工作,但是当bundler尝试安装json gem时我遇到了失败:
** [out :: 192.168.7.115] Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
** [out :: 192.168.7.115]
** [out :: 192.168.7.115] /app/ruby/bin/ruby extconf.rb
** [out :: 192.168.7.115] creating Makefile
** [out :: 192.168.7.115]
** [out :: 192.168.7.115] make
** [out :: 192.168.7.115] compiling generator.c
** [out :: 192.168.7.115] make: gcc: Command not found
** [out :: 192.168.7.115] make: *** [generator.o] Error 127
由于没有互联网,我将所有宝石存储在vendor/cache
中。我想通过在 拥有gcc的类似机器上编译json gem来解决这个问题,但是我无法在系统上找到“看起来像编译”的gem。通常,我看到一个[gemname]-x86_64-linux.gem
gemfile,表明已经处理了编译。似乎无法为JSON gem找到这个,但是如果我这样做,我猜我可以将它放在我的vendor/cache
文件夹中并将其称为一天。
有什么建议吗?我是否正确地解决了这个问题?
答案 0 :(得分:0)
我不推荐这种方法,因为它可能在很多级别上都是坏事,但它确实解决了我的问题。我最终将shared/bundle
文件夹从登台服务器复制到生产服务器。 Bundler发现宝石已经安装,并没有尝试重新安装它们。