【发布时间】:2011-11-11 17:32:09
【问题描述】:
我已经在 Linux Mint 11 上通过 RVM 安装了 Ruby。它似乎安装得很好:当我输入 rvm | head -1,我得到“rvm 是一个函数”。输入 ruby -v 给我 1.9.2p290。我可以从 bash 终端窗口运行 ruby 脚本。但是,当我尝试从说 gvim(我有一个映射到“ruby”的快捷方式)或 geany 或 gedit(同上)运行相同的脚本时,我得到“ruby:找不到命令”(在 gvim 中)或“ruby : 未找到”(在 geany 或 gedit 中)。
这里有更多信息:“which ruby”给了我:$HOME/.rvm/rubies/ruby-1.9.2-p290/bin/ruby。 $HOME/.rvm/rubies/ruby-1.9.2-p290/bin 在我的 .bashrc 路径中。在另一台 Linux Mint 11 机器上,一切正常,“which ruby”给了我 $HOME/.rvm/bin/ruby。此外,在一切正常的机器上,我有一个 $HOME/bin 文件夹,我不知道它来自哪里,但与我的 .rvm 文件夹在同一天创建。除其他外,它还包含指向 $HOME/.rvm/wrappers 文件夹中的 shell 脚本的链接。
【问题讨论】:
-
首先,在两台机器上运行
rvm get head,并按照它输出的说明进行操作,以确保您的 RVM 是最新的。然后在两台机器上运行rvm info并比较输出。 -
Did both--"rvm info" 在两台机器上显示相同,除了在 PATH 语句中添加了“$HOME/bin”(以及随附的 $HOME/bin 目录) ) 在工作的机器上。我的问题是这个目录是从哪里来的?我当然不记得创建它。它有 shell 脚本和指向 erb、gem、rake、ruby 等 shell 脚本的链接。
-
更多有趣的信息:在两台机器的
$HOME/.profile中,存在以下行:# set PATH so it includes user's private bin if it exists if[-d "$HOME/bin"] ; then PATH="$HOME/bin:$PATH" fi当然,它确实存在于工作的机器上;不在那个没有。 -
所以我想我已经解决了;或者至少想出一个解决方法——不知道这是否是最佳实践。根据我上面最后一条评论中的信息,我在
.profile文件中为$HOME/.rvm/bin添加了类似的if语句。现在可以了!显然,mint 似乎有条件地加载了.profile文件;我将不得不对此进行更多研究,但至少我现在已经到了工作点。谢谢大家的指点。
标签: ruby rvm linux-mint