2011-03-22 52 views

回答

4

有一個在RVM該命令:

rvm gemset export Gemfile 

它將用gemset中的所有寶石生成Gemfile

3

運行「捆綁安裝」!

它將使用其進行RVM下安裝在命令行上(如果已經安裝)的寶石

檢查瑞恩·貝茨RailsCast上捆紮機:http://railscasts.com/episodes/201-bundler

+1

如果已經安裝了寶石,不過,爲什麼我需要'捆綁install'?我期望的是一個'Gemfile'我可以簽入SCM,以便我們團隊的其他人也可以像'default.gems'一樣獲得更改。也許我需要'捆綁安裝',然後導出到'Gemfile'? – pjmorse 2011-05-08 15:49:33

+0

的「包安裝」包,並通過生成Gemfile.lock的文件凍結你的寶石 - 這樣你就不會accidentially混合不必要的版本.. 檢查更多的信息在這裏:http://gembundler.com/,例如「瞭解Bundler」選項卡 – Tilo 2011-05-09 04:09:41

+1

我試了一下。如果我還沒有'Gemfile','bundle install'會返回一個錯誤(「找不到Gemfile」)。如果我有一個空白的'bundle install'不會創建它。我希望找到的是一條從Gemfile但不是特定於項目的RVM gemset到具有反映該RVM gemset的'Gemfile'和'Gemfile.lock'的路徑,而無需再次在Gemfile中手動列出gem '。 – pjmorse 2011-05-09 20:19:29

5

我想產生一個老一的Gemfile rails項目,我寫了這個小腳本來幫助我。

#!/usr/bin/env ruby 
#Save in file to_gemfile.rb 
gem_file = File.open("Gemfile", "w") 
gem_file.write("source :rubygems\n") 
    STDIN.readlines.each do |line| 
    line = line.chomp 
    line =~ /(.*)\s\((.*)\)/ 
    gem_name = $1 
    versions = $2.split(",") 
    gem_file.write("gem \"#{gem_name}\", \"#{versions.first}\"\n") 
    end 
gem_file.close 

使用它像這樣

$ gem list | ./to_gemfile.rb 
+0

嘿,這很接近我以後的!唯一缺少的鏈接是,這確實需要安裝gems(也就是說,我需要在生成'Gemfile'之前導入gemset),但是可以通過修改腳本來讀取default.gems文件而不是'gem list'的管道輸出。 – pjmorse 2011-11-29 15:11:28

+0

我不確定default.gems格式是怎麼樣的,但如果它接近gem list產生的結果,你可以執行'./to_gemfile.rb 2011-11-29 18:15:46

+1

@ user420504它就像'gem install ...'但是剝離了'gem install',所以你可以在那裏指定'--version'或'-v'和其他編譯標誌(如果需要的話) – mpapis 2012-03-14 03:42:38

1

它看起來像rails_upgrade插件通過其rake rails:upgrade:gems任務提供了這種能力。它的這個rake任務的描述是,它會:

從config.gem指令生成的Gemfile

相關問題