2012-04-24 8 views
1

だから、http://git-scm.com/book/en/v1/Git-on-the-Server-Public-Accessを読んで、単純なhttpサーバ(git-daemonはありません、私は1つ必要ですか?)で指示されているように、裸のレポをセットアップしようとしています。裸のgitリポジトリから宝石をバンドルできますか?

私のgemはルートにgemname.gemspecを持ち、すべてがうまく見えます。その後、

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

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

[OK]を、私は宝石を一覧表示し、 'gemnameが' 存在しないまですべてが、うまくようだ:

とGemfileを使用してオン

。必要も失敗します。

それでは、計画#2:私たちはパスとして、サーバーをミラーリングするので、私はgitのレポのない宝石への直接のパスを使用します図:再び

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

を、バンドラはOKと言います。

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

さらに、インストールしたり、アプリケーション内から正しく参照したりしないでください。

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

ありがとうございます!

答えて

2

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

require "rubygems" 
require "bundler/setup" 

require "gemname" 

# use gemname 

Bundler.requireに電話すると便利かもしれません。これにより、Gemfile内のすべての宝石が自動的に必要になります。あなたが使用するすべての宝石にrequire "gem name"まで電話する必要はありません。すべては、コマンドラインウィンドウでbundle listを入力して働いていた場合Bundler isn't loading gems

あなたがチェックできます。

require "rubygems" 
require "bundler/setup" 

Bundler.require 

# use any gem in Gemfile 

はまた、上記のコードのより洗練されたバージョンを提供し、この同様の答えを見て、持っています。次のようなものが表示されます。

$ bundle list 
Gems included by the bundle: 
    * bundler (1.1.3) 
    * some_dependency (0.0.1) 
    * gemname (1.2.3 <git-sha-hash>) 
+0

よかったです。ありがとう!ああ!今私はそれを得る... doh!これはBundlerのページにありますが、私はこのビットを使ってRailsに慣れています...これはレールアプリではないことは言うまでもないので、手動で行う必要がありました。ありがとう! (doh!) –

+0

また、私はこれらの瞬間をたくさん持っていました:)例えば、私は最初にレールアプリの外でTimeクラスを使用したとき、なぜ5.days.from.now didntの仕事をしたのか、長い時間を費やしました... –

関連する問題