Хобрук: Ваш путь к мастерству в программировании

`rvm install jruby` завершается с ошибкой Psych::SyntaxError

Чтобы попытаться начать работу с проектом rails на jruby, я пытался использовать rvm для rvm install jruby со вчерашнего дня и немного разочарован ошибками, обычно имеющими вид:

Psych::SyntaxError: (<unknown>): found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)

Вот вставлен полный журнал на случай, если там можно найти какую-либо полезную информацию.

Вот обновленная вставка для rvm install ruby (без аргумента --1.9).

Содержание ~./gemrc:

install:    --no-rdoc   --no-ri
update:     --no-rdoc   --no-ri

/etc/gemrc пусто.

Вот журнал установки, rubygems.install.log:

[2014-01-05 19:22:32] /home/petey/.rvm/rubies/jruby-1.7.9/bin/ruby
current path: /home/petey/.rvm/src/rubygems-2.2.0
GEM_HOME=/home/petey/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0
PATH=/home/petey/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/bin:/home/petey/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/petey/.rvm/rubies/ruby-2.0.0-p247/bin:/home/petey/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
GEM_PATH=/home/petey/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0:/home/petey/.rvm/gems/ruby-2.0.0-p247@global
command(6): env GEM_PATH=/home/petey/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0:/home/petey/.rvm/gems/ruby-2.0.0-p247@global:/home/petey/.rvm/gems/ruby-2.0.0-p247@global GEM_HOME=/home/petey/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0 /home/petey/.rvm/rubies/jruby-1.7.9/bin/ruby -d /home/petey/.rvm/src/rubygems-2.2.0/setup.rb
java.lang.ClassNotFoundException: rubygems.defaults.OperatingSystemService
  at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  at org.jruby.util.JRubyClassLoader.findClass(JRubyClassLoader.java:128)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:270)
  at org.jruby.javasupport.JavaSupport.loadJavaClass(JavaSupport.java:166)
  at org.jruby.runtime.load.LoadService$ExtensionSearcher.trySearch(LoadService.java:814)
  at org.jruby.runtime.load.LoadService.findFileForLoad(LoadService.java:411)
  at org.jruby.runtime.load.LoadService.smartLoadInternal(LoadService.java:560)
  at org.jruby.runtime.load.LoadService.requireCommon(LoadService.java:457)
  at org.jruby.runtime.load.LoadService.require(LoadService.java:421)
  at org.jruby.RubyKernel.requireCommon(RubyKernel.java:1089)
  at org.jruby.RubyKernel.require19(RubyKernel.java:1083)
  at org.jruby.RubyKernel$INVOKER$s$1$0$require19.call(RubyKernel$INVOKER$s$1$0$require19.gen)
  at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOneOrNBlock.call(JavaMethod.java:350)
  at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  at org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  at org.jruby.ast.IfNode.interpret(IfNode.java:118)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  at org.jruby.ast.RootNode.interpret(RootNode.java:129)
  at org.jruby.evaluator.ASTInterpreter.INTERPRET_ROOT(ASTInterpreter.java:121)
  at org.jruby.Ruby.runInterpreter(Ruby.java:838)
  at org.jruby.Ruby.loadFile(Ruby.java:2727)
  at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:66)
  at org.jruby.runtime.load.LoadService.tryLoadingLibraryOrScript(LoadService.java:959)
  at org.jruby.runtime.load.LoadService.smartLoadInternal(LoadService.java:573)
  at org.jruby.runtime.load.LoadService.requireCommon(LoadService.java:457)
  at org.jruby.runtime.load.LoadService.require(LoadService.java:421)
  at org.jruby.RubyKernel.requireCommon(RubyKernel.java:1089)
  at org.jruby.RubyKernel.require19(RubyKernel.java:1083)
  at org.jruby.RubyKernel$INVOKER$s$1$0$require19.call(RubyKernel$INVOKER$s$1$0$require19.gen)
  at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOneOrNBlock.call(JavaMethod.java:350)
  at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  at org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.RootNode.interpret(RootNode.java:129)
  at org.jruby.evaluator.ASTInterpreter.INTERPRET_ROOT(ASTInterpreter.java:121)
  at org.jruby.Ruby.runInterpreter(Ruby.java:838)
  at org.jruby.Ruby.loadFile(Ruby.java:2727)
  at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:66)
  at org.jruby.runtime.load.LoadService.load(LoadService.java:359)
  at org.jruby.RubyKernel.loadCommon(RubyKernel.java:1107)
  at org.jruby.RubyKernel.load19(RubyKernel.java:1099)
  at org.jruby.RubyKernel$INVOKER$s$0$1$load19.call(RubyKernel$INVOKER$s$0$1$load19.gen)
  at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:210)
  at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:206)
  at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  at org.jruby.ast.IfNode.interpret(IfNode.java:118)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  at org.jruby.ast.RootNode.interpret(RootNode.java:129)
  at org.jruby.evaluator.ASTInterpreter.INTERPRET_ROOT(ASTInterpreter.java:121)
  at org.jruby.Ruby.runInterpreter(Ruby.java:838)
  at org.jruby.Ruby.loadFile(Ruby.java:2727)
  at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:66)
  at org.jruby.runtime.load.LoadService.loadFromClassLoader(LoadService.java:385)
  at org.jruby.Ruby.initRubyKernel(Ruby.java:1722)
  at org.jruby.Ruby.init(Ruby.java:1201)
  at org.jruby.Ruby.newInstance(Ruby.java:278)
  at org.jruby.Main.internalRun(Main.java:258)
  at org.jruby.Main.run(Main.java:217)
  at org.jruby.Main.main(Main.java:197)
java.lang.ClassNotFoundException: rubygems.defaults.JrubyNativeService
  at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  at org.jruby.util.JRubyClassLoader.findClass(JRubyClassLoader.java:128)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:270)
  at org.jruby.javasupport.JavaSupport.loadJavaClass(JavaSupport.java:166)
  at org.jruby.runtime.load.LoadService$ExtensionSearcher.trySearch(LoadService.java:814)
  at org.jruby.runtime.load.LoadService.findFileForLoad(LoadService.java:411)
  at org.jruby.runtime.load.LoadService.smartLoadInternal(LoadService.java:560)
  at org.jruby.runtime.load.LoadService.requireCommon(LoadService.java:457)
  at org.jruby.runtime.load.LoadService.require(LoadService.java:421)
  at org.jruby.RubyKernel.requireCommon(RubyKernel.java:1089)
  at org.jruby.RubyKernel.require19(RubyKernel.java:1083)
  at org.jruby.RubyKernel$INVOKER$s$1$0$require19.call(RubyKernel$INVOKER$s$1$0$require19.gen)
  at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOneOrNBlock.call(JavaMethod.java:350)
  at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  at org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  at org.jruby.ast.RootNode.interpret(RootNode.java:129)
  at org.jruby.evaluator.ASTInterpreter.INTERPRET_ROOT(ASTInterpreter.java:121)
  at org.jruby.Ruby.runInterpreter(Ruby.java:838)
  at org.jruby.Ruby.loadFile(Ruby.java:2727)
  at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:66)
  at org.jruby.runtime.load.LoadService.tryLoadingLibraryOrScript(LoadService.java:959)
  at org.jruby.runtime.load.LoadService.smartLoadInternal(LoadService.java:573)
  at org.jruby.runtime.load.LoadService.requireCommon(LoadService.java:457)
  at org.jruby.runtime.load.LoadService.require(LoadService.java:421)
  at org.jruby.RubyKernel.requireCommon(RubyKernel.java:1089)
  at org.jruby.RubyKernel.require19(RubyKernel.java:1083)
  at org.jruby.RubyKernel$INVOKER$s$1$0$require19.call(RubyKernel$INVOKER$s$1$0$require19.gen)
  at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOneOrNBlock.call(JavaMethod.java:350)
  at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  at org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.IfNode.interpret(IfNode.java:116)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  at org.jruby.ast.IfNode.interpret(IfNode.java:118)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  at org.jruby.ast.RootNode.interpret(RootNode.java:129)
  at org.jruby.evaluator.ASTInterpreter.INTERPRET_ROOT(ASTInterpreter.java:121)
  at org.jruby.Ruby.runInterpreter(Ruby.java:838)
  at org.jruby.Ruby.loadFile(Ruby.java:2727)
  at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:66)
  at org.jruby.runtime.load.LoadService.tryLoadingLibraryOrScript(LoadService.java:959)
  at org.jruby.runtime.load.LoadService.smartLoadInternal(LoadService.java:573)
  at org.jruby.runtime.load.LoadService.requireCommon(LoadService.java:457)
  at org.jruby.runtime.load.LoadService.require(LoadService.java:421)
  at org.jruby.RubyKernel.requireCommon(RubyKernel.java:1089)
  at org.jruby.RubyKernel.require19(RubyKernel.java:1083)
  at org.jruby.RubyKernel$INVOKER$s$1$0$require19.call(RubyKernel$INVOKER$s$1$0$require19.gen)
  at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOneOrNBlock.call(JavaMethod.java:350)
  at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)
  at org.jruby.ast.RescueNode.interpret(RescueNode.java:116)
  at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.RootNode.interpret(RootNode.java:129)
  at org.jruby.evaluator.ASTInterpreter.INTERPRET_ROOT(ASTInterpreter.java:121)
  at org.jruby.Ruby.runInterpreter(Ruby.java:838)
  at org.jruby.Ruby.loadFile(Ruby.java:2727)
  at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:66)
  at org.jruby.runtime.load.LoadService.load(LoadService.java:359)
  at org.jruby.RubyKernel.loadCommon(RubyKernel.java:1107)
  at org.jruby.RubyKernel.load19(RubyKernel.java:1099)
  at org.jruby.RubyKernel$INVOKER$s$0$1$load19.call(RubyKernel$INVOKER$s$0$1$load19.gen)
  at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:210)
  at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:206)
  at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)
  at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
  at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
  at org.jruby.ast.IfNode.interpret(IfNode.java:118)
  at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)
  at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  at org.jruby.ast.RootNode.interpret(RootNode.java:129)
  at org.jruby.evaluator.ASTInterpreter.INTERPRET_ROOT(ASTInterpreter.java:121)
  at org.jruby.Ruby.runInterpreter(Ruby.java:838)
  at org.jruby.Ruby.loadFile(Ruby.java:2727)
  at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:66)
  at org.jruby.runtime.load.LoadService.loadFromClassLoader(LoadService.java:385)
  at org.jruby.Ruby.initRubyKernel(Ruby.java:1722)
  at org.jruby.Ruby.init(Ruby.java:1201)
  at org.jruby.Ruby.newInstance(Ruby.java:278)
  at org.jruby.Main.internalRun(Main.java:258)
  at org.jruby.Main.run(Main.java:217)
  at org.jruby.Main.main(Main.java:197)
Psych::SyntaxError: (<unknown>): found character   '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation) while scanning for the next token at line 1 column 9
             parse at org/jruby/ext/psych/PsychParser.java:215
      parse_stream at /home/petey/.rvm/rubies/jruby-1.7.9/lib/ruby/shared/psych.rb:205
             parse at /home/petey/.rvm/rubies/jruby-1.7.9/lib/ruby/shared/psych.rb:153
              load at /home/petey/.rvm/rubies/jruby-1.7.9/lib/ruby/shared/psych.rb:129
         load_file at /home/petey/.rvm/src/rubygems-2.2.0/lib/rubygems/config_file.rb:332
        initialize at /home/petey/.rvm/src/rubygems-2.2.0/lib/rubygems/config_file.rb:197
  do_configuration at /home/petey/.rvm/src/rubygems-2.2.0/lib/rubygems/gem_runner.rb:74
               run at /home/petey/.rvm/src/rubygems-2.2.0/lib/rubygems/gem_runner.rb:39
            (root) at setup.rb:45
04.01.2014

  • Вам больше не нужен аргумент --1.9. Можете ли вы убедиться, что ваш rvm обновлен, а затем попробовать просто rvm install jruby? Это должно установить JRuby 1.7.9 на сегодняшний день. Текст о клонировании выглядит так, как будто он пытается получить последнюю версию JRuby, а не выпущенную версию. 04.01.2014
  • вы можете включить ~/.gemrc и /etc/gemrc 05.01.2014
  • @Shepmaster Я пробовал rvm get stable, rvm cleanup all, а затем rvm install jruby, и он все равно ломается с тем же исключением. 05.01.2014
  • @mpapis Обновил мой вопрос и добавил оба. 05.01.2014
  • Можете ли вы также опубликовать полный файл /home/petey/.rvm/log/1388929940_jruby-1.7.9/rubygems.install.log? 05.01.2014
  • @Shepmaster Добавил. 05.01.2014
  • И, если подумать, какого поставщика (Oracle, OpenJDK,...) и версии (6, 7,...) ваша JRE? 05.01.2014
  • @Shepmaster OpenJDK и java version "1.7.0_25". 05.01.2014
  • Кроме того, эти ошибки class not found могут не иметь никакого отношения к вашей проблеме — см. эту ошибку JRuby JIRA где указано, что JRuby в режиме отладки будет регистрировать классы, которые не удалось найти. 05.01.2014

Ответы:


1

~./gemrc содержал:

install:    --no-rdoc   --no-ri
update:     --no-rdoc   --no-ri

Удаление вкладок и замена их пробелами устранили проблему.

06.01.2014
Новые материалы

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

Обзор 20 основных и современных методов работы с массивами в JavaScript
Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

Да, но я чувствую необходимость указать, что это или не единственные два.
Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.