Где находится переводчик Ruby? - PullRequest
9 голосов
/ 27 ноября 2011

Я использую Ruby 1.8.7 на OS X. Где находится интерпретатор Ruby? Моя цель - узнать больше о Ruby, интерпретируемых языках и интерпретации / синтаксическом анализе.

Ответы [ 3 ]

14 голосов
/ 27 ноября 2011

Вы можете запустить which ruby, чтобы узнать, где находится рубин, который будет выполняться, если вы наберете ruby в Терминале.

Если вы хотите узнать больше информации об исполняемом файле, вы можете запустить:

$ ls -l $(which ruby)
lrwxr-xr-x  1 root  wheel  76 Nov  8 12:56 /usr/bin/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby

То есть выполните which ruby и передайте результаты этого в ls -l, что покажет вам, что на самом деле это символическая ссылка на двоичный файл в среде Ruby.Вы также можете использовать file, чтобы узнать, что это за файл:

$ file $(which ruby)
/usr/bin/ruby: Mach-O universal binary with 2 architectures
/usr/bin/ruby (for architecture x86_64):    Mach-O 64-bit executable x86_64
/usr/bin/ruby (for architecture i386):  Mach-O executable i386

Если вы хотите убедиться, что вы выполняете ruby, который находится в пути пользователя из скрипта, вместо жесткого кодирования, гдеRuby, вы можете использовать следующую директиву интерпретатора в верхней части вашего скрипта:

#!/usr/bin/env ruby

Это работает, потому что почти во всех современных системах есть исполняемый файл на /usr/bin/env, который будет выполнять утилиту, которую вы передаетеэто основано на вашем пути;поэтому вместо жесткого кодирования /usr/bin/ruby в вашем скрипте вы можете позволить env искать ваш путь для вас.

3 голосов
/ 27 ноября 2011

whereis ruby в окне терминала скажет вам

2 голосов
/ 27 ноября 2011

Вы должны найти его под System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
и связаны с /usr/bin/ruby.

Выполнение which ruby даст вам точное местоположение используемого рубина, если в вашей системе есть одна или несколько реализаций.

...