我显然错过了一些东西..."Ruby"不起作用,但'./ruby'起作用(CentOS 5.5,从源代码安装)



试图让rails服务器运行良好。

  • 从rails页面下载ruby 1.8.7。
  • did ./configure/make/install,安装好了。
  • 尝试。/ruby -v从文件夹,它工作。

我觉得我已经从了解一些unix到完全失去了。显然,ruby是作为一个"守护进程"工作的,但没有像它应该的那样运行。任何帮助将非常感激。在这个过程中失去太多的头发:(

j .

你能看到make install把ruby可执行文件放在哪里吗?

如果有,检查这个目录是否在你的$PATH中

echo $PATH

一般来说,unix需要知道在哪里可以找到能够运行它的可执行文件。它使用$PATH来查找这个可执行文件。

所以如果你输入"ruby",它会查找你的$PATH,然后在每个目录中查找一个名为"ruby"的文件。如果在这些目录中都找不到,那么应该然后在当前目录中查找。

因此,如果出现以下情况,整个过程将失败:a)包含可执行ruby文件的目录不在$PATH AND中的任何目录中B)可执行文件不在当前目录

…另一种选择是,在这些目录中有可用…但实际上并没有被您标记为可执行的。你可以检查一下,确保你在一个包含ruby文件的目录下,然后输入"ls -l ./ruby"

将列出ruby文件及其所有权限和所有者。它应该是这样的:

lrwxrwxrwx 1 root root 7 2010-02-14 10:45 ./ruby

注意rwx。如果你的ruby没有x,那么你需要使用chmod添加可执行权限,例如:"chmod 755 ./ruby"

还要注意"root root"——这意味着它由root拥有——一般来说,这意味着只有root才能运行它。在这个特殊的例子中,它对每个人都有eXecute权限,所以每个人都可以运行它,但是如果你没有这样的执行权限集,那么这意味着如果你试图以自己的身份运行它,你将没有权限,你应该添加完全权限或尝试使用:"sudo ruby"

然而——听起来——最有可能的问题是你的$PATH中没有ruby可执行文件的目录。即使你现在让它运行,你也需要修复这个问题——因为,将来,你需要从当前目录以外的目录运行ruby。

你将需要谷歌的说明添加到你的$PATH -因为它是不同的取决于你的linux版本和当前的shell,但这不是很难。

您正在运行哪个shell ?如果tcsh,您可能需要"重新hash"。否则,正如leifg所说,将包含ruby可执行文件的目录添加到路径中。

最新更新