2010-02-23 3 views
1

Кто-нибудь видел это: ?? Нет jgem команда работает вообще ?? Хотя jruby -S gem list действительно работает. Я использую JRuby 1.3.1 и ВС Java6 JREjruby rubygems update breaks jgem

[email protected]:/usr/local: jgem --version 
1.3.3 

[email protected]:/usr/local: jgem update --system 
JRuby limited openssl loaded. gem install jruby-openssl for full support. 
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL 
Updating RubyGems 
Updating rubygems-update 
Successfully installed rubygems-update-1.3.6 
/usr/local/jruby/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:103:Warning: Gem::SourceIndex#search support for String patterns is deprecated 
Updating RubyGems to 1.3.6 
Installing RubyGems 1.3.6 
RubyGems 1.3.6 installed 

[email protected]:/usr/local: jgem list 
/usr/local/jruby/bin/jgem: line 8: require: command not found 
/usr/local/jruby/bin/jgem: line 9: require: command not found 
/usr/local/jruby/bin/jgem: line 10: require: command not found 
/usr/local/jruby/bin/jgem: line 12: required_version: command not found 
/usr/local/jruby/bin/jgem: line 14: unless: command not found 
/usr/local/jruby/bin/jgem: line 15: abort: command not found 
/usr/local/jruby/bin/jgem: line 16: end: command not found 
/usr/local/jruby/bin/jgem: line 18: args: command not found 
/usr/local/jruby/bin/jgem: line 20: begin: command not found 
/usr/local/jruby/bin/jgem: line 21: Gem::GemRunner.new.run: command not found 
/usr/local/jruby/bin/jgem: line 22: rescue: command not found 
/usr/local/jruby/bin/jgem: line 23: exit: e.exit_code: numeric argument required 

ответ

3

Обратите внимание, что это только казалось, произойдет на Linux (не OSX) И я установил его, заменив строку в верхней части сценария jgem от:

#!/mnt/java/jruby-1.4.0/bin/jruby 

к

#!/usr/bin/env jruby 
0

Учитывая, что линия 8 в сценарии jgem является первой линией рубина (остальные комментарии/пробелы) Я бы сказал, что что-то сломалось (к) рубин в вашей раковине.

Попробуйте запустить новую сессию оболочки и посмотреть, не является ли она просто временной.

Попробуйте эти:

jruby -v

jirb

и т.д ...

+0

штифтика @ тест: ~ $ JRuby -v JRuby 1.3.1 (рубин 1.8.6p287) (2009-06-15 2fd6c3d) (Java HotSpot (TM) Client VM 1.6.0_07) [i386-ява] brad @ test: ~ $ jirb irb (main): 001: 0> exit Обе работы. Кроме того, jruby работает точно, потому что синтаксис jruby -S отлично работает, просто не jgem – brad

+0

ugh, ok, я не могу отформатировать это, по-видимому, но он показывает, что обе команды работали. Это на linux btw. Я не решаюсь сделать обновление OSX, так как мне нравится использовать jgem, и у меня есть 1.3.5, и все, что мне действительно нужно – brad

+0

, проверяя эти файлы, я замечаю, что настройка верхней строки интерпретатора различна. 1.3.6 имеет #!/Usr/local/jruby/bin/jruby и 1.3.5 имеет #!/Usr/bin/env jruby. Интересно, почему разница? очевидно, что 1.3.6 не загружает рубин должным образом. Я не знаю достаточно о сценариях оболочки, чтобы действительно сказать, что происходит. Замена строки интерпретатора 1.3.6 с помощью файла #!/Usr/bin/env jruby 1.3.5. – brad

2

Существует оболочка ограничения: невозможность использования скриптов в хижину линий, а так пусковая JRuby является (был) оболочки на основе, которая ломает вещи. Хорошей новостью является то, что у JRuby теперь есть встроенная программа запуска (для windows, linux, macos), и использование ее вместо оболочки запуска позволяет без проблем помещать ее в строки shebang.