我的服务器上有一个ruby on rails项目和这个用户:
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
当我从root到projectUser时使用su -
我有另一个错误:
block in <class:Application>': undefined method `each' for nil:NilClass (NoMethodError)
所以它只适用于我直接使用projectUser
制作ssh我检查了红宝石环境并且有不同之处:
su:使用不同的ruby版本2.0.0
projectUser:使用ruby 2.1.6
su - :使用ruby 2.1.6,看起来都一样
我不知道如何使用myUser访问ssh,然后更改为projectUser并使其正常工作,我不使用capistrano,但我认为问题是类似的东西:blob和{{ 3}}
答案 0 :(得分:0)
答案 1 :(得分:0)
当我使用用户项目使用ssh登录时,有一个变量:
$ export
...
RAILS_ENV="production"
...
当我执行otherUser =&gt; root =&gt; su - antifraude当你用export导出时,这个变量不是,所以你有两个解决方案:
导出此变量像这样执行脚本
RAILS_ENV=production bundle exec rails runner script/update_folders_names.rb
这样就可以了。