回答:
バンドラーを使用している場合は、次のようなものをGemfileに追加する必要があります。
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
また、.gemspec
ファイルがある場合は、実行時にgemを取得してインストールできるはずbundle install
です。
UPD。コメントに示されているように、Bundlerが適切に機能するには、以下をに追加する必要もありますconfig.ru
。
require "bundler"
Bundler.setup(:default)
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
。akash.im/2012/06/05/bundler-new-github-option.html
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<- :tag => ''
一部
まあ、それは問題のプロジェクトに依存します。一部のプロジェクトでは、ルートディレクトリに* .gemspecファイルがあります。その場合、それは
gem build GEMNAME.gemspec
gem install gemname-version.gem
他のプロジェクトには、「gem」や「build」などのレーキタスクがあります。この場合、「rake」を呼び出す必要がありますが、プロジェクトによって異なります。
どちらの場合も、ソースをダウンロードする必要があります。
gemname-version.gem
ファイルは、起動時に作成されますgem build
gem install gemname-version.gem
コマンドは、ローカルのgit宝石をインストールしますか?この方法でインストールされたエンジンgemがローカルマシンのどこにも見つかりません。bundlerはそれをどこに隠しますか?
gem install gemname-version.gem
ラインはそうあるべきだと思いますgem install --local gemname-version.gem
gem which gemname
特定の宝石がどこにあるかを教えてください、それはあなたにとってうまくいきませんか?
specific_install gemを試してください。githubリポジトリ( 'edge'など)から、または任意のURLからgemをインストールできます。宝石をフォークしたり、複数のマシンなどでそれらをハッキングしたりするのに非常に便利です。
gem install specific_install
gem specific_install -l <url to a github gem>
例えば
gem specific_install https://github.com/githubsvnclone/rdoc.git
specific_install
宝石の説明を追加できますか?
ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
とてもクールに聞こえますが、これ以上詳しくは説明しません。他の誰かがSOの推奨に基づいてそれを試そうとしている場合に備えて、それが私にとってうまくいかなかったことを投稿したかっただけです。
Bundlerを使用すると、Gitリポジトリから直接Gemを使用できます。Gemfileで:
# Use the http(s), ssh, or git protocol
gem 'foo', git: 'https://github.com/dideler/foo.git'
gem 'foo', git: 'git@github.com:dideler/foo.git'
gem 'foo', git: 'git://github.com/dideler/foo.git'
# Specify a tag, ref, or branch to use
gem 'foo', git: 'git@github.com:dideler/foo.git', tag: 'v2.1.0'
gem 'foo', git: 'git@github.com:dideler/foo.git', ref: '4aded'
gem 'foo', git: 'git@github.com:dideler/foo.git', branch: 'development'
# Shorthand for public repos on GitHub (supports all the :git options)
gem 'foo', github: 'dideler/foo'
bundle
、そのようなgit-gem-依存関係はグローバルにインストールされず、代わりに現在のユーザーのホームディレクトリにインストールされます。Passengerはwww-data
、このディレクトリにアクセスできないWebサーバーのユーザー(例:)としてルビーを実行するため、この「git-gem」はロードされません。エラーが発生します... is not yet checked out. Run bundle install first
。
OBSOLETE(コメントを参照)
プロジェクトがgithubからのものであり、http ://gems.github.com/list.htmlのリストに含まれている場合は、githubリポジトリをgemsソースに追加してインストールできます。
$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname
パブリックGitHubリポジトリからgemを取得している場合は、省略形を使用できます
gem 'nokogiri', github: 'tenderlove/nokogiri'
またできます gem install username-projectname -s http://gems.github.com
gryzzlyで提案されているようにbundlerを使用してインストールし、gemがバイナリを作成する場合bundle exec mygembinary
は、gemが通常のgemパスでは表示されないbundlerディレクトリに格納されているので、必ず実行してください。
新しいLinuxマシンでは、もインストールする必要がありますgit
。Bundleはそれを舞台裏で使用します。
require "bundler" Bundler.setup(:default)
詳細については、バンドルドキュメントを参照してください