2009-12-04 4 views
9

私はユーザー入力に基づいて楽譜を生成するためにlilypondを使うルビーweb appを手に入れました。私はホストをherokuに移動したいと思います(私は最近、いくつかのプロジェクトで英雄を使用しましたが、本当にそれが好きでした、そして、私のトラフィックは、英雄で無料でホストされるほど十分に低かったです)。しかし、herokuのdynoアーキテクチャーでは、あなたが望むパッケージをsshでインストールすることはできません...代わりに、あなたはそれに宝石のマニフェストを与えて、あなたのために宝石をインストールします。宝石の中にプリコンパイルされたバイナリをパッケージ化する

私がherokuにデプロイする場合は、lilypondをgemとしてパッケージ化する必要があります。いくつかの純粋なルビーの宝石をリリースしましたが、ネイティブ拡張やプリコンパイルされたバイナリなどを扱っていません。

プリコンパイルされたバイナリを宝石の中にパッケージ化することは可能ですか?理想的には、これにはOS X(私が開発している)とdebian linux(heroku上で動作しているもの)のバイナリが含まれていて、宝石がインストールされたときに適切なバイナリをインストールします。

答えて

1

代わりにプリコンパイルの、あなただけのHeroku documentationを参照してください、あなたの.gemsファイルに宝石を一覧表示することができるはず助けるかもしれません。もちろん、これはあなたの宝石がネイティブコードを正しく構築することを必要とします - これはまだ仕事ですが、うまくいけば簡単です。

1

私はあなたがここにいくつかのオプションを持っていると思う:

あなたはLilyPondのsourceを取得し、ネイティブのC拡張子を持つ宝石にそれをパッケージ化することができます。 http://guides.rubygems.org/c-extensions/http://patshaughnessy.net/2011/10/31/dont-be-terrified-of-building-native-extensions

でありgitaraと呼ばれる宝石もありますが、私はHerokuの上でそれを使用してについての情報を見つけることができていないことを行う方法についていくつかの有用なガイドがあります。著者に電子メールを送り、それについて何か知っているかどうかを尋ねる価値があるかもしれません。

展開の一部としてLilypondをインストールするHeroku buildpackを作成することができます。私はLilypondを見つけることができませんでしたが、同様のことをする多くの例があります。例えば、this oneはImagemagickをインストールします(これはHerokuにデフォルトで含まれていますので、おそらくもう必要ありません) 。 https://devcenter.heroku.com/articles/buildpack-apihttps://devcenter.heroku.com/articles/buildpack-binaries

私の読書に基づいて、私はと考えています。ビルパックオプションは最善の方法です。

うまくいけば、これが役に立ちます。

関連する問題