2015-10-21 51 views
0

我有軌項目紅寶石在我的服務器和該用戶:問題執行Ruby腳本trhough束

projectUser:擁有該項目的文件夾的用戶,並在執行

bundle exec rails runner script/some-script.rb 

它工作

MYUSER:我登錄與它是在sudoers組中,所以我這樣做:

sudo su 

su projectUser 

cd path/toRuby/OnRailsApp 

bundle exec rails runner script/some-script.rb 

它不」工作:

Coul not find 'some-gem' in any of the sources 
Run bundle install to install missing gems 

,當我從根到projectUser與蘇 -

我有另一個錯誤:

block in <class:Application>': undefined method `each' for nil:NilClass (NoMethodError) 

所以只能用我的作品使ssh直接與projectUser

我檢查了紅寶石環境,有不同的:

蘇:使用不同Ruby 2.0.0版本

projectUser:使用了Ruby 2.1.6

蘇 - :使用了Ruby 2.1.6,所有看起來是一樣的

我不知道該怎麼與MYUSER SSH存取權限,然後改變projectUser並做出它的作品,我沒有使用Capistrano的,但我認爲這個問題是在這裏指出一些事情類似:blobstackoverflow

+0

您使用哪個版本管理器?寶石(據我所知)通常安裝在用戶空間中。 – Drenmi

+1

沒有什麼好的理由可以用sudo來運行rails。 – max

+0

我不像rails那樣運行sudo,我執行su projectUser或su -projectUser之前執行bundle – anquegi

回答

0
  1. 告訴我的寶石名稱,可能是這個寶石需要一些依賴。
  2. 解決無類錯誤。
  3. 您可以檢查哪個用戶正在運行軟件包安裝。實際上我們設置了rvm和ruby path $ Home變量。如果用戶不同,那麼它不能訪問像'ubuntu'這樣的默認用戶的homme變量,可能是這可能是問題:)
  4. 可能是項目用戶self.sbasrc文件其中ruby &需要rvm路徑設置。
+0

您好gem是acts_as_paranoid-0.4.3,但我可以安裝它。 – anquegi

0

當我登錄與用戶項目SSH有變量:

$ export 
... 
RAILS_ENV="production" 
... 

當我做otherUser =>根=>蘇 - antifraude這個變量是不是當你與出口檢查,所以你有兩個解決方案:

出口這一變量執行這樣的腳本

RAILS_ENV=production bundle exec rails runner script/update_folders_names.rb 

而與此它的工作原理