当我需要从我的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>'
似乎无法看到其他用户创建的捆绑包。有什么需要改变的想法吗?
我想在主管中运行这个脚本,但这是同样的事情。
答案 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}}中。