系统无法看到Rails或其他宝石说“此系统上当前未安装Rails”

时间:2017-02-15 19:58:20

标签: ruby-on-rails ruby macos rvm

系统:OSX 10.9.5,Rails 4.0.12

在为演示应用程序(Ruby 2.1.5,Rails 4.1.0)克隆了一个repo之后,我使用rvm进行安装,然后切换到旧版本的Ruby,这样我就可以运行演示应用程序了。我在运行演示应用程序时遇到了一些问题,所以我回到了我的主项目应用程序(Ruby 2.2.4,Rails 4.0.12),尝试运行rails s并得到:

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.

嗯,这太傻了。 Rails刚才就在这里。我尝试在Ruby 2.2.4中切换gemsets,甚至在两者之间关闭终端,但Rails仍未“安装”。这些是我的宝石:

gemsets for ruby-2.0.0-p481 (found in /Users/localflavor/.rvm/gems/ruby-2.0.0-p481)
=> (default)
   global

gemsets for ruby-2.1.5 (found in /Users/localflavor/.rvm/gems/ruby-2.1.5)
=> (default)
   global

gemsets for ruby-2.2.1 (found in /Users/localflavor/.rvm/gems/ruby-2.2.1)
=> (default)
   global    

gemsets for ruby-2.2.2 (found in /Users/localflavor/.rvm/gems/ruby-2.2.2)
=> (default)
   global

gemsets for ruby-2.2.4 (found in /Users/localflavor/.rvm/gems/ruby-2.2.4)
=> (default)
   global

gemsets for ruby-2.3.0 (found in /Users/localflavor/.rvm/gems/ruby-2.3.0)
=> (default)
   global

ruby​​2.2.4@default中包含的宝石:

$ gem list
*** LOCAL GEMS ***
bigdecimal (default: 1.2.6)
gem-wrappers (1.2.7)
io-console (default: 0.4.3)
json (default: 1.8.1)
minitest (5.4.3)
power_assert (0.2.2)
psych (default: 2.0.8)
rake (default: 10.4.2)
rdoc (default: 4.2.0)
rvm (1.11.3.9)
test-unit (3.0.8)

宝石包含在ruby-2.2.4@global

$ gem list
*** LOCAL GEMS ***
bigdecimal (default: 1.2.6)
gem-wrappers (1.2.7)
io-console (default: 0.4.3)
json (default: 1.8.1)
minitest (5.4.3)
power_assert (0.2.2)
psych (default: 2.0.8)
rake (default: 10.4.2)
rdoc (default: 4.2.0)
rvm (1.11.3.9)
test-unit (3.0.8)

Rails,你在哪里?我试过rvm get master,重新安装了ruby 2.2.4,openssl和bundler。我尝试了this SO question似乎相关的所有解决方案。所有这一切都无济于事。

有趣的是,我也无法安装最新版本的Ruby(2.4.0)。

$ rvm install ruby 2.4.0
ruby-2.4.0 - #removing src/ruby-2.4.0..
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.9/x86_64/ruby-2.4.0.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Certificates in '/usr/local/etc/openssl/cert.pem' are already up to date.
Requirements installation successful.
Installing Ruby from source to: /Users/localflavor/.rvm/rubies/ruby-2.4.0, this may take a while depending on your cpu(s)...
ruby-2.4.0 - #downloading ruby-2.4.0, this may take a while depending on your connection...
ruby-2.4.0 - #extracting ruby-2.4.0 to /Users/localflavor/.rvm/src/ruby-2.4.0....
ruby-2.4.0 - #configuring...................................................................
ruby-2.4.0 - #post-configuration.
ruby-2.4.0 - #compiling....................
Error running '__rvm_make -j 1',
showing last 15 lines of /Users/localflavor/.rvm/log/1487187741_ruby-2.4.0/make.log
configuring pty
configuring racc/cparse
configuring rbconfig/sizeof
configuring readline
configuring ripper
configuring rubyvm
configuring sdbm
configuring socket
configuring stringio
configuring strscan
configuring syslog
configuring zlib
exts.mk:1471: *** commands commence before first target.  Stop.
make: *** [build-ext] Error 2
++ return 2
There has been an error while running make. Halting the installation.

我假设Rails在这里,只是没有被人看到。就像bundler和openssl一样。有些事情发生了,我不知道还有什么去看。我怎样才能找到并重新开始行动?

更新

虽然我的SSL问题仍然没有得到解决,但我能够解决这个问题,让Rails重新启动并再次运行(感谢Kevin-T!)

由于ruby 2.2.4的两个gemsets都缺少Rails(感谢7stud获取gem列表指针),我需要重新安装它。但是当我运行gem install rails -v 4.0.12

时,我收到了这个错误
ERROR:  While executing gem ... (Gem::Exception)
    Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

所以我选择了选项2:使用非HTTPS源。为此,我运行gem source确认我的来源为https

*** CURRENT SOURCES ***

https://rubygems.org/

我使用http添加了新的gem source --add http://rubygems.org版本:

https://rubygems.org is recommended for security over http://rubygems.org

Do you want to add this insecure source? [yn]  y  <-- I said yes
http://rubygems.org added to sources

我检查过它已添加gem source

*** CURRENT SOURCES ***

https://rubygems.org/
http://rubygems.org <-- the new one

然后使用https删除gem source --remove https://rubygems.org/个:

https://rubygems.org/ removed from sources

此时,正在运行gem install rails -v 4.0.12。查看this post即可安装,无需大量文档。

2 个答案:

答案 0 :(得分:0)

  

此系统上当前未安装Rails。获取最新信息   版本,只需输入:

$ sudo gem install rails
     

然后你可以重新运行你的&#34; rails&#34;命令。

  

嗯,这太傻了。 Rails刚才就在这里。

首先警告:永远不要将sudo与rvm一起使用。

使用rvm,您需要注意两件事:

  1. 红宝石版。
  2. 宝石集。
  3. 宝石集就像一个自包含的包,里面有一些宝石。要查看这些宝石,您必须使用该gemset。如果您使用的是不同的宝石集,那么您将看到不同的宝石。

    为了验证当前选择的gemset中是否包含gem,您可以这样做:

    $ gem list
    

    有关如何使用rvm以及rails和各种gemsets的一般说明,请参见:

    Change rails version used by rvm

      

    有趣的是,我也无法安装最新版本   Ruby(2.4.0)。

    您的输出显示rvm在编译zlib时遇到问题。似乎rbenv人群在OSX上编译zlib时也遇到了一些问题。您可能想尝试修复:

    https://github.com/rbenv/ruby-build/issues/832

答案 1 :(得分:0)

Rvm不久前有this issue。它早于ruby 2.4.0,但也许你在这里遇到同样的问题?如果您运行的是OS X 10.9,我怀疑您正在运行较旧的安装。在该问题上建议的解决方案是使用

更新您的rvm
rvm get master

我会尝试运行它,然后重试你的rvm命令。

旁注:现在对rvm强制执行pgp验证,因此您可能需要运行

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

第一