当我运行$ rails new testapp时,我得到一个糟糕的翻译

时间:2016-03-21 02:03:13

标签: ruby ruby-on-rails-4 rubygems homebrew rbenv

我正在尝试让我的开发环境正常运行,并且遇到了重大障碍。一切看起来都会很成功,而我却得到了一个糟糕的翻译。任何人都可以帮我这个吗?

这些是我在命令行运行它时得到的返回值:

command: `$ xcode-select version` returns: `2343.`
command: `$ rbenv version` returns: `rbenv 1.0.0`
command: `$ rbenv global 2.2.1` set rbenv to *2.2.1
command: `$ ruby -v` returns: `2.2.1p85`

好的到目前为止......

command: `$ gem install rails` returned: `Successfully installed rails-4.2.6`
command: `$ rbenv rehash` after every command
command: `$ rails new testapp` returns: `-bash: /usr/local/bin/rails: /usr/local/opt/ruby/bin/ruby: bad interpreter: No such file or directory`

我想我有问题。

command: `$ git --version` returns: `git version 2.5.4`

可能会发生什么,我可以从这种堕落中恢复过来吗?

当我启动服务器并查看网址时,我看到了那里的铁路版本。

command: `$ gem server`

在url localhost:8808我看到3个gems版本的rails:4.2.4,4.2.5,4.2.6

如何解决此问题?

4 个答案:

答案 0 :(得分:1)

尝试使用gem cleanup进行清理,然后重新安装rails

gem uninstall rails

gem install rails

答案 1 :(得分:1)

TL; DR:删除/ usr / local / bin中所有与ruby相关的非符号链接脚本,即所有破坏了shebang的内容。

当我意识到@Doon在这个问题的评论深处时,我正在写一个答案:

  

gem通常会将shebang设置为当前运行的ruby版本。

设置新的开发笔记本电脑后,我遇到了这个“糟糕的解释器”错误。我最初通过Homebrew(brew install ruby)安装了ruby,以便快速启动并运行。公司设置脚本安装了chruby,但我不认为它构建了任何红宝石。据推测,我还安装了一些宝石。然后我安装了rbenv,我已经习惯了,并且使用它,我安装了几个红宝石。在某些时候,我卸载了Homebrew的ruby和chruby。

到那时,我在/usr/local/bin/中有几个可执行文件,它们是常规文件(即符号链接到../Cellar中的文件),所有文件都有一个shebang行#!/usr/local/opt/ruby/bin/ruby。但是,当我卸载Homebrew的ruby时,/usr/local/opt/ruby已被删除,导致所有这些损坏的脚本。

我的解决方案:从头开始!

  1. 卸载rbenv构建的rubies(rbenv uninstall 1.2.3
  2. 删除/ usr / local / bin中所有与ruby相关的非符号链接脚本。即所有那些破碎的shebang
  3. 重新安装rbenv rubies
  4. 注意:这破坏了Homebrew的vim,需要红宝石瓶,所以我重新安装了它。

    / usr / local / bin中基于gem的脚本现在是符号链接到Cellar,基于Cellar的shebang,我的项目特定的rbenv安装的rubies指向我的.rbenv文件夹。一切都看得很好!

答案 2 :(得分:1)

将滑轨安装到上述位置。这样就可以了。

sudo gem install -n /usr/local/bin/ rails

答案 3 :(得分:0)

Bijoy Thangaraj的回答帮助解决了我的问题。我的目的是将此文字添加为评论,但鉴于我的声誉不到50,所以不可能。

如果可以根据相关答案将其转换为评论,将不胜感激。

我尝试通过rbenv,rvm和源代码进行安装。我正在通过源代码专注于该过程,因为bash在一点之后不会向上滚动。

如果您对我的流程不感兴趣,请直接跳至与该页面的主线程直接相关的步骤f)。

a)我遵循了gorails.com: Install Ruby On Rails on Windows 10 Guide上的指南,

b)特别遵循以下步骤installing ruby on rails via source code

c)键入最后一个命令:~/ruby-2.7.1$ ruby -v

我得到了:ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]

仍为2.3版。

d)但是,我输入了gorails.com - Install Ruby on Rails on Windows 10 Guide建议的下一个命令。命令$ gem install bundler

我得到了:Fetching bundler-2.1.4.gem ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/local/lib/ruby/gems/2.7.0 directory.

尝试过$ sudo gem install bundler

得到:Fetching bundler-2.1.4.gem Successfully installed bundler-2.1.4 Parsing documentation for bundler-2.1.4 Installing ri documentation for bundler-2.1.4 Done installing documentation for bundler after 15 seconds 1 gem installed

e)遵循同一指南,然后输入$ gem install rails -v 6.0.2.2

经过一些获取后,我最终得到了:Fetching sprockets-rails-3.2.1.gem ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/local/lib/ruby/gems/2.7.0 directory.

还要检查rails版本:

命令:$ rails -v

结果:Traceback (most recent call last): 2: from /mnt/c/RailsInstaller/Ruby2.3.3/bin/rails:22:in' 1:来自/usr/local/lib/ruby/2.7.0/rubygems.rb:252:在bin_path' /usr/local/lib/ruby/2.7.0/rubygems.rb:275:in find_spec_for_exe'中:找不到具有可执行轨的gem rail(> = 0.a)(宝石: :GemNotFoundException)`。

检查红宝石版本:

命令:$ ruby -v

结果:ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]

f)继续安装滑轨:

命令:sudo gem install rails

结果; Done installing documentation for concurrent-ruby, i18n, thread_safe, tzinfo, zeitwerk, activesupport, rack, rack-test, mini_portile2, nokogiri, crass, loofah, rails-html-sanitizer, rails-dom-testing, builder, erubi, actionview, actionpack, activemodel, activerecord, globalid, activejob, mini_mime, mail, actionmailer, nio4r, websocket-extensions, websocket-driver, actioncable, mimemagic, marcel, activestorage, actionmailbox, actiontext, thor, method_source, railties, sprockets, sprockets-rails, rails after 1268 seconds 40 gems installed

检查rails版本:

命令:$ rails -v

结果:bash: /mnt/c/RailsInstaller/Ruby2.3.3/bin/rails: ruby: bad interpreter: No such file or directory

最后,

g)命令:$ sudo gem install -n /mnt/c/RailsInstaller/Ruby2.3.3/bin/ rails 结果:Successfully installed rails-6.0.2.2 Parsing documentation for rails-6.0.2.2 Done installing documentation for rails after 0 seconds 1 gem installed

检查rails版本:

命令:rails -v

结果:Rails 6.0.2.2

检查Ruby版本:

命令:ruby -v

结果:ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]