1

したがって、http: //git-scm.com/book/en/v1/Git-on-the-Server-Public-Accessを読んで、単純なhttpサーバー(gitなし)で指示されたとおりにベアリポジトリをセットアップしようとしています。 -デーモン、必要ですか?)

私のgemのルートにはgemname.gemspecがあり、すべて問題ないようです。

Gemfileの使用について:

gem 'gemname', :git => 'http://path'

では、

> bundle install
...
Installing blah...
Using gemname (1.0.0) from source at 'http://path'
...

そして、私が宝石をリストし、「gemname」がそこにないまで、すべてが順調に見えます。Requireも失敗します。

それでは、計画#2:サーバーをパスとしてミラーリングするので、gitリポジトリなしでgemへの直接パスを使用すると思います。

gem 'gemname', :path => 'path/to_gemname'

繰り返しますが、バンドラーは大丈夫と言います。

Using gemname (1.0.0) from source at 'path/to_gemname'

ただし、アプリ内からインストールしたり、正しく参照したりすることはできません。

これがどのように機能するか(つまり、適切なディレクトリレイアウトなど)、またはこれを行うために実際のgit / gemサーバーが必要ですか?

ありがとう!

4

1 に答える 1

2

最初に使用する必要がありますBundler.setup

require "rubygems"
require "bundler/setup"

require "gemname"

# use gemname

を呼び出すと便利な場合もありますBundler.require。これには、Gemfile内のすべてのgemが自動的に必要になります。require "gem name"使用するすべての宝石を呼び出す必要はありません。

require "rubygems"
require "bundler/setup"

Bundler.require

# use any gem in Gemfile

上記のコードのより洗練されたバージョンを提供するこの同様の答えも見てください:Bundlerはgemをロードしていません

bundle listコマンドラインウィンドウに入力することで、すべてが機能したかどうかを確認できます。次のようなものが表示されます。

$ bundle list
Gems included by the bundle:
  * bundler (1.1.3)
  * some_dependency (0.0.1)
  * gemname (1.2.3 <git-sha-hash>)
于 2012-04-24T17:15:53.817 に答える