gpt4 book ai didi

ruby - 从另一个不使用 rvm 的用户调用 ruby​​ 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:14 25 4
gpt4 key购买 nike

当我需要从我的 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>'

它似乎看不到其他用户创建的包。知道需要更改什么吗?

我想在 supervisor 中运行这个脚本,但这是一回事。

最佳答案

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

详细说明:

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

  rvm use 1.9.3
echo $PATH

现在复制包含 rvm word 的路径,在我的例子中是

/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_pa​​th:$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 放在 user2 a/c 的 ~/.bashrc 中。

关于ruby - 从另一个不使用 rvm 的用户调用 ruby​​ 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16378046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com