Подтвердить что ты не робот

Почему я не могу определить мою версию рубиновой установки?

Когда я запускаю ruby -version, я получаю:

ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin11.0]
-e:1: undefined local variable or method `rsion' for main:Object (NameError)

Что может быть неправильным?

4b9b3361

Ответ 1

Используйте ruby ​​-v или ruby ​​-version. Он анализирует -версию в rsion.

Любая из этих двух работ. Подсчитайте количество тире:

ruby -v
ruby --version

Когда вы предоставляете одну тире с "версией", Ruby видит это:

ruby -v -e rsion

Ответ 2

Существует опция -v и параметр - версия, но не вариант -version. Посмотрите undefined локальная переменная или метод 'rsion' для main: Object.

Из этого thread фактическая причина очень понятна:

Если вы запустите ruby -version, так как вы используете только одну тире, слово "version" не рассматривается как один флаг, а вместо этого как список флагов. В в этом случае он берет флаг -v, который печатает информацию о версии. Затем он пытается обработать флаг e, который в основном говорит "остальная часть этого строка - ruby ​​script для выполнения." Таким образом, Ruby верно пытается разобрать "rsion", в котором вы получаете NameError.

Чтобы просто получить информацию о версии, вы можете сделать ruby -v или ruby --version.

Ответ 3

Это так, как интерпретатор, но у вас есть константы, определенные в Ruby.

Try

$> ruby -e " p RUBY_VERSION"

Вы можете найти в разделе Module.constants

здесь

>> Module.constants.sort.each do |constant| 
?>   puts constant
>> end