Rails不断告诉我它当前尚未安装


85

rvm过去经常管理不同的红宝石及其宝石。我的外壳是zsh,其中oh-my-zsh配置了基本设置。启用的oh-my-zsh插件是ruby,rails,osx和git。这是我用来安装ruby-1.8.7和rails-3.0.7的命令。

rvm install 1.8.7
rvm use 1.8.7
gem install rails -v=3.0.7

然后我输入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.

我也尝试了更彻底的安装,例如rubygems切换到ruby-1.8.7后重新安装,或者创建了一个全新的gemset,但是没有运气。

这是rvm信息:

ruby-1.8.7-p352@rails:

  system:
    uname:       "Darwin yicai.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:32:41 PDT 2011; root:xnu-1504.15.3~1/RELEASE_X86_64 x86_64"
    bash:        "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)"
    zsh:         "/bin/zsh => zsh 4.3.9 (i386-apple-darwin10.0)"

  rvm:
    version:      "rvm 1.8.6 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]"

  ruby:
    interpreter:  "ruby"
    version:      "1.8.7"
    date:         "2011-06-30"
    platform:     "i686-darwin10.8.0"
    patchlevel:   "2011-06-30 patchlevel 352"
    full_version: "ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin10.8.0]"

  homes:
    gem:          "/Users/nil/.rvm/gems/ruby-1.8.7-p352@rails"
    ruby:         "/Users/nil/.rvm/rubies/ruby-1.8.7-p352"

  binaries:
    ruby:         "/Users/nil/.rvm/rubies/ruby-1.8.7-p352/bin/ruby"
    irb:          "/Users/nil/.rvm/rubies/ruby-1.8.7-p352/bin/irb"
    gem:          "/Users/nil/.rvm/rubies/ruby-1.8.7-p352/bin/gem"
    rake:         "/Users/nil/.rvm/bin/rake"

  environment:
    PATH:         "/Users/nil/.rvm/gems/ruby-1.8.7-p352@rails/bin:/Users/nil/.rvm/gems/ruby-1.8.7-p352@global/bin:/Users/nil/.rvm/rubies/ruby-1.8.7-p352/bin:/Users/nil/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/sbin"
    GEM_HOME:     "/Users/nil/.rvm/gems/ruby-1.8.7-p352@rails"
    GEM_PATH:     "/Users/nil/.rvm/gems/ruby-1.8.7-p352@rails:/Users/nil/.rvm/gems/ruby-1.8.7-p352@global"
    MY_RUBY_HOME: "/Users/nil/.rvm/rubies/ruby-1.8.7-p352"
    IRBRC:        "/Users/nil/.rvm/rubies/ruby-1.8.7-p352/.irbrc"
    RUBYOPT:      ""
    gemset:       "rails"

gem版本是最新的1.8.10。

Answers:


92

我今天有这个问题。与您的问题并不完全相关,但是由于此页面是我搜索“系统上当前未安装滑轨”时Google出现的页面,因此我想添加一下答案:

发生的事情是我将ruby 1.9.2与rails一起使用了一段时间,但随后我需要使用ruby 1.8.7运行我发现的其他脚本。

之后,我想按系统更改回使用1.9.2,这是问题开始的地方:

$ rvm list

=> ruby-1.8.7-p352 [ x86_64 ]
ruby-1.9.2-p290 [ x86_64 ]


$ rvm use 1.9.2

我认为那可以解决问题。但是,不,这会提示我“当前未在该系统上安装导轨”

我忘记的是我已经使用rvm gemset配置了rails。因此,当我选择要激活的红宝石版本时,需要指定正确的宝石集。

$ rvm gemset list_all


gemsets for ruby-1.8.7-p352 (found in /Users/asgeo1/.rvm/gems/ruby-1.8.7-p352)
global


gemsets for ruby-1.9.2-p290 (found in /Users/asgeo1/.rvm/gems/ruby-1.9.2-p290)
global
rails31


$ rvm use ruby-1.9.2-p290@rails31

做到了。


即使只安装了一个版本,我也为我工作。它被设置为默认值,但是由于某种原因它没有被设置为当前值。
hcarreras 2015年

谢谢-将Ruby从2.2.1升级到2.2.3后,我开始收到此错误。rvm使用ruby-2.2.1使Rails再次开心。
slocumro

110

如果在安装rails之后立即运行rails命令,则需要重新启动终端,然后命令才能被识别。


17
h!好吧,我一生只有15分钟,我永远都不会回来。谢谢。
亚当·韦特

谢谢...这应该是最重要的。每个人都会犯的愚蠢错误。
Shashwat Kumar

为我工作。但为什么?
阿卡什·阿加瓦尔

@AkashAggarwal,因为它执行rvm脚本,该脚本允许识别rails命令(此步骤可能是在安装过程中添加到您的.bash_profile中)。或者,您可以执行Dhaulagiri建议在当前Shell中重新加载的操作。
凯尔·克莱格

这是正确的答案。只需重启终端即可。
请看

29

Mac OS X,rbenv和Rails

我遇到了完全相同的问题,但rbenv不是rvm。验证正确的.bash_profile之后。

.bash_profile

export PATH="$HOME/.rbenv/bin:/usr/local/bin:$PATH"

eval "$(rbenv init -)"

重新启动外壳

exec $SHELL -l

检查路径

echo $PATH

最后

我反复安装和卸载了rails,但是在rbenv进行重新哈希处理之后,就再也没有将它放在.rbenv / bin目录中。最后,我做了一个,find . -name rails并卸载了所有返回的宝石,并卸载了rails。然后:

$ gem install rails
$ rbenv rehash

$ which rails
/Users/palmerc/.rbenv/shims/rails

28

我有同样的问题,并且发现如果尝试rvm命令,RVM也不会显示为已安装。解决这两个问题所需的全部工作是在终端中运行此命令

$ source ~/.rvm/scripts/rvm

保存了这一天...现在是什么意思?:)
ericpeters0n 2014年


11

Rails没有报告尚未安装。您的Debian系统告诉您未安装Rails。关于rvm的一件事是,它依赖于一些复杂的bash shell脚本,有时您需要启动一个新的shell才能显示更改。您还应确保将正确的rvm shell命令添加到了.zshrc文件中。还要检查您的路径,以确保其中包含〜/ .rvm / gems / ...路径。


1
对我来说就是这样,只需要退出文件夹并重新进入,即可再次使用Rails控制台。问题是将终端窗口打开几天...
toxaq 2012年

这对我来说也是。从来没有想过关闭终端窗口并重新打开。升级Ruby之后,一旦做到这一点,一切都会按预期进行。
MikeH 2012年

9

我使用rbenv遇到了这个问题。事实证明gem install rails确实安装了Rails,但rails未被识别为可执行文件。对我来说,解决方法是奔跑rbenv rehash

我在https://gorails.com/setup/osx/10.11-el-capitan上找到了此修复程序以及有关设置Rails 5的更多详细信息。


对我来说,我rmv已经让rbenv和Rails工作了。它破坏了包括cd,bundle和rails在内的所有内容,现在我几乎无法在Mac上用触控板右键单击。娱乐时间。
嘉莫

3

我有一个类似的问题,但使用rbenv。

我最初在bash上安装了ruby。然后我在VIM中使用.bashrc,将文件弄乱了,然后将其重置为默认值。这样,我在不知不觉中删除了导出的rbenv $ PATH。因此,我的终端不再意识到我已经安装了ruby。

我重新访问了ruby安装页面(https://gorails.com/setup/ubuntu/15.04),并尝试使用以下命令再次设置我的rbenv路径:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

失败了

幸运的是,在我弄乱.bashrc的时间到尝试从终端访问irb的时间之间,我已经切换到zsh(使用oh-my-zsh)。

我的解决方案是建立在rbenv路径按照安装向导,而是通过替换的所有实例.bashrc.zshrc像这样:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc

希望这可以帮助!


1

这就是我所做的。问题解决了。因此,我想问题解决了。

rvm use system

更改为系统红宝石。使用此处提供和说明的命令删除其中的所有宝石。然后我从头开始安装想要的红宝石版本:

rvm install 1.8.7
rvm install rails -v 3.0.7

然后 bundle install

有关更多详细信息,可能需要深入了解gem安装过程。




1

我今天有这个问题。我还没有100%解决它,但是我可以在新选项卡中运行rvm use 2.5.5,然后rails -v效果很好。

➜  my-repo git:(next_release) ruby -v
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-darwin18]
➜  my-repo git:(next_release) 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.
➜  my-repo git:(next_release) rvm use 2.5.5
Using /Users/amberwilkie/.rvm/gems/ruby-2.5.5
➜  my-repo git:(next_release) rails -v
Could not find rake-12.3.3 in any of the sources
Run `bundle install` to install missing gems.
➜  my-repo git:(next_release) bundle install

1

我遇到了此问题,但已解决。我使用macOS,我不使用rvm,我仅使用HomeBrew,我首先使用gem env来获取所有gems的安装目录,我的是:

$ gem env
RubyGems Environment:
   -RUBYGEMS VERSION: 3.1.2
   -RUBY VERSION: 2.7.1 (2020-03-31 patchlevel 83) [x86_64-darwin19]
   -INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.7.0
   -USER INSTALLATION DIRECTORY: /Users/myname/.gem/ruby/2.7.0
...

然后尝试/usr/local/lib/ruby/gems/2.7.0找到已安装的rails gem的可执行文件目录,例如:/usr/local/lib/ruby/gems/2.7.0/bin,然后将其添加到path环境变量中。


0

我遇到了同样的问题,但上述解决方案没有帮助。

这是我的情况

rvm list

=> ree-1.8.7-2012.02 [ i686 ]
   ruby-1.9.3-p125 [ x86_64 ]

which ruby
  /Users/dev/.rvm/rubies/ree-1.8.7-2012.02/bin/ruby
which rails
  /usr/bin/rails
gem list --local
  ..
  rails (3.2.8)
  rails2_asset_pipeline (0.1.20)
  railties (3.2.8)
  ..

rvm use ruby-1.9.3-p125
which ruby
  /Users/dev/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
which rails
  /Users/dev/.rvm/gems/ruby-1.9.3-p125/bin/rails

通过在使用ree时卸载rails和railties并重新安装rails,我的问题得以解决。

希望这对我的情况有所帮助,不确定我是如何进入的:S



0

只是有同样的问题,找不到答案。这是我所做的:

找到当前的轨道路径

$ which rails

返回类似这样的内容:/ usr / local / rails

删除当前版本

$ sudo rm -rf /usr/local/rails 

重新安装滑轨

$ sudo gem install rails

1
不要在Mac OS上执行此操作
裤子

0

我遇到了同样的问题,给出的答案均无济于事,所以我认为我会分享自己的解决方案,以防其他人有用。

我搞砸了我的.profile.bashrc文件,并一路搞砸了我的RVM安装。仍然不确定我到底做了什么,但是修复很容易。只需运行以下命令,即可清理RVM的所有系统路径设置:

rvm get [head|stable] --auto-dotfiles

请注意,如果您正在运行RVM的旧版本,则可能会升级您的设置,而这可能不是您想要的。


0

一种可能的解决方案是不维护两个不同的配置文件,.bash_profile并且.bashrc

在上的区别这个优秀的帖子提出的解决方案.bash_profile,并.bashrc为源.bashrc从您的.bash_profile文件,然后将PATH,共同设置的.bashrc

报价,

将以下行添加到.bash_profile

if [ -f ~/.bashrc ]; then source ~/.bashrc fi

结束语



0

尝试在Gemfile中明确指定gemset:

source 'https://rubygems.org'
ruby "2.2.3"
#ruby-gemset=rails424

0

试试这个:

您需要更改终端仿真器首选项,以允许登录外壳。

有时需要/bin/bash --login用作命令。

$ bin/bash --login
$ rails -v

0

我在Mac上收到此消息:

当前未在该系统上安装Rails。要获取最新版本,只需键入:

这是关于$PATH不正确的。系统具有过时的rails(/usr/bin/ruby)版本。所选版本的ruby($HOME/.rbenv/versions/2.3.0/bin)的路径必须位于系统沿$PATHvar的过时版本之前,如下所示:

export PATH="$HOME/.rbenv/versions/2.3.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH"

将其调整为您的红宝石版本。


0

对于MacOS(High Sierra):

Tokaido是Mac OS的“入门” Rails指南页面上推荐的Rails安装程序系统。但是它不仅安装,还运行自己的shell脚本。如果您使用的是它自己的外壳环境,然后再启动一个终端而不从Tokaido外壳启动,则会发生这种情况,因为“ rails”命令会退回到Mac上的原始系统Rails代码。

对于我的,正常终端中的“ where rails”命令返回

/usr/bin/rails

但是在启动Tokaido的外壳后,“哪个轨道”给出了以下路径:

/Users/charlesross/.tokaido/Gems/2.2.0/bin/rails


0

我正在查看源代码,发现另一个错误消息,提示用户运行以下命令。

我运行了命令,现在一切正常。上面的建议对我都不起作用。从新创建的Rails应用程序内部运行命令。

gem pristine --all
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.