После установки 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 `'
Эта ошибка может быть легко устранена в следующих шагах:
1) Открыть терминал
2) Тип nano /usr/local/Library/brew.rb
3) В первой строке измените "1.8" на "Current", чтобы она выглядела так:
#!/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/
Я обновился до Йосемити, а затем выяснил, что 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
Если вы еще не внесли никаких изменений в brew, вот что я рекомендую. В противном случае прочтите ниже.
cd /System/Library/Frameworks/Ruby.framework/Versions/
sudo ln -s Current 1.8
brew update
sudo unlink 1.8
Уже внесены изменения в файлы brew и застряли в беспорядке git
Я попытался отредактировать /usr/local/Library/brew.rb
, но локальное изменение в моем репозитории git не позволяло brew update
отбрасывать обновления. Я попробовал некоторые другие решения, упомянутые на этой странице и с других сайтов, и я закончил с беспорядком git, и все, что я хотел сделать, это отменить все, что я сделал, с brew.
Я совершил свои изменения, но это ухудшило ситуацию. В конце концов, мне пришлось отменить мои коммиты и git reset --hard HEAD~1
, пока я не был на правильном деле. У меня был беспорядок неверсированных файлов (я изменил права на файлы в /usr/Local ), поэтому я сделал git clean -f -d
, который удалил все неперевернутые файлы и каталоги и вернул меня туда, где я начал, прежде чем внес какие-либо изменения.
Шаги по исправлению:
Установите инструменты командной строки для Xcode 6
Переустановите brew:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
После установки brew rvm будет работать:
rvm install ruby
Работал для меня, yahoo!
Редактирование script означает brew update
не будет работать; есть локальные изменения для отслеживаемых файлов, которые приводят к сбою git pull
.
Я сделал это, и я подозреваю, что он чище:
cd /usr/local/Library
git pull -q origin refs/heads/master:refs/remotes/origin/master
Нет претензий от brew doctor
.
brew doctor
и следовать некоторым инструкциям. Проблема в том, что brew doctor
вероятно, не работает для вас, если вы здесь. Вы можете просто быть в состоянии git stash
и продолжать.
Это конгломерат из ответов на другие должности, а также немного копания в Google, но я решил, что я бы сказал, что полный ответ находится в одном месте. В частности, это позволяет работать теперь, но также позволяет делать brew обновления как обычно и снова получает все чистое.
#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
. Вы просто меняете "1.8", который был в этой строке, на "Текущий" (убедитесь, что вы сохранили капитал "C", иначе git будет запутан позже).cd $(brew --repository)
git add Library/brew.rb
git commit -m "upgrading to ruby 2.0"
brew update
(или sudo brew update
, если ваш brew настроен только для системных изменений с помощью sudo)Кредит: многое из этого произошло от здесь, хотя я действительно рекомендую не делать git commit -am
в вашей/usr/локальной папке.
Как и предыдущий: 1) Переход на текущий 2) установить xcode 6
Если у вас есть дополнительные проблемы с brew и ruby, это должно помочь: Каким-то образом brew нуждается в рубине на версии 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
Взгляните на этот учебник здесь: http://ryantvenge.com/2014/09/ruby-homebrea-yosemite/
Это сработало для меня!
Я зафиксировал это следующим образом:
sudo chown -R $(whoami):admin /usr/local
cd $(brew --prefix) && git fetch origin && git reset --hard origin/master
В качестве примера я продолжал получать
$sudo ln -s Ток 1.8
$brew update
/usr/local/Library/brew.rb: 18: in ': undefined help метода? для [ "update" ]: Array (NoMethodError)
Я просто получаю это... (независимо от того, какая команда просто отключает "обновление" с помощью команды)
Я решил проблему, попросив папку друзей /usr/local
. Затем я сделал резервную копию моей папки /usr/local
.
sudo mv/usr/local/usr/local.orig
Затем я переместил его /usr/local
на мой
sudo mv ~/Downloads/local/usr/local
Примечание. Вероятно, вы потеряете некоторые данные, поэтому сделайте резервную копию.
brew Ошибка обновления может быть исправлена следующим образом:
sudo chown -R $USER:admin /usr/local
cd /usr/local
git reset --hard origin/master
brew update
У меня возникли проблемы с установкой Ruby с использованием менеджеров пакетов. Справедливости ради этих программ я признаю, что у меня мало опыта с ними и не прилагал усилий, чтобы копать глубже, как это делали большинство других респондентов. Я ленив и предпочитаю использовать двоичный установщик, доступный для большинства опций и многих пакетов. К сожалению, Ruby, похоже, не снабжает его.
Я обнаружил, что ruby-build проста в установке (автономная - не плагин), и она построила Ruby из источников без ошибок и поместила ее туда, где я этого хотел.
Bingo - easy:) Это похоже на хорошую альтернативу для тех из нас, кто управляет пакетами, бросил вызов убеждению.
Charlie
Please, commit your changes or stash them before you can merge.
ошибка при попыткеbrew update
к сожалению.