我正在将 Rails 应用程序部署到服务器。有一些环境限制,即:
- 服务器上无法访问互联网
- 服务器上没有root访问权限
- 没有构建工具(GCC 等)
我几乎让 capistrano 部署工作,但是当捆绑器尝试安装 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
文件夹中并收工。
有什么建议么?我是否正确地解决了这个问题?