2014-12-23 38 views
1

您好,我將我的Ruby on Rails開發平臺從Windows 7切換到Linux(Debian),我將整個應用程序目錄複製到Linux並運行bundle install,命令成功。比我運行rake db:migrate,並將其與以下錯誤退出:mri_21不是有效的平臺

`mri_21` is not a valid platform. The available options are: [:ruby, :ruby_18, :ruby_19, :mri, :mri_18, :mri_19, :rbx, :jruby, :mswin, :mingw, :mingw_18, :mingw_19] 

比我一派爲錯誤並發現this,我跟着建議的步驟,即:

gem update bundler 

上述命令輸出:

Updating installed gems 
Nothing to update 

比:bundle install,這也是成功的。 但仍rake db:migrate

得到同樣的錯誤,我的紅寶石版本:ruby 1.9.3p194 無法得到軌版本由rails -v得到同樣的mri_21錯誤,但在我的應用程序的Gemfile中我有gem 'rails', '4.1.5'

編輯:但是當我試圖bundle exec rake db:migrate它那是成功的。比我跑bundle exec rails s和應用程序成功運行:

=> Booting Thin 
=> Rails 4.1.5 application starting in development on 0.0.0.0:3000 
=> Run `rails server -h` for more startup options 
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option) 
=> Ctrl-C to shutdown server 
>> Thin web server (v1.3.1 codename Triple Espresso) 
>> Maximum connections set to 1024 
>> Listening on 0.0.0.0:3000, CTRL+C to stop 

現在的問題是,如何讓每一次擺脫這種bundle exec,並且發生了什麼事與此有關。

+1

沒有嘗試'捆綁高管耙分貝:migrate' –

+0

是的,我試過,只是問了這個問題,其工作之後。 –

+1

在將PATH變量指定爲錯誤版本的rails和gems之前,您應該擁有所有的gem二進制文件,那麼您可以避免使用'bundle exec' –

回答

0

由於bundle exec只是修復了PATH,並且GEM_PATH變量,被指定到錯誤版本的Rails,和寶石之前,你應該在PATH變量的所有寶石的二進制文件。正確設置GEM_PATH。所以你可以避免撥打bundle exec。你能知道有電話的所有值:

$ bundle exec echo GEM_HOME=$GEM_HOME\; GEM_PATH=$GEM_PATH\; PATH=$PATH 
GEM_HOME=/home/malo/.rvm/gems/ruby-2.1.4; GEM_PATH=/home/malo/.rvm/gems/ruby-2.1.4:/home/malo/.rvm/gems/[email protected]; PATH=/home/malo/.rvm/gems/ruby-2.1.4/bin:/home/malo/.rvm/gems/[email protected]/bin:/home/malo/.rvm/rubies/ruby-2.1.4/bin:/home/malo/.rvm/bin:/usr/local/heroku/bin:/home/malo/.rbenv/bin:/home/malo/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/games:/usr/lib/qt4/bin 
相關問題