Я вижу две вещи:
Ваш which ruby
говорит, что по умолчанию установлено значение /usr/bin/ruby
, но ваш автотест вызывает /usr/local/bin/ruby
.
sh: / usr / local / bin / unit_diff: / usr / local / bin / ruby: плохой интерпретатор: такого файла или каталога нет
Кроме того, ваш путь не организован должным образом, поскольку у вас есть дублированные записи. Я разделил его на ':', а затем отсортировал, чтобы найти дубликаты:
/bin
/Library/Frameworks/Python.framework/Versions/Current/bin
/opt/local/bin # <--
/opt/local/bin # <--
/opt/local/sbin
/sbin
/Users/ethan/bin
/usr/bin
/usr/local/bin # <--
/usr/local/bin # <--
/usr/local/git/bin
/usr/local/mysql/bin
/usr/local/oracle/instantclient_10_2
/usr/local/pgsql/bin
/usr/sbin
Обратите внимание, что вы дублировали каталоги /opt/local/bin
и /usr/local/bin
. Они должны появляться перед каталогом /usr/bin
по умолчанию, чтобы ваши «лично» установленные приложения были расположены в первую очередь, поэтому вам следует выполнить некоторые действия по дому. После того, как вы это сделаете, закройте сеанс терминала. Откройте новый сеанс и попробуйте повторно запустить тест и посмотреть, изменилось ли что-либо / улучшилось.
Организация пути является частью проблемы и объясняет, почему which ruby
указывает на систему Ruby. Я подозреваю, что другая часть этой головоломки состоит в том, что вы используете #!/usr/local/bin/ruby
в качестве «ударной косой черты» в своих сценариях или явно указываете на этот Ruby, когда вызываете вещи из командной строки. Это запутает тесты без конца. В моих скриптах я использую это для вызова Ruby:
#!/usr/bin/env ruby
, который хорошо работает, потому что он использует все, что Ruby определено первым в моем пути, и с этой следующей частью ...
Я большой сторонник использования RVM для управления установками Ruby в Mac OS и Linux. Это позволяет вам не устанавливать ничего в стандартном /usr/bin
ruby или даже добавлять его в /usr/local/bin
. RVM помещает все в ~/.rvm
и позволяет действительно легко устанавливать / управлять / удалять версии Ruby вместе со связанными с ними гемами или даже удалять их, удаляя этот каталог. Установка RVM и Gemsets - хорошие стартовые места, если вы хотите попробовать.