【问题标题】:/usr/bin/env ruby_noexec_wrapper fails with no file or directory/usr/bin/env ruby​​_noexec_wrapper 失败,没有文件或目录
【发布时间】:2012-08-21 02:13:03
【问题描述】:

当我尝试将 chef-solr 作为服务启动时,它失败并出现以下错误

# 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:       ""

这里是对应的环境变量

declare -x GEM_HOME="/usr/local/rvm/gems/ruby-1.9.3-p194"
declare -x GEM_PATH="/usr/local/rvm/gems/ruby-1.9.3-p194:/usr/local/rvm/gems/ruby-1.9.3-p194@global"
declare -x IRBRC="/usr/local/rvm/rubies/ruby-1.9.3-p194/.irbrc"
declare -x MY_RUBY_HOME="/usr/local/rvm/rubies/ruby-1.9.3-p194"
declare -x 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"
declare -x RUBY_VERSION="ruby-1.9.3-p194"

如何解决这个问题?

【问题讨论】:

标签: ruby rvm environment-variables chef-infra


【解决方案1】:

确保所有变量都设置正确,尤其是PATHGEM_PATH,您可以使用此代码为您设置环境:

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

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

【讨论】:

  • 这不仅是 chef-solr 的情况,同时引导所有组件 chef-solr、chef-server、chef-expander 都像这样失败,并且每次引导时都会生成 init 脚本。因此,在 /etc/functions 中对source /etc/profile.d/rvm.sh 进行了粗略的修复,它现在可以工作了。不确定这是否是正确的解决方法。
  • 如果/etc/functions 来自您系统中的所有服务,那么是的,这是正确的解决方案,它可以访问所有服务的 ruby​​,并且它使用轻量级方法 - 只需更新环境,不涉及额外的包装器/路由。
  • 你也可以通过source /home/deploy/.rvm/environments/default加载默认ruby
  • 噢噢甚至source ~/.rvm/environments/default
  • 正如@Besi 所说,如果RVM 是在没有root 权限的情况下安装的,它会安装在用户家中。这解决了我的问题,即不在我的 bin 路径上的 gem。
【解决方案2】:

我的问题很相似,我的回答也是:

我的问题是

Permission denied - /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper

ruby_noexec_wrapper 在ruby-1.9.3-p194@global 中,不在列出的路径中

我的解决方案是

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

我对 mpapis 投了赞成票,因为他的回答对于找到我的答案至关重要。随意支持他而不是我。只需添加一个额外的答案来尝试帮助遇到类似问题的任何人。

【讨论】:

    【解决方案3】:

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

    我遇到了类似的问题,但是因为我正在按照教程在 RVM 中设置瘦。我通过使用 RVM 为瘦服务生成的包装器进行了修复

    /home/thin/.rvm/bin/bootup_thin
    

    因此在初始化脚本中更改了行

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

    DAEMON=/home/thin/.rvm/bin/bootup_thin
    

    发布在 RVM 包装器RVM and thin, root vs. local user

    【讨论】:

      【解决方案4】:

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

      gem install rubygems-bundler
      

      您也可以通过noexec library找到答案

      【讨论】:

        【解决方案5】:

        在我的 Mac 上安装 ruby​​ 2.0 后我遇到了这个问题。部分原因是我安装了最新的 rvm

        rvm get stable
        

        然后我开始收到此错误。也许我在这之后跑了一些'gemset pristine'。

        无论如何,对我来说,这行得通。警告!如果您按照我的做法进行操作,您的红宝石宝石将被完全移除并重建。也许你想要一个新的备份?但这是锤子。

        # 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 中进行的所有小技巧,都被吹走了。进行备份

        【讨论】:

          猜你喜欢
          • 2016-02-20
          • 2013-03-11
          • 1970-01-01
          • 1970-01-01
          • 2017-03-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多