我正在爲某些內部項目構建一個簡單的基於thor
的生成器,並且似乎無法從正確的目錄運行bundle install
。捆綁安裝從不正確的目錄運行
當我運行新[APP_NAME]功能,應該創建的目錄和文件,然後運行bundle install
安裝應用程序所需的寶石。
發電機功能的來源:
def create
puts "Creating application #{name}"
directory 'application', "#{name}"
Dir.chdir("#{Dir.pwd}/#{name}") do
puts `bundle install`
end
end
而且從運行調用此創建方法的命令控制檯輸出:
$ bundle exec bin/my_gem new test_app
Creating application test_app
create test_app
create test_app/Gemfile
create test_app/Guardfile
create test_app/README.md
create test_app/app/controllers
create test_app/app/helpers
create test_app/app/models
create test_app/app/views
Using thor (0.14.6)
Using my_gem (0.0.1)
Using bundler (1.1.3)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
正如你可以看到,它正在運行bundle install
但它的運行它在我的當前目錄(thor
,bundler
,my_gem
),而不是test_app
目錄(guard
,guard-coffeescript
,guard-less
等)。
運行其他命令,如ls
或pwd
產生預期的結果:
Gemfile
Guardfile
README.md
app
和
/Users/davidlumley/Development/Gems/my_gem/test_app
不知道這有什麼差別,但我用RVM管理我的紅寶石。
您是否在使用RVM。 – Kashiftufail 2012-04-17 05:32:30
「不知道它是否有所作爲,但我使用RVM來管理我的紅寶石。」 - 是的:) – djlumley 2012-04-17 05:33:39
是的,當然它在管理紅寶石,但在rvm的幫助下,您應該創建gemset並使用該gemset目錄來安裝gem,並且不會出現您現在遇到的問題。 – Kashiftufail 2012-04-17 05:43:10