0

デプロイする必要がある Rails アプリがあります。事実は次のとおりです。

  • このアプリは Windows で開発されており、Windows バイナリ gem が必要です
  • アプリは、Open Solaris 共有サーバー (Joyent) にデプロイされます。
  • サーバーに gem をインストールする権限がありません
  • バイナリ以外の gem の場合は、単純にrake gems:unpackローカルで実行してからアップロードできます。これはうまくいきます。

私の質問は、必要なバイナリgem を本番サーバーに取得するにはどうすればよいですか?

4

5 に答える 5

2
  • このアプリは Windows で開発されており、Windows バイナリ gem が必要です
  • アプリは、Open Solaris 共有サーバー (Joyent) にデプロイされます。

開いているソラリスでは Windows バイナリを実行できないことに気付きました。実際、Windowsはsolarisとはまったく異なります...

gem がサード パーティからのものである場合、他の誰かが作成した、solaris 用の事前にパッケージ化されたバイナリ バージョンをダウンロードできる場合があります。その後、gem をインストールするのではなく、それらを vendor ディレクトリに配置して、そこから読み込むことができます。

solaris 用の事前にパッケージ化されたバイナリを取得できない場合は、(Virtual PC、VMWare、VirtualBox などを使用して) 独自の solaris マシンを取得し、それを使用して gem をコンパイルしてから、バイナリ ファイルを取り出す必要があります。

実際に Windows で動作するソース コードしか持っていない場合 (たとえば、自分でビルドしたか、gem を提供している人が Windows で動作するように設計しただけである場合)、あなたはうんざりしています。クロスプラットフォームの代替品を見つける必要があります。

どのgem について話しているか教えていただけると助かります。そうすれば、人々はより具体的な解決策を見つけ出し、何が起こっているのかを正確に説明できます。

于 2008-10-12T20:27:02.467 に答える
1

共有サーバー管理者にgemをインストールするように依頼します。それらが評判の良いドメインから入手できる「標準的な」宝石である場合、それは実際にはそれほど大したことではないはずです。私の共有サーバープロバイダーは常にそれを行っています。

于 2008-10-11T23:58:25.617 に答える
0

Windows で動作する Solaris をターゲットにするには、おそらくクロスコンパイラを使用する必要があります。

クロスコンパイラの構築は、一般的に困難でエラーが発生しやすいプロセスです。私は以前にそれをやったことがあり、複雑さは気弱な人向けではありません. 理想的には、Solaris ビルド マシンにアクセスできる人を見つけて、バイナリを作成してもらいます。

クロスコンパイラ ルートを使用する必要がある場合、解決策は cygwin をインストールし、そのビルド ツールを使用して cygwin でホストされる solaris クロス コンパイラを作成することになると思います。詳細の一部を処理するスクリプトを提供するcrosstool プロジェクトを参照することをお勧めします。

于 2008-10-10T14:41:14.460 に答える
0

バイナリ宝石は本当の問題です。他のすべての gem については、vendor/gemsディレクトリを使用できます (Rails 2.1+ でのみ可能)。

于 2008-10-10T09:54:00.917 に答える
0

ベンダーのすべて。

これは 2 つのことを行います。システムにインストールされた gem に依存せずにアプリケーションをデプロイできるようにし、次に、特定のバージョンの gem をアプリケーションに固定します。したがって、他の誰かが SCM ツールからそれをチェックアウトしても、バージョンの不一致はなく、問題なく稼働します。

幸運を!

于 2008-10-10T11:56:11.020 に答える