¿Cómo hacer que Ruby / Homebrew / RVM trabaje en Yosemite?

Después de instalar Yosemite, no pude preparar brebaje o Ruby.

Estaba recibiendo este error en la actualización de cerveza:

/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 

obteniendo este error en 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 `' 

Este error se puede solucionar fácilmente en los siguientes pasos:

1) Terminal abierto

2) Escriba nano /usr/local/Library/brew.rb

3) En la primera línea, cambie “1.8” a “Actual”, así que debería verse así:

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

a través de http://blog.ic3man.gr/2014/06/homebrew-ruby-bad-interpreter-no-such-file-or-directory/

Actualicé a Yosemite y luego descubrí que la brew estaba rota.

 /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 

Si aún no ha realizado ningún cambio para elaborar cerveza, esto es lo que recomiendo. De lo contrario, lea más abajo.

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

¿Ya has hecho cambios en los archivos de preparación y te has quedado en un desastre?

Traté de editar /usr/local/Library/brew.rb pero el cambio local a mi repository de git impedía que la brew update bajara las actualizaciones. Probé otras soluciones mencionadas en esta página y de otros sitios y terminé con un desastre y todo lo que quería hacer era deshacer todo lo que había hecho para elaborar.

Cometí mi cambio pero empeoró las cosas. Finalmente tuve que deshacer mis commits y git reset --hard HEAD~1 hasta que estuve en el correcto commit-ish. También tuve un aluvión de archivos no versionados (cambié los permisos de los archivos en / usr / Local) así que hice un git clean -f -d que eliminó todos los archivos y directorios no versionados y me devolvió a donde comencé antes de realizar cualquier cambio.

Pasos para arreglarlo:

  1. Instalar herramientas de línea de comandos para Xcode 6

  2. Reinstale brebaje:

     ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 
  3. Una vez que se haya instalado brew, rvm funcionará:

     rvm install ruby 

Funcionó para mí, yahoo!

Editar la secuencia de comandos significa que la brew update no funcionará; hay ediciones locales en los archivos rastreados que hacen que falle el git pull .

Hice esto, que sospecho que es más limpio:

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

No hay quejas del brew doctor .

Este es un conglomerado de respuestas de las publicaciones de otras personas, así como un poco de búsqueda en Google, pero pensé que lo pondría así que una respuesta completa está en un solo lugar. Específicamente, esto hace que las cosas funcionen ahora, pero también permite actualizar las actualizaciones de forma normal y vuelve a tener todo limpio.

  1. Abre /usr/local/Library/brew.rb (emacs / vi / nano / lo que sea)
  2. Cambie la primera línea para leer: #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0 . Solo está cambiando el “1.8” que estaba en esa línea a “Actual” (asegúrese de mantener la “C” mayúscula, de lo contrario, git se confundirá más tarde).
  3. cd $(brew --repository)
  4. git add Library/brew.rb
  5. git commit -m "upgrading to ruby 2.0"
  6. brew update (o sudo brew update si su brew está configurado para solo hacer cambios en el sistema con sudo)

Crédito: mucho de esto vino de aquí , aunque realmente recomiendo no hacer git commit -am en su carpeta / usr / local.

Como el anterior dijo: 1) Cambie a la stream 2) instale xcode 6

Si ahora tiene más problemas con brebaje y Ruby, esto debería ayudar: de alguna manera, brew necesita ruby ​​en la versión 1.8, así que cree la carpeta:

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

y hacer un enlace simbólico:

 sudo ln -s /usr/bin/ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 

Eche un vistazo a este tutorial aquí: http://ryantvenge.com/2014/09/ruby-homebrea-yosemite/

¡Funcionó para mí!

Lo arreglé de la siguiente manera:

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

el error de actualización del brew puede solucionarse con esto:

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

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

Nota: solo haga lo siguiente si termina en un estado completamente fallido, ya que esto es muy PELIGROSO

Como ejemplo, sigo recibiendo

$ sudo ln -s Actual 1.8

$ brew actualización

/usr/local/Library/brew.rb:18:in ‘: método indefinido ayuda?’ para [“update”]: Array (NoMethodError)

Acabo de entender esto … (no importa qué comando simplemente cambies la “actualización” con el comando) Resolví el problema pidiendo una carpeta de amigos /usr/local . Luego hice una copia de seguridad de mi carpeta /usr/local .

sudo mv / usr / local /usr/local.orig

Luego moví su /usr/local a la mía

sudo mv ~ / Downloads / local / usr / local

Nota: Es probable que pierda algunos datos, así que asegúrese de hacer una copia de seguridad.

Tuve problemas para intentar instalar Ruby usando gestores de paquetes. Para ser justo con estos progtwigs, admito que tengo poca experiencia con ellos y no hice el esfuerzo de profundizar más que la mayoría de los otros respondedores. Soy flojo y prefiero usar un instalador binario disponible para la mayoría de las opciones de opsys y muchos paquetes. Desafortunadamente, Ruby no parece suministrar uno.

Encontré Ruby-build fácil de instalar (independiente, no el complemento), e incorporó Ruby de fonts sin error y lo ubiqué donde lo quería.

Bingo – fácil 🙂 Esto parece una buena alternativa para aquellos de nosotros que desafiamos la persuasión del administrador de paquetes.

Charlie