【问题标题】:Installed Ruby 1.9.3 manually, but ruby -v shows no such file or directory手动安装 Ruby 1.9.3,但 ruby​​ -v 显示没有这样的文件或目录
【发布时间】:2014-04-24 07:42:32
【问题描述】:

CentOS 上,我从 tar 文件手动安装了 Ruby 1.9.3。在./configure make 和 make 安装过程中我没有收到任何错误。

"which ruby" outputs "/usr/local/bin/ruby"

"whereis ruby" outputs "ruby: /usr/lib/ruby /usr/lib64/ruby /usr/local/bin/ruby /usr/local/lib/ruby"

"ruby -v" outputs "-bash: /usr/bin/ruby: No such file or directory"

echo $PATH 输出 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/dell/srvadmin‌​/bin:/opt/dell/srvadmin/sbin:/root/bin 所以它看起来 /usr/local/bin/usr/bin 之前

【问题讨论】:

  • 你检查过'/usr/bin/ruby'是否存在吗?如果你的用户有权限?
  • 感谢 Up_One,'/usr/bin/ruby' 不存在。我想我不知道如何让 ruby​​ 查看安装的位置。
  • echo $PATH 显示什么?

标签: ruby centos ruby-1.9.3


【解决方案1】:

您需要编辑您的PATH 环境变量以在/usr/bin 之前查看/usr/local/bin

详情请见this answer

最简单的方法是使用以下行编辑/创建~/.profile

export PATH=/usr/local/bin:$PATH

将那个目录添加为它首先查看的目录。(然后创建一个新的 shell,或者source ~/.profile 重新运行其中的命令。)

编辑:如果/usr/local/sbinPATH 中的第一项)有一个指向ruby 的符号链接指向/usr/bin/ruby,您应该删除此文件,或者创建一个新文件符号链接,例如

$ cd /usr/local/sbin
$ sudo rm ruby
$ sudo ln -s /usr/local/bin/ruby
$ ls -l ruby
lrwxr-xr-x  1 root  root  19 Mar 18 09:01 ruby -> /usr/local/bin/ruby

【讨论】:

  • 感谢 Phrogz,echo $PATH 输出 '/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/dell /srvadmin/bin:/opt/dell/srvadmin/sbin:/root/bin' 所以看起来 /usr/local/bin 在 /usr/bin 之前
  • @deluxe 在同一个 shell 中,你只输入了ruby -v,它的响应是/usr/bin/ruby?这似乎非常令人惊讶。你有/usr/local/bin/ruby 吗?它是否有效,例如/usr/local/bin/ruby -v?
  • 是的,所有这些都发生在同一个 shell 中。所以我运行了 /usr/local/bin/ruby -v 它向我显示了已安装的适当版本的 ruby​​。这是否意味着我应该做好准备?
  • @deluxe 这表明它已正确安装并且正在运行。我们仍然需要修复它,以便ruby 调用正确的可执行文件。查看/usr/local/sbin:是否有ruby 文件,可能是指向/usr/bin/ruby 的符号链接文件?如果是这样,请删除该文件,或将其更改为指向/usr/local/bin/ruby 的链接。 (请参阅我编辑的答案。)
  • 这似乎有点奇怪。 ls -la in /usr/local/sbin 向我显示 0 个文件,但显示“总共 8 个”。里面没有列出任何 ruby​​ 文件。
猜你喜欢
  • 2013-04-06
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多