it-swarm.com.ru

Как заставить Ruby / Homebrew / RVM работать на Yosemite?

После установки Yosemite я не смог запустить brew или Ruby.

Я получаю эту ошибку при обновлении Brew:

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0

получить эту ошибку на IRB:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/fileutils.rb:245:in mkdir': Permission denied - /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14 (Errno::EACCES) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/fileutils.rb:245:infu_mkdir'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/fileutils.rb:219:in block (2 levels) in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/fileutils.rb:217:inreverse_each'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/fileutils.rb:217:in block in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/fileutils.rb:203:ineach'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/fileutils.rb:203:in mkdir_p' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:210:inwrite_gem_make_out'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:132:in build_error' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:171:inrescue in build_extension'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:156:in build_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:198:inblock in build_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:in each' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:inbuild_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1436:in block in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/user_interaction.rb:45:inuse_ui'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1434:in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/stub_specification.rb:60:inbuild_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/basic_specification.rb:56:in contains_requirable_file?' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:925:inblock in find_inactive_by_path'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in each' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:infind'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in find_inactive_by_path' from /Library/Ruby/Site/2.0.0/rubygems.rb:185:intry_activate'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/locale.rb:150:in block in search_file' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/locale.rb:158:inblock in each_localized_path'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/locale.rb:167:in each_sublocale' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/locale.rb:157:ineach_localized_path'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/locale.rb:145:in search_file' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/locale.rb:124:infind'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/locale.rb:108:in load' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/locale.rb:32:ininitialize'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/init.rb:114:in new' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/init.rb:114:ininit_config'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb/init.rb:16:in setup' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/irb.rb:380:instart'
from /usr/bin/irb:12:in `'
118
eden

Эта ошибка может быть легко исправлена ​​в следующих шагах:

1) Открытый терминал

2) Введите nano /usr/local/Library/brew.rb

3) В первой строке измените «1.8» на «Текущий», поэтому оно должно выглядеть так:

#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/Ruby -W0

через http://blog.ic3man.gr/2014/06/homebrew-Ruby-bad-interpreter-no-such-file-or-directory/

281
raz0r

Я обновил до Yosemite и позже узнал, что brew был сломан.

/usr/local/bin/brew: /usr/local/Library/brew.rb: 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby: bad interpreter: No such file or directory /usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0

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

  1. cd /System/Library/Frameworks/Ruby.framework/Versions/
  2. Sudo ln -s Current 1.8
  3. brew update 
  4. Sudo unlink 1.8

Уже внесли изменения в файлы Brew и застряли в Git беспорядок?

Я попытался отредактировать /usr/local/Library/brew.rb, но локальное изменение в моем git-репо не давало brew update загружать обновления. Я попробовал некоторые другие решения, упомянутые на этой странице и с других сайтов, и у меня получился мерзавец, и все, что я хотел сделать, это отменить все, что я сделал, чтобы варить.

Я совершил свое изменение, но это ухудшило положение. В конце концов мне пришлось отменить свои коммиты и git reset --hard HEAD~1, пока я не оказался на правильном коммите. У меня тоже была куча неверсионных файлов (я изменил права доступа к файлам в/usr/Local), поэтому я сделал git clean -f -d, который удалил все неверсионные файлы и каталоги и вернул меня туда, откуда я начал, прежде чем вносить какие-либо изменения.

39
Jason R

Шаги, чтобы это исправить:

  1. Установите инструменты командной строки для Xcode 6

  2. Переустановите варево:

    Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  3. После установки brew, rvm будет работать:

    rvm install Ruby
    

Работал на меня, Yahoo!

37
eden

Редактирование скрипта означает, что brew update не будет работать; есть локальные изменения отслеживаемых файлов, что приводит к сбою git pull.

Я сделал это, что я подозреваю, чище:

cd /usr/local/Library
git pull -q Origin refs/heads/master:refs/remotes/Origin/master

Жалоб от brew doctor нет.

33
Otto

Это конгломерат из ответов постов других людей, а также небольшого количества копаний в Google, но я решил, что я поставлю это так, чтобы полный ответ был в одном месте. В частности, теперь это работает, но также позволяет обновлять варку в обычном режиме и снова все очищать.

  1. Откройте /usr/local/Library/brew.rb (emacs/vi/nano/что угодно)
  2. Измените первую строку следующим образом: #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/Ruby -W0. Вы просто меняете «1.8», который был в этой строке, на «Текущий» (убедитесь, что вы держите заглавную букву «С», иначе git запутается позже).
  3. cd $(brew --repository)
  4. git add Library/brew.rb
  5. git commit -m "upgrading to Ruby 2.0"
  6. brew update (или Sudo brew update, если ваш brew настроен на внесение системных изменений только в Sudo)

Кредит: многое из этого пришло из здесь , хотя я действительно рекомендую не делать git commit -am в вашей папке/usr/local.

7
Eli

Как и в предыдущем сказанном: 1) Перейдите в текущий 2) Установите xcode 6

Если у вас возникли дальнейшие проблемы с brew и Ruby, это должно помочь: Каким-то образом brew требуется Ruby в версии 1.8, поэтому создайте папку:

Sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin

и сделайте символическую ссылку:

Sudo ln -s /usr/bin/Ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby
3
Vanessa Böhner

Взгляните на этот урок здесь: http://ryantvenge.com/2014/09/Ruby-homebrea-yosemite/

Это сработало для меня!

2
user790999

Я исправил это следующим образом:

  1. Sudo chown -R $(whoami):admin /usr/local
  2. cd $(brew --prefix) && git fetch Origin && git reset --hard Origin/master
1
Alex Lin

Примечание. Делайте следующее только в том случае, если вы оказались в состоянии полного отказа, так как это ОПАСНО

В качестве примера я продолжал получать 

$ Sudo ln -s Current 1.8 

$ brew update 

/usr/local/Library/brew.rb:18:in ': справка по неопределенному методу?' для [“update”]: Array (NoMethodError) 

Я просто получаю это… (независимо от того, какая команда просто отключает «update» с помощью команды) Я решил проблему, запросив папку buddies /usr/local. Затем я сделал резервную копию моей папки /usr/local.

Sudo mv/usr/local /usr/local.orig

Затем я переместил его /usr/local в мой

Sudo mv ~/Загрузки/местные/usr/местные

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

0
abc123

ошибка обновления brew может быть исправлена ​​с помощью этого:

Sudo chown -R $USER:admin /usr/local
cd /usr/local
git reset --hard Origin/master
brew update

https://github.com/Homebrew/homebrew/issues/19140

0
spicyramen