質問

Railsアプリを展開する必要があります。事実は次のとおりです。

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

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

役に立ちましたか?

解決

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

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

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

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

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

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

他のヒント

共有サーバーの管理者にgemをインストールするように要求します。それらが「標準」の場合評判の良いドメインから入手できるgem、それは本当に大したことではないはずです、私の共有サーバープロバイダーは常にそれを行います。

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

ベンダーすべて。

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

がんばって!

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

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

クロスコンパイラーのルートを使用する必要がある場合、cygwinをインストールし、そのビルドツールを使用してcygwinホストのsolarisクロスコンパイラーを作成することになると思われます。 crosstool プロジェクトをご覧になることをお勧めします。このプロジェクトでは、あなた。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top