难以安装和运行rails(/ usr / local / bin / rails:没有这样的文件或目录),曾经恢复到早期的rails版本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了难以安装和运行rails(/ usr / local / bin / rails:没有这样的文件或目录),曾经恢复到早期的rails版本相关的知识,希望对你有一定的参考价值。

在我将rails换回早期版本的项目之后执行rails new blah时出错

导轨工作正常,我可以做rails new blah

我想测试一个项目的更改rails版本。到目前为止,我的经验是改变项目的rails版本不会改变全球的rails!所以我的经验是,当CDing出一个目录并做rails -v时我仍然在5.2.2.1

所以我做了一个项目,目的是回到导轨0.8.0(就像测试一样!)

~/rubymac/test16$ cat Gemfile | grep "^gem 'rails'"
gem 'rails', '0.8.0'
~/rubymac/test16$ 

我做了bundle update rails

并且没有错误,我在Gemfile.lock中看到rails 0.8.0似乎在那里被指定所以我猜这有用了。

然后我做了cd ..并且做了rails -v期待(仍然)看到rails 5.2.2.1这是我过去的经验,当我把一个项目放回稍早版本的rails。但是rails -v没有用。并且rails new blah123也没有工作。

~/rubymac$ rails -v
(in /usr/local/lib/ruby/gems/2.5.0/gems/rails-0.8.0)
rake aborted!
LoadError: cannot load such file -- rake/rdoctask
/usr/local/lib/ruby/gems/2.5.0/gems/rails-0.8.0/Rakefile:3:in `<top (required)>'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
(See full trace by running task with --trace)
~/rubymac$ 

~/rubymac$ rails new blah2432
(in /usr/local/lib/ruby/gems/2.5.0/gems/rails-0.8.0)
rake aborted!
LoadError: cannot load such file -- rake/rdoctask
/usr/local/lib/ruby/gems/2.5.0/gems/rails-0.8.0/Rakefile:3:in `<top (required)>'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
(See full trace by running task with --trace)
~/rubymac$ 

所以我搜索并发现了这个问题new rails project error Rails 3。这表明gem install rails -v3.0.9

所以我做了gem install rails -v5.2.2.1

它没有错误

~/rubymac$ gem install rails -v5.2.2.1
Successfully installed rails-5.2.2.1
Parsing documentation for rails-5.2.2.1
Done installing documentation for rails after 0 seconds
1 gem installed
~/rubymac$ 

但是rails -v仍然不起作用

~/rubymac$ rails -v
(in /usr/local/lib/ruby/gems/2.5.0/gems/rails-0.8.0)
rake aborted!
LoadError: cannot load such file -- rake/rdoctask
/usr/local/lib/ruby/gems/2.5.0/gems/rails-0.8.0/Rakefile:3:in `<top (required)>'
/usr/local/lib/ruby/gems/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
(See full trace by running task with --trace)
~/rubymac$ 

我做宝石列表,看看我有哪些rails版本

~/rubymac$ gem list | grep "^rails ("
rails (5.2.2.1, 5.2.2, 5.2.1.1, 5.2.1, 5.2.0, 5.1.6, 5.1.4, 5.0.7.2, 5.0.7.1, 5.0.1, 5.0.0, 0.8.0)
~/rubymac$ 

我尝试卸载rails 0.8.0。它还促使我删除可执行文件,我说是的

~/rubymac$ gem uninstall rails -v0.8.0
Remove executables:
    rails

in addition to the gem? [Yn]  y               
Removing rails
Successfully uninstalled rails-0.8.0
~/rubymac$ gem list | grep "^rails ("
rails (5.2.2.1, 5.2.2, 5.2.1.1, 5.2.1, 5.2.0, 5.1.6, 5.1.4, 5.0.7.2, 5.0.7.1, 5.0.1, 5.0.0)
~/rubymac$ rails -v
-bash: /usr/local/bin/rails: No such file or directory
~/rubymac$ gem install rails -v5.2.2.1
Successfully installed rails-5.2.2.1
Parsing documentation for rails-5.2.2.1
Done installing documentation for rails after 0 seconds
1 gem installed

但也许我已经走了太远,说是先删除可执行文件,因为现在我得到'..rails:没有这样的文件或目录'

~/rubymac$ rails -v
-bash: /usr/local/bin/rails: No such file or directory
~/rubymac$ 

甚至在尝试安装5.2.2.1之后

~/rubymac$ gem install rails -v5.2.2.1
Successfully installed rails-5.2.2.1
Parsing documentation for rails-5.2.2.1
Done installing documentation for rails after 0 seconds
1 gem installed
~/rubymac$ rails -v
-bash: /usr/local/bin/rails: No such file or directory
~/rubymac$ 

添加

然后我尝试了gem uninstall rails,我卸载了所有版本。然后我做了sudo gem install rails。我开了一个新的终端窗口。 rails -v

当我做which rails它说/usr/bin/rails这是一个改进。

但是当我做轨道时 - 它说

Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.
~$ 


~$ gem list | grep rails
coffee-rails (4.2.2, 4.2.1)
jquery-rails (4.3.1, 4.1.1)
rails (5.2.2.1)
rails-controller-testing (0.1.1)
rails-dom-testing (2.0.3, 2.0.2)
rails-html-sanitizer (1.0.4, 1.0.3)
sass-rails (5.0.7, 5.0.6)
sprockets-rails (3.2.1, 3.2.0)

实际上grep rail *更好'cos包括Uninstall Rails completely提到的铁路

另外,我没有使用任何版本控制管理器,没有rvm或rbenv

答案

首先,尝试关闭终端并重新启动。有时,安装后PATH不会使用rails可执行文件进行更新。

如果失败了......

在您的终端运行中:

$ gem env

这应该告诉你宝石的安装位置。毕竟,Rails只是一颗宝石。我使用.rbenv作为Rails环境管理器。这意味着我的EXECUTABLE DIRECTORY位于:/Users/me/.rbenv/versions/2.5.1/bin我可以在该文件夹中执行:

$ ls | grep rails

我得到:

drwxr-xr-x   3 me  group   96 Mar 14 10:59 rails

是的,Rails已安装并且确实存在。如果你能找到这个,那就意味着你安装了Rails,但你的PATH找不到它。 PATH是一个环境变量,通常包含包含可执行文件的已知目录列表。当我输入rails -v时,会检查PATH。让我们确保我的PATH正常工作:

/Users/me/.rbenv/shims

好。不要担心垫片,你需要知道的是该文件夹包含我的rails可执行文件。你的应该是可执行目录的路径。现在将您的可执行目录添加到您的PATH:

export PATH=PATH:/full/path/to/EXECUTABLE_DIRECTORY

那应该是它。尝试再次运行rails。如果失败,请尝试手动运行rails可执行文件。如果失败,您的可执行文件将被破坏,或者您没有查看正确的文件(更有可能)。

如果你找不到可执行文件rails,那么rails DNE不知怎的,你需要尝试重新安装。

另一答案

好的,解决方案是完全卸载rails,然后重新安装rails。但我遇到的问题是它没有完全卸载rails。

为了完全卸载rails,这里提到了Uninstall Rails completely

你不仅需要卸载rails,还需要卸载一个名为railties的宝石!

所以,当你列出rails gem时,不要做| grep rails,do | grep rail(奇异!)。即做gem list | grep rail,然后你得到铁路相关的宝石列表,包括铁路。

我删除/卸载了所有这些宝石。 (虽然可能我只需要卸载铁路和铁路)。

那么我就处于一个位置,其中rails文件(在osx中​​是/ usr / bin / rails)已经消失了,那些宝石已经消失了,这很好。

(我不想要的是一个)rails文件在那里的位置而rails导致错误或b)rails文件不在那里)所以那就好了,因为它完全被卸载了。

然后我做了宝石安装导轨,它安装了导轨和相关的宝石。这很好。

以上是关于难以安装和运行rails(/ usr / local / bin / rails:没有这样的文件或目录),曾经恢复到早期的rails版本的主要内容,如果未能解决你的问题,请参考以下文章

Rails 协会变得难以理解

Redis安装手册

tomcat安装

Centos 7 安装 Redis 5

keepalived实现高可用

mac 10.10.2如何配置mysql?