【问题标题】:rvm, ruby command not found in Rye gemrvm,在 Rye gem 中找不到 ruby​​ 命令
【发布时间】:2011-10-06 08:44:11
【问题描述】:

我正在使用 ruby​​ 1.8 并安装了 gem https://github.com/delano/rye 需要远程 ssh 到 amazone。

require 'rubygems'
require 'rye'

instance = Rye::Box.new('amazone_ip', :user => "ubuntu", :safe => false, :keys => "amazone_key")

运行这些命令时出现错误

instance.execute 'rvm list' #bash: rvm: command not found
instance.execute 'ruby -v' #bash: ruby: command not found

如果我运行命令 instance.execute 'ls -la' 就可以了。 我认为 $PATH 加载有问题,我已经检查过了

instance.execute 'echo $PATH'
#[/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games, , 0, ]

#But it's in server:
$echo $PATH
#/home/ubuntu/.rvm/gems/ruby-1.9.2-p290/bin:/home/ubuntu/.rvm/gems/ruby-1.9.2-p290@global/bin:/home/ubuntu/.rvm/rubies/ruby-1.9.2-p290/bin:/home/ubuntu/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

如果有人能帮助解决这个问题,我将不胜感激。 提前致谢。

【问题讨论】:

    标签: shell rvm


    【解决方案1】:

    我打赌你没有加载 rvm,因为它要么没有加载你的本地 .bashrc,要么你的 .bashrc 中没有 RVM 加载行(采购行),它在你的 .bash_profile 中。只需将 RVM 行移动到您的 .bashrc,然后在 .bash_profile 末尾获取 .bashrc。

    如果它在 sh 兼容模式下调用 bash,那么您可以在 .profile 中设置 BASH_ENV 并将其指向您的 .bashrc,然后以这种方式加载 RVM。

    【讨论】:

    • rvm 在我的本地 .bashrc 中加载,但在使用 rye 连接时它不会在服务器上加载 rvm 命令。你能告诉我更多关于解决方案的细节吗?
    • 恐怕我做不到。我从来没有用过黑麦。
    【解决方案2】:

    试试

    instance.execute('source ~/.bash_profile && rvm list')
    

    【讨论】:

      【解决方案3】:

      如果其他人发现它很有用,因为这是一个老问题 -

      对于非登录 shell,不会加载用户的路径和环境变量。

      我需要将其添加到我的.bashrc 文件的最顶部。

      [[ -s "/home/douser/.rvm/scripts/rvm" ]] && source "/home/douser/.rvm/scripts/rvm"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多