只需通過RVM更新紅寶石臨時服務器上:更新紅寶石在生產,現在Rails會無法啓動,因爲依舊引用老紅寶石
$ rvm upgrade 1.9.3-p327 1.9.3-p362
我說「是」所有的遷移和別名問題,包括刪除老紅寶石。
現在正從客運錯誤,每當我嘗試訪問Rails應用程序:
Error message:
dlopen(/Library/WebServer/rails/myapp/shared/bundle/ruby/1.9.1/gems/bcrypt-ruby-3.0.1/lib/bcrypt_ext.bundle, 9):
Library not loaded: /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/libruby.1.9.1.dylib
Referenced from: /Library/WebServer/rails/myapp/shared/bundle/ruby/1.9.1/gems/bcrypt-ruby-3.0.1/lib/bcrypt_ext.bundle
Reason: image not found - /Library/WebServer/rails/myapp/shared/bundle/ruby/1.9.1/gems/bcrypt-ruby-3.0.1/lib/bcrypt_ext.bundle
我已經重新安裝了乘客......還跑cap deploy
略有更新Gemfile
。但似乎仍然有一些對舊的Ruby的引用。 這裏發生了什麼,以及如何更新或重新編譯,所以寶石等引用新的Ruby?是否有一些我可以在Capistrano中指定的標誌強制重新編譯寶石(假設這是問題)?
編輯(加入一些RVM信息):
我使用的「多用戶」安裝RVM此服務器上,因爲和寶石安裝在:/Library/WebServer/rails/popup/shared/bundle/ruby/1.9.1/gems
,而不是在那裏可以預計他們:/usr/local/rvm/rubies/ruby-1.9.3-p362/lib/ruby/gems/1.9.1/gems
。從來沒有真正理解RVM在多用戶安裝中做了什麼,但它已經工作。
所以,我不能真的$ rvm gemset use myapp
然後bundle install
,因爲我不認爲這將安裝在正確的目錄。
這裏的Capistrano的的過程中bundle install
任務輸出:
* 2013-01-03 19:23:22 executing `bundle:install'
* executing "cd /Library/WebServer/rails/myapp/releases/20130104032317 && bundle install --gemfile /Library/WebServer/rails/myapp/releases/20130104032317/Gemfile --path /Library/WebServer/rails/myapp/shared/bundle --deployment --quiet --without development test"
您正在使用Apache或nginx的?如果apache,你有沒有在任何時候更新httpd.conf中包含的模塊?我很好奇,如果Web服務器試圖使用一個壞的乘客模塊。 –
** apache **。添加了3行到'httpd。乘客安裝後(如往常一樣)。 – Meltemi