1

Rails アプリケーションをサーバーにデプロイしようとしています。いくつかの環境制限があります。つまり、次のとおりです。

  1. サーバーでインターネットにアクセスできない
  2. サーバーへのルートアクセスなし
  3. ビルドツールなし (GCC など)

カピストラーノのデプロイはほとんど機能していますが、バンドラーが 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フォルダーにドロップして、1 日と呼ぶことができると思います。

助言がありますか?この問題に正しく取り組んでいますか?

4

1 に答える 1

0

多くのレベルで悪いことである可能性が高いため、この方法はお勧めできませんが、問題は解決しました。shared/bundle最終的に、ステージング サーバーから運用サーバーにフォルダーをコピーしました。Bundler は、gem が既にインストールされていることを確認し、再インストールを試みません。

于 2013-05-31T22:02:07.503 に答える