【问题标题】:Why does ZSH return "Command not found" error for my RVM gems?为什么 ZSH 会为我的 RVM gem 返回“找不到命令”错误?
【发布时间】:2012-03-05 04:09:19
【问题描述】:

我曾经运行 Mac Os X Lion 附带的默认 bash 终端,但最近通过 Oh My Zsh 插件升级到 ZSH

从那时起,我在使用 Ruby gem 时遇到了一个奇怪的错误。

本质上,所有 gem 都会返回“找不到命令”错误,即使它们已安装。


这是一个直接来自我的 ZSH 终端的示例:

  1. 显示 RVM ruby​​ 正在正常运行。
  2. rvm list 显示我的 RVM ruby​​ 是我想要的默认值。
  3. rvm gem list 表明我的 gem 已安装,注意 sass gem
  4. 运行一个简单的sass --watch 命令返回zsh: command not found: sass
  5. 以防万一,我的$PATH 变量输出。

    Jannis-Mac-Pro: /Volumes/Storage2/Sites/git/mathewhawley.com/static
    → which ruby
    /Users/jannis/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
    
    Jannis-Mac-Pro: /Volumes/Storage2/Sites/git/mathewhawley.com/static
    → rvm list     
    
    rvm rubies
    
    =* ruby-1.9.2-p290 [ x86_64 ]
    
    # => - current
    # =* - current && default
    #  * - default
    
    
    Jannis-Mac-Pro: /Volumes/Storage2/Sites/git/mathewhawley.com/static
    → rvm gem list
    Please note that `rvm gem ...` is only an alias to `rvm do gem ...`,
     it might work different as in earlier versions of RVM and will be shortly removed!
     Also note that you do not have to prefix every command with `rvm`, they should just work by itself.
    `rvm do gem list` is deprecated, use `rvm all do gem list` or `rvm 1.9.2 do gem list` instead.
    
    *** LOCAL GEMS ***
    
    addressable (2.2.7, 2.2.6)
    chunky_png (1.2.5)
    compass (0.11.7, 0.11.6, 0.11.5)
    css_parser (1.2.6)
    fssm (0.2.8.1, 0.2.7)
    grid-coordinates (1.2.0)
    haml (3.1.4, 3.1.3)
    htmlentities (4.3.1)
    json (1.6.5)
    nokogiri (1.5.0)
    oily_png (1.0.2)
    premailer (1.7.3)
    rake (0.9.2.2, 0.9.2)
    rb-fsevent (0.9.0, 0.4.3.1)
    rdoc (3.12)
    rubygems-update (1.8.17, 1.8.15, 1.8.13, 1.8.11)
    sass (3.1.15, 3.1.12, 3.1.10)
    stitch (0.1.3.2)
    
    Jannis-Mac-Pro: /Volumes/Storage2/Sites/git/mathewhawley.com/static
    → sass --style compressed --watch scss:css
    zsh: correct 'sass' to 'case' [nyae]? n
    zsh: command not found: sass
    
    Jannis-Mac-Pro: /Volumes/Storage2/Sites/git/mathewhawley.com/static
    → echo $PATH
    /Users/jannis/.rvm/gems/ruby-1.9.2-p290@global/bin:/Users/jannis/.rvm/rubies/ruby-1.9.2-p290/bin:/Users/jannis/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
    

如果有人知道为什么一切似乎都在运行并已安装,但实际上并没有找到并运行 gem 命令,我将不胜感激。

【问题讨论】:

  • 尝试在适当的 gem 目录中手动定位二进制文​​件。例如:/Users/jannis/.rvm/gems/ruby-1.9.2-p290/gems/sass-3.1.15/bin/。它也应该在您的 /Users/jannis/.rvm/gems/ruby-1.9.2-p290@global/bin 中。这样至少你可以使用它,直到找到合适的修复方法。

标签: rubygems rvm zsh


【解决方案1】:

检查你的 rc 文件

  • .zshenv
  • .zshrc
  • .zlogin
  • .zprofile

很可能其中一个PATH 在获得 RVM 后被重置

还有一些 oh-my-zsh 插件会破坏东西,请尝试禁用它们并逐个启用。

【讨论】:

  • 嗯……首先感谢您的回答!我浏览了所有文件,但 PATH 没有被重置,我目前使用的唯一插件是 git 一个我已经禁用的插件,但也没有帮助。仔细检查后,我注意到我似乎无法为新的终端实例设置默认的 ruby​​ gem,这是问题所在。使用rvm use ruby-1.9.2-p290 --default 会将其设置为默认值,但当我关闭并打开一个新的终端窗口rvm list 时,将表明该版本的ruby 应该是默认值没有被使用。有什么想法吗?
  • 卫生署!我找到了原因,在.zshrc 文件的最后一行中,我有PATH=$PATH:$HOME/.rvm/bin,而行首没有export。现在这条线是export PATH=$PATH:$HOME/.rvm/bin,一切都很好。感谢您的帮助。
【解决方案2】:

在我的情况下,这与 ZSH complains about RVM __rvm_cleanse_variables: function definition file not found 有关,并按照那里的说明解决了它。

【讨论】:

    【解决方案3】:

    按照 rvm 安装文档,我在 ~/.zshrc 中添加 2 行

    #add $PATH in path
    export PATH="$PATH: /opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/Users/m/Downloads/temp/bin:/Applications/apache-ant-1.9.6/bin:/Users/m/Library/Android/sdk/platform-tools:/Users/m/Library/Android/sdk/tools:/Users/m/Desktop/python/vlfeat/bin/maci64:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/m/bin/FDK/Tools/osx"
    source $ZSH/oh-my-zsh.sh
    #rvm puby need this, get this file
    source ~/.profile
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 2021-08-30
      • 2022-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多