私のアプリケーションでは、暗号化されたZipファイルを処理する必要があります。彼らの恐ろしいサイトにもかかわらず、Chilkatの commercial Zip gem はおそらくこれを実装するための最良の方法であるようです。
これは商用の宝石であるため、Bundlerが見る典型的な宝石のソースには含まれていません。 Mac OS XでLinux 64ビット版のgemをインストールすることができました(まだ実行しようとしていないため、実際に動作するWordはまだありません)。ただし、私は最初に、Bundlerに、ダウンロードした.gemファイルからgemを認識してロードさせようとしています。
Bundlerには パス属性 があり、これをいくつかの方法で利用しようとしましたが、まだ動作していません。
これは私が得るエラーです:
$ bundle install
Fetching source index for http://rubygems.org/
Fetching source index for http://gems.github.com/
Could not find gem 'chilkat (>= 0, runtime)' in source at /Users/username/appname/vendor/cache/chilkat-9.1.0-x86_64-linux.
Source does not contain any versions of 'chilkat (>= 0, runtime)'
Bundlerに宝石が実際にこのディレクトリにあることを確認する方法に関するアイデアはありますか?機能していないように見えるパス属性以外の他のオプションはありますか?
どうもありがとう!
私はRails 3.0.3、Rails 3の新機能、およびバンドルを使用しています。
私はこれと同じエラーを受け取りました:
gem 'mygem', :path => '/path/to/gem'
バージョン番号を指定することで解決:
gem 'mygem', '0.0.1', :path => '/path/to/gem'
バージョンに>=0.0.1
を使用すると、元のエラーに戻りました。ただし、これについては説明できません。
GemfileのmanページからJDの役立つコメントを引用します。「:gitオプションのセマンティクスと同様に、:pathオプションでは、問題のディレクトリにgemの.gemspecが含まれているか、またはバンドルする明示的なバージョンを指定する必要があります。使用する必要があります。」
Gemを解凍し、Gemfileのパスを使用してみてください。
つまり.
gem unpack my-gem-file.gem /my-Rails-app/vendor/gems/
次に、そのような行をGemfileに追加します
gem 'my-gem', '0.0.1', :path => 'vendor/gems/my-gem'
パスとバージョン番号は明らかに異なります。また、vendor/gemsディレクトリがまだ存在しない場合は、アプリのルートに作成する必要がある場合もあります。
アプリケーションのルートフォルダーのvendor/cacheディレクトリにgemをコピーします。
bundle install --local
これにより、ローカルのgemがインストールされます。
このgemは、アプリを実行するすべてのマシンに対してローカルであるため、Gemfileでgemを指定してから、手動でgemをインストールします。 「バンドルインストール」を実行すると、バンドラーはそれがすでにインストールされていることを確認し、次に進みます。
これは、rubygems.orgでまだ利用できないRuby-debug-base19のバージョンをインストールするときに機能しました。
別の方法は、すべてのアプリサーバーにアクセスできる独自のGemサーバーをセットアップすることです。 http://guides.rubygems.org/run-your-own-gem-server/ を参照してください
私はこれを自分でやったことはありませんが、とてもシンプルに見えます。 gemサーバーがインターネット上にある場合は、Chilkatの利用規約に違反していないことを確認してください。
まず、semanticartのソリューションを使用して宝石を解凍します。次に、展開したgemにgemspecを追加します。バンドラーは適切に実行できます。
Gem::Specification.new do |s|
s.name = "chilkat"
s.version = "9.4.1"
s.platform = Gem::Platform::Ruby
s.required_rubygems_version = ">= 1.3.6"
s.files = Dir.glob("lib/**/*")
s.require_path = "lib"
s.summary = "Make do with a self written gemspec"
end