Я использую Mac OS X. У меня есть две версии (2.1.5 и 2.0.0) Ruby. Первая была установлена на /another/.path/to/ruby (перед точкой «точка» есть точка, чтобы имитировать факт того, что путь содержит разделенный точкой столбцом каталог), в дополнение к системному стандарту по умолчанию (версия 2.0. 0) в/usr/bin/ruby. Я использовал rbenv для установки Ruby.Ruby script: shebang с абсолютным путём к рубину не работает
После того как я вручную установил переменную среды PATH, поэтому команда ruby по умолчанию будет найдена в другом каталоге: /another/.path/to/ruby. Теперь я проверяю
which -a ruby
Он использует правильный рубин во-первых, как выход.
/another/.path/to/ruby
/usr/bin/ruby
Теперь я создать сценарий, Р.Б.С., с первой линией притона с указанием рубина использовать.
#!/usr/bin/env ruby
puts 'hey there'
Тогда я бегу
./rbs
выводит 'эй там. Хорошо. Между тем, Ruby использует правильную версию.
/usr/bin/env ruby --version
, а также
ruby --version
и выход 2.1.5. Так что отличная работа для использования новой версии.
Однако, именно здесь возникает проблема: теперь я обновить файл РБС быть:
#!/another/.path/to/ruby
puts 'hey there'
Обратите внимание, что я обновил хижину, чтобы использовать абсолютный путь к нужному рубина. Затем я бегу
./rbs
Он выдает:
./rbs: line 2: puts: command not found
который слишком странно;
, но если я бегу
ruby ./rbs
он выводит: 'Эй там', как обычно. Похоже, что shebang отлично работает с использованием/usr/bin/env ruby, но не для абсолютного пути для вновь устанавливаемого рубина?
Почему это? Есть ли способ исправить это, чтобы обновленный скрипт все еще работал, набрав следующее?
./rbs
Спасибо!
Что такое './Rubyscript' в вашем'./Rbs' выходе? –
Извините, опечатка. Я обновлю его. Это просто файл ./rbs. – Bruce
Работает ли '/another/.path/to/ruby rbs'? – roob