从不使用rvm的其他用户调用ruby脚本

时间:2013-05-04 19:19:05

标签: ruby rvm

当我需要从我的linux用户“user1”运行脚本时,我执行以下命令(在使用“user1”登录后立即执行):

rvm use 1.9.3
cd /var/proj
ruby main.rb

开发此脚本时,我创建了一个包含bundle install的包,读取了我的Gemfile(包含httparty和其他内容)。

这工作正常(没有理由不起作用:))

当我使用另一个用户“user2”登录时,我想执行脚本但不能让它工作:

cd /var/proj
/home/user1/.rvm/rubies/ruby-1.9.3-p327/bin/ruby main.rb

我得到的错误:

/home/user1/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- httparty (LoadError)
from /home/user1/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from main.rb:3:in `<main>'

似乎无法看到其他用户创建的捆绑包。有什么需要改变的想法吗?

我想在主管中运行这个脚本,但这是同样的事情。

1 个答案:

答案 0 :(得分:0)

这不是推荐的,但您可以使用其他空调的RVM。只需在另一个用户a / c中设置rvm所需路径即可。

详细说明:

首先转到user1并按照以下步骤操作

  rvm use 1.9.3
  echo $PATH

现在复制包含rvm字的路径,在我的情况下是

/home/paritosh/.rvm/gems/ruby-1.9.3-p194/bin:/home/paritosh/.rvm/gems/ruby-1.9.3-p194@global/bin:/home/paritosh/.rvm/rubies/ruby-1.9.3-p194/bin:/home/paritosh/.rvm/bin 

现在转到另一个user2 a / c并使用PATH=copied_path:$PATH所以在我的情况下它是

PATH=/home/paritosh/.rvm/gems/ruby-1.9.3-p194/bin:/home/paritosh/.rvm/gems/ruby-1.9.3-p194@global/bin:/home/paritosh/.rvm/rubies/ruby-1.9.3-p194/bin:/home/paritosh/.rvm/bin:$PATH

现在转到

 cd /var/proj 
 ruby main.rb

顺便说一句,如果你想让路径永久化,请将PATH放在~/.bashrc user2个{/ 1}}中。