/usr/bin/env ruby\u noexec\u包装器失败,没有文件或目录

/usr/bin/env ruby\u noexec\u包装器失败,没有文件或目录,ruby,rvm,environment-variables,chef-infra,Ruby,Rvm,Environment Variables,Chef Infra,当我尝试启动chef solr as服务时,它失败了,出现以下错误 # service chef-solr start Starting chef-solr: /usr/bin/env: ruby_noexec_wrapper: No such file or directory [FAILED] 但当我从命令行手动运行它时,它运行成功了 # chef-solr -d -c /etc/

当我尝试启动chef solr as服务时,它失败了,出现以下错误

# service chef-solr start
Starting chef-solr: /usr/bin/env: ruby_noexec_wrapper: No such file or directory
                                                       [FAILED]
但当我从命令行手动运行它时,它运行成功了

# chef-solr -d -c /etc/chef/solr.rb -L /var/log/chef/solr.log -P /var/run/chef/solr.pid
# echo $?
0
# ps -ef | grep chef
root      2691     1 12 04:19 ?        00:00:01 java -Xmx256M -Xms256M -Dsolr.data.dir=/var/lib/chef/solr/data -Dsolr.solr.home=/var/lib/chef/solr/home -jar /var/lib/chef/solr/jetty/start.jar
这是我的rvm信息

# rvm info

ruby-1.9.3-p194:

  system:
    uname:       "Linux Console 2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux"
    bash:        "/bin/bash => GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)"
    zsh:         " => not installed"

  rvm:
    version:      "rvm 1.15.6 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]"
    updated:      "7 hours 1 minute 51 seconds ago"

  ruby:
    interpreter:  "ruby"
    version:      "1.9.3p194"
    date:         "2012-04-20"
    platform:     "x86_64-linux"
    patchlevel:   "2012-04-20 revision 35410"
    full_version: "ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]"

  homes:
    gem:          "/usr/local/rvm/gems/ruby-1.9.3-p194"
    ruby:         "/usr/local/rvm/rubies/ruby-1.9.3-p194"

  binaries:
    ruby:         "/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby"
    irb:          "/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/irb"
    gem:          "/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/gem"
    rake:         "/usr/local/rvm/gems/ruby-1.9.3-p194/bin/rake"

  environment:
    PATH:         "/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/lib64/qt-3.3/bin:/usr/java/default/bin:/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin:/root/bin"
    GEM_HOME:     "/usr/local/rvm/gems/ruby-1.9.3-p194"
    GEM_PATH:     "/usr/local/rvm/gems/ruby-1.9.3-p194:/usr/local/rvm/gems/ruby-1.9.3-p194@global"
    MY_RUBY_HOME: "/usr/local/rvm/rubies/ruby-1.9.3-p194"
    IRBRC:        "/usr/local/rvm/rubies/ruby-1.9.3-p194/.irbrc"
    RUBYOPT:      ""
    gemset:       ""

如何解决此问题?

确保所有变量都设置正确,尤其是
PATH
GEM\u PATH
,您可以使用此代码为自己设置环境:

source /usr/local/rvm/environments/ruby-1.9.3-p194

在运行chef solr之前将其添加到服务中

我的问题与此类似,我的答案也是如此:

我的问题是

Permission denied - /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper
ruby_noexec_包装器位于
ruby-1.9.3中-p194@global
不在列出的路径中

我的解决办法是

source /usr/local/rvm/environments/ruby-1.9.3-p194@global

我选了mpapis,因为他的答案对找到我的答案至关重要。请随便选他而不是我。只是添加一个额外的答案,尝试帮助任何有类似问题的人。

答案与厨师无关,但将来可能会有所帮助

我有一个类似的问题,但因为我遵循的是在RVM中设置精简的教程。我使用RVM为精简服务生成的包装器修复了这个问题

/home/thin/.rvm/bin/bootup_thin
因此,更改了init脚本中的行

DAEMON=/home/thin/.rvm/gems/ree-1.8.7-2012.02/bin/thin


在RVM包装上发布

我尝试了所有这些答案,都失败了。但我找到了解决这个问题的另一种方法,可能会有所帮助:

gem install rubygems-bundler

您还可以从

中找到答案。在mac上安装ruby 2.0后,我遇到了这个问题。部分原因是我安装了最新的rvm

rvm get stable
然后我开始犯这个错误。也许我在这之后开了一些“宝石原始”店

无论如何,对我来说,这是有效的。警告如果你像我所做的那样继续,你的宝石将被完全移除并重建。也许你需要一个新的备份?但这是锤子

# WARNING!!! THIS RECIPE IS POTENTIALLY DESTRUCTIVE!
rvm remove ruby-1.9.3-p194 # this will remove the gemsets for this version as well
rvm install ruby-1.9.3-p194 # time for coffee
rvm use ruby-1.9.3-p194
rvm gemset create aura-rover-config # my gemset name
rvm use ruby-1.9.3-p194@aura-rover-config # do I need to do this?  Can't 'member
bundle
# now it all works

有趣的是,我在安装的Gemset上做的所有小改动都被吹走了。进行备份

这不仅仅是chef solr的情况,同时引导所有组件chef solr、chef server、chef expander都会像这样失败,并且每次我引导时都会生成初始化脚本。因此,对
source/etc/profile.d/rvm.sh
inside/etc/函数进行了粗略的修改,现在可以正常工作了。不确定它是否是正确的修复程序。如果系统中的所有服务都提供了
/etc/functions
,那么这是正确的解决方案,它为所有服务提供了对ruby的访问,并使用了轻量级方法—只需更新环境,不涉及额外的包装器/路由。您还可以通过
source/home/deploy/.rvm/environments/default
ooooo加载默认ruby,甚至
source~/.rvm/environments/default
,正如@Besi所说的,如果rvm是在没有root权限的情况下安装的,它将安装在用户主页中。这解决了我的问题,一块宝石不在我的垃圾箱路径上。我有一个类似的问题,我按照以下思路修复它:
rvm get stable
# WARNING!!! THIS RECIPE IS POTENTIALLY DESTRUCTIVE!
rvm remove ruby-1.9.3-p194 # this will remove the gemsets for this version as well
rvm install ruby-1.9.3-p194 # time for coffee
rvm use ruby-1.9.3-p194
rvm gemset create aura-rover-config # my gemset name
rvm use ruby-1.9.3-p194@aura-rover-config # do I need to do this?  Can't 'member
bundle
# now it all works