2010-03-11 17 views
5

Actualización II Problema resuelto pero ¿por qué? Este ha sido el mayor dolor de cabeza. Mi problema está resuelto, sin embargo, no tengo idea de cómo realicé esta tarea. Además, los siguientes resultados no tienen sentido. Mi ruta .profile (/ usr/local/bin) es diferente de la ruta que está trabajando actualmente (/ usr/bin /). La ruta de trabajo apareció de repente después de que cerré la terminal en OSX Snow Leopard. ¿Que esta pasando aqui?accidente de tren. Rails requiere RubyGems> = 1.3.2

Aquí es los caminos de trabajo y archivo .profile confuso:

$ rails -v 
Rails 3.0.0.beta 
$ ruby -v 
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0] 
$ gem -v 
1.3.6 
$ whereis ruby 
/usr/bin/ruby 
$ whereis rails 
/usr/bin/rails 
$ whereis gem 
/usr/bin/gem 
$ which gem 
/usr/bin/gem 
$ which ruby 
/usr/bin/ruby 
$ which rails 
/usr/bin/rails 
$ mate ~/.profile 

archivo .profile:

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH" 
if [[ -s /Users/justinz/.rvm/scripts/rvm ]] ; then source /Users/justinz/.rvm/scripts/rvm ; fi 

actualización Me he dado cuenta de que lo que Ruby y Ruby whereis diferentes lugares

which ruby 
/opt/local/bin/ruby 
whereis ruby 
/usr/bin/ruby 

Recientemente actualicé ruby ​​a ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10] y creo que rompí los rieles. Cuando intento cargar rieles. Recibo un mensaje extraño. ¡Por favor ayuda!

$ ruby ​​script/server Rails requiere RubyGems> = 1.3.2. Por favor, instale RubyGems y vuelve a intentarlo: http://rubygems.rubyforge.org

$ which ruby 
/usr/local/bin/ruby 
$ whereis ruby 
/usr/bin/ruby 
$ which rails 
/usr/local/bin/rails 
$ whereis rails 
/usr/bin/rails 
$ which gem 
/usr/local/bin/gem 
$ whereis gem 
/usr/bin/gem 
$ ruby -v 
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin10.2.0] 
$ rails -v 
Rails 2.3.5 
$ gem list 

*** LOCAL GEMS *** 

actionmailer (2.3.5) 
actionpack (2.3.5) 
activerecord (2.3.5) 
activeresource (2.3.5) 
activesupport (2.3.5) 
builder (2.1.2) 
bundler (0.9.11) 
columnize (0.3.1) 
erubis (2.6.5) 
fastercsv (1.5.1) 
ffi (0.6.3) 
gbarcode (0.98.16) 
i18n (0.3.5) 
linecache (0.43) 
mail (2.1.3) 
memcache-client (1.8.0) 
prawn (0.8.4) 
prawn-core (0.8.4) 
prawn-layout (0.8.4) 
prawn-security (0.8.4) 
rack (1.1.0, 1.0.1) 
rack-mount (0.6.1) 
rack-test (0.5.3) 
rails (2.3.5) 
rake (0.8.7) 
ruby-debug (0.10.3) 
ruby-debug-base (0.10.3) 
rubygems-update (1.3.6) 
sqlite3 (0.0.8) 
text-format (1.0.0) 
thor (0.13.4) 
tzinfo (0.3.17) 
$ sudo gem install sqlite3-ruby 
Password: 
Building native extensions. This could take a while... 
ERROR: Error installing sqlite3-ruby: 
    ERROR: Failed to build gem native extension. 

/usr/local/bin/ruby extconf.rb 
checking for fdatasync() in -lrt... no 
checking for sqlite3.h... yes 
checking for sqlite3_open() in -lsqlite3... no 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Provided configuration options: 
    --with-opt-dir 
    --without-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/usr/local/bin/ruby 
    --with-sqlite3-dir 
    --without-sqlite3-dir 
    --with-sqlite3-include 
    --without-sqlite3-include=${sqlite3-dir}/include 
    --with-sqlite3-lib 
    --without-sqlite3-lib=${sqlite3-dir}/lib 
    --with-rtlib 
    --without-rtlib 
    --with-sqlite3lib 
    --without-sqlite3lib 


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5 for inspection. 
Results logged to /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5/ext/sqlite3_api/gem_make.out 
+0

Debo añadir He intentado sudo actualización de gema --sistema –

+0

¿Qué versión de gemas de rubí está ejecutando actualmente (gem -v) –

+0

Estoy ejecutando 1.3.6 –

Respuesta

2

¿Has consultado el Ruby Version Manager o rvm (http://rvm.beginrescueend.com/). Sé que se ejecuta en Linux y Mac OS X.

Básicamente es una herramienta que maneja diferentes versiones de ruby ​​y todas sus "piezas" asociadas.Estaba teniendo problemas similares cuando un amigo me recomienda que lo intente, y lo resolvió para mí.

0

No estoy completamente seguro de que no recuerdo mal como lo era hace un tiempo, pero creo que he tenido un problema similar cuando actualicé de rieles 2.3.4 a rieles 2.3.5. En ese caso, creo que el problema fue causado por la instalación de Rack 1.1.0 y Rack 1.0.1 (Rack 1.1.0 se instaló durante la actualización de Rails). Me deshice de 1.1.0 y las cosas comenzaron a funcionar de nuevo.

No tuve ningún problema cuando actualicé desde Ruby 1.8.6 a Ruby 1.8.7 (en Windows).

Podría estar equivocado, pero quizás esto al menos le dará una nueva dirección para probar.

+0

lamentablemente esta solución simple no funciona para mi sistema. –

1

Acabo de solucionar este problema. No estoy seguro de su más eficiente, pero reconstruí todo desde cero, como se detalla en hivelogic, la instalación de Ruby y Ruby gemas a '/ usr/local'

Recordando a cambiar mi camino:

export PATH=/usr/local/bin:$PATH 
+0

¿me puede explicar la ruta de exportación? ¿Cómo lo cambia uno? Seguí todos los pasos en la instalación de Snow Leopard, inicialmente funcionó, seguido de un reinicio tengo el mismo problema. –

+0

la ruta es básicamente donde se ve el shell/programa de terminal cuando escribe comandos para instrucciones sobre cómo procesar esos comandos. Cuando reconstruiste ruby ​​del tutorial, instaló todo en/usr/local, por lo que aquí lo antepones a la lista de directorios que comprueba, por lo que se ve allí primero. – ethyreal

+0

si escribe el comando de exportación en el terminal para esa sesión solamente, por lo que agrega la línea al final de su archivo .profile o .bash_login en su directorio de inicio, de modo que cada vez que inicie el terminal cargará el comando, pero supongo que también podría simplemente ingresar el comando de exportación cada vez que inicie el shell. – ethyreal

-3

necesita crear un enlace simbólico entre los dos directorios diferentes.

sudo ln -s/opt/local/bin/ruby ​​/ usr/bin/ruby ​​

+0

Mala idea. Parece que está en una Mac, y hacer eso abatirá al Ruby instalado en el sistema, lo que podría causar problemas en otros lugares. – mipadi

+0

¿qué debo hacer para deshacer este comando? Lo ejecuté ayer :( –

+0

@JZ para deshacer el comando sudo rm -rf/usr/bin/ruby ​​ @mipadi Entiendo que está en un Mac. He ejecutado este mismo comando exacto en mi máquina mac antes y funcionó bienNo veo cómo podría incluso causar problemas cuando todo lo que hace es crear un enlace al directorio, en realidad no mueve ningún archivo o carpeta. Entonces, ¿de dónde vendrían los problemas? Debe haber usado la orden que le dije que usara de todos modos porque parece que el problema está resuelto. No tiene absolutamente ninguna idea de lo que está hablando. – mike

1

Si usted está funcionando esto en un mac (que yo supongo de la 'Darwin' que aparece en su seguimientos), a veces puede obtener problemas como este si a veces ha escrito gem whatever en lugar de sudo gem whatever. Verifique su directorio ~/.gem o ~/.gems para ver si alguna gema se ha instalado accidentalmente allí.

En caso afirmativo, elimínelos/vuelva a instalarlos.

0

De hecho acabo de encontrar este problema también. El mío fue causado por la actualización de rubí. Estaba empezando con un EC2 EC2 algo viejo que ejecutaba Ruby 1.8.6, y quería correr con un 1.8.7 más nuevo. Descargué y compilé el último 1.8.7 Ruby, eliminé el enlace a mi 1.8.6 (este es un servidor Debian para que/usr/bin/ruby ​​fuera un enlace simbólico a /usr/bin/ruby1.8, ten cuidado), y tenía el nuevo Ruby ejecutándose desde/usr/local/bin/ruby. Eso estuvo bien. Pero luego comencé a encontrar un comportamiento extraño, incluido el error "Rails requires RubyGems> = 1.3.2" antes mencionado. Aquí estaban las cosas que terminó necesitando para comprobar y hacer, que podrían variar para otros, pero es de esperar que esto sea útil:

  • Quité rubygems y reinstalado: "apt-get remove rubygems" seguido descargándolo de rubyforge y la instalación. Esto podría no ser completamente necesario, pero quería asegurarme de que las cosas estuvieran limpias. Recuerda que las gemas están asociadas con tu versión de ruby, por lo que con la actualización es posible que tengas que volver a instalar todas las gemas de todos modos. No estoy seguro de si hay una solución para esto, pero me gustaría saber si es así.

  • En mi caso, hice trampa. Como iba desde 1.8.6 -> 1.8.7, decidí intentar copiar las gemas de la antigua ubicación de Ruby a la nueva: "cp -R /usr/lib/ruby/gems/1.8/usr/local/lib/ruby ​​/ gems ". Me funcionó, pero todavía estoy probando y es posible que uno tenga problemas para hacerlo, así que tenga cuidado. Sin duda es más conveniente que reinstalar todo, por supuesto.

  • Me estoy ejecutando pasajero con nginx. En la configuración del pasajero, tendrá entradas que apuntan tanto al binario de Ruby como a la gema del pasajero. ¡Asegúrate de cambiar esto! Me tomó un par de minutos preguntarme cómo mi aplicación todavía estaba comenzando correctamente aunque las gemas habían desaparecido ... Fue porque la configuración de nginx aún apuntaba directamente a /usr/bin/ruby1.8 - ¡Uy!

Espero que esta información ayude a alguien.

Cuestiones relacionadas