ruby gem set存在一個基本問題,像rake xxxx這樣的命令可能會產生錯誤,因爲命令可能使用rake的全局版本,而gemfile需要非常特定的版本。使用RVM本地gemset和使用Bundle exec是否有區別?
我知道2種方法來緩解這種情況。
在rake和rails命令前面使用
bundle exec
。例如bundle exec rake db:migrate
在前面添加此命令可以確保命令是以當前捆綁包的形式執行的,即當您運行bundle install
時創建的捆綁包。使用RVM。使用RVM創建本地gemset的方式比較少見。首先,在這種情況下,爲您的新應用創建目錄
mkdir myapp
,cd myapp
,然後運行rvm use [email protected] --ruby-version --create
創建沒有任何內容的本地寶石集。現在你可以運行gem install rails
和rails new .
創建的myapp軌道與它的你在文件夾中的專用寶石環境。
由於不錯的額外RVM將每次CD自動MYAPP目錄時交換到正確的寶石。
至於據我所知這兩種方法的工作,但有沒有任何已知的問題,爲什麼你不會使用上述方法之一?