我的RVM以root用户身份安装。 当我试图启动独角兽套接字时,它会打印
user@9001-3:~$ /etc/init.d/unicorn start
Starting myapp app: /usr/bin/env: ruby: No such file or directory
unicorn.
但如果我输入
user@9001-3:~$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
/usr/local/rvm/gems/ruby-1.9.2-p180/bin/unicorn
路径存在。
我的独角兽配置:https://gist.github.com/1010519
答案 0 :(得分:10)
/etc/init.d/unicorn
不知道在哪里找到Ruby,因为它是通过RVM管理的。通常,您的.bashrc
或类似文件会被执行并设置环境;这不会发生在init脚本中(或者可能是root执行的任何其他内容)。
解决方案是使用包装器。例如,要创建一个名为system_ruby
的二进制文件来加载RVM的1.9.2p180环境而然后执行ruby
,请执行以下操作:
rvm wrapper ruby-1.9.2-p180 system ruby
有关详细信息和更多详细信息,请查看this answer of mine,它可解决类似问题。
答案 1 :(得分:1)
符号链接也可以,
which ruby<your version>
ln-s /ruby/path/ruby<your version> /ruby/path/ruby
答案 2 :(得分:0)
类型:
which ruby
(显示ruby bin路径)然后输入:ln -s (change_to_ruby_path) /usr/bin/env/ruby
(为您的系统构建正确的访问权限)
答案 3 :(得分:0)
我遇到了同样的问题,这对我来说是
rvm --default use <version>