ruby-on-rails - 安装和运行 rails 困难(/usr/local/bin/rails:没有这样的文件或目录),曾经恢复到早期的 rails 版本
问题描述
在我将 rails 放回早期版本的项目之后,在做 rails new blah 时出错
rails 工作正常,我可以rails new blah
我想测试一个项目的更改 rails 版本。到目前为止,我的经验是更改项目的 rails 版本不会在全球范围内更改 rails!所以我的经验是,当 CD 出目录并做时rails -v
,我仍然在 5.2.2.1
所以我做了一个项目,旨在推回rails 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$
我做 gem list 看看我有哪些 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 卸载 rails,我卸载了所有版本。然后我做了 sudo gem install rails 。我启动了一个新的终端窗口。导轨-v
当我这样做时,which rails
它会说/usr/bin/rails
这是一种改进。
但是当我做 rails -v 它说
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 包括完全卸载 Rails提到的 railties
另外,我没有使用任何版本控制管理器,没有 rvm 或 rbenv
解决方案
好的,解决方案是完全卸载rails ,然后重新安装rails。但我遇到的问题是它没有完全卸载 rails。
为了完全卸载rails,这里提到了完全卸载Rails
你不仅要卸载 rails,还要卸载一个叫做 railties 的 gem!
所以,当你列出 rails gems 时,不要这样做 | grep 轨道,做 | grep rail(单数!)。即做 gem list | grep rail
,然后你会得到一个与铁路相关的宝石列表,包括铁路。
我删除/卸载了所有这些宝石。(尽管可能我只需要卸载 railties 和 rails)。
然后我处于 Rails 文件(在 osx 中是 /usr/bin/rails)消失的位置而且,那些宝石消失了,这很好。
(我不想要的是a)rails文件存在的位置并且rails给出错误或b)rails文件不存在)所以这很好,因为它被完全卸载了。
然后我做了 gem install rails,它安装了 rails 和相关的 gem。这很好。
推荐阅读
- entity - 在 Luis 上添加的实体值消失了
- javascript - 正则表达式模式匹配字符串,如“查看 1 到 10 的 100”
- mysql - 如何从 MySQL 57 中每个学生的每个 groupcode 中选择 2 个最高分?
- opencart - 打开购物车。在产品列表管理面板中显示过滤器“缺货状态”
- linux - 如何在 Ansible 中创建没有 .bashrc 的用户?
- python - 新的 pypi org 代理不适用于 sonatype nexus
- c# - ORA-00904: "Extent1"."MODIFIED_DATE": 标识符无效
- java - 如何在 Project Reactor 中为每个订阅者使用专用缓冲区?
- r - 从 R 中的列中删除整个日期时间部分,其中包含日期时间和其他一些描述
- python - 使用来自另一个多索引数据帧的 .loc 填充数据帧值的最快方法