2012-09-07 24 views
30

Hola, he estado intentando probablemente instalar el paquete Ruby gem. Sigo las instrucciones gem install bundle después de recibir este mensaje, pero todavía no funciona cuando escribo bundle -v. También escriboERROR: el paquete de gemas no está instalado, ejecute `gem install bundler` primero

which bundle y recibo

/Users/edmundmai/.rvm/bin/bundle 

por lo que existe !! Entonces, ¿por qué no funciona? ¿Hay algún problema con el misterioso $ PATH que no obtengo? (Soy un novato).

Aquí es mi .bash_profile:

PATH=$PATH:~/bin 
export PATH 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function 

Aquí es mi .bashrc:

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

Aquí es mi joya env:

RubyGems Environment: 
- RUBYGEMS VERSION: 1.8.24 
- RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-darwin11.3.1] 
- INSTALLATION DIRECTORY: /Users/edmundmai/.rvm/gems/[email protected] 
- RUBY EXECUTABLE: /Users/edmundmai/.rvm/rubies/ruby-1.9.3-p194/bin/ruby 
- EXECUTABLE DIRECTORY: /Users/edmundmai/.rvm/gems/[email protected]/bin 
- RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-11 
- GEM PATHS: 
    - /Users/edmundmai/.rvm/gems/[email protected] 
    - /Users/edmundmai/.rvm/gems/[email protected] 
- GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - "install" => "--no-rdoc --no-ri" 
    - "update" => "--no-rdoc --no-ri" 
- REMOTE SOURCES: 
    - http://rubygems.org/ 

echo $ PATH

/Users/edmundmai/.rvm/bin:/Users/edmundmai/.rvm/gems/[email protected]/bin:/Users/edmundmai/.rvm/gems/[email protected]/bin:/Users/edmundmai/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/edmundmai/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/edmundmai/bin:/Users/edmundmai/bin

ACTUALIZACIÓN Así que después de tratar de seguir con el tutorial de RoR, repití algunos de los pasos del capítulo anterior en una de las dos ventanas de la terminal (llamémoslos Terminal # 1 y Terminal # 2). El terminal # 2 todavía no funciona (la línea de comando no está en ningún directorio, solo el directorio predeterminado) mientras que el terminal # 1 (en mi directorio sample_app) funciona. Creo que rvm get head && rvm reload podría ser la clave? ¿Pero eso significa que tengo que ejecutar eso cada vez que abro mi terminal? Echa un vistazo a mi terminal # 1 comandos para antes y después (He eliminado parte de la salida de manera que sería más claro cuáles eran mis líneas de entrada):

Edmunds-MacBook-Pro:sample_app edmundmai$ bundle -v 
ERROR: Gem bundler is not installed, run `gem install bundler` first. 
Edmunds-MacBook-Pro:sample_app edmundmai$ gem install 
ERROR: While executing gem ... (Gem::CommandLineError) 
Please specify at least one gem name (e.g. gem build GEMNAME) 
Edmunds-MacBook-Pro:sample_app edmundmai$ rvm -v 


rvm 1.15.8 (master) by Wayne E. Seguin <[email protected]>, Michal Papis  <[email protected]> [https://rvm.io/] 

Edmunds-MacBook-Pro:sample_app edmundmai$ rspec spec/ 
No DRb server is running. Running in local process instead ... 
........ 

Finished in 0.36709 seconds 
8 examples, 0 failures 

Randomized with seed 59500 

Edmunds-MacBook-Pro:sample_app edmundmai$ subl . 
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle install --binstubs=./bundler_stubs 
Using rake (0.9.2.2) 
... 
... 
(**list of stuff) 
Using uglifier (1.2.3) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. 
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle show bundler 
/Users/edmundmai/.rvm/gems/[email protected]/gems/bundler-1.2.0 

estoy muy claro en cuanto a lo que el $ PATH hace. Si necesitan más información, siéntanse libres de decirme y la proporcionaré.

+0

usted ha intentado instalar 'joya bundle' ¿pero has probado 'gem install bundler'? – cjc343

+0

@ cjc343: la gema 'bundle' tiene' bundler' como una dependencia, por lo que tiene el mismo efecto. – jmdeldin

+0

@ Edmund: ¿Has comenzado una nueva terminal o has sacado tu bash_profile desde que lo editó? ¿Puedes pegar la salida de 'echo $ PATH' en tu shell? ¿Cómo instalas RVM? Ha pasado un tiempo desde que lo usé, pero en general, es una configuración de copiar/pegar y ejecutar. – jmdeldin

Respuesta

81

Creo que este es el problema: tiene bundler instalado en un gemset específico, por lo que solo está disponible cuando se encuentra en el directorio de la aplicación (supongo que hay un archivo .rvmrc allí).

Usted tiene algunas opciones:

  1. Instale bundler a un gemset global. rvm gemset use global && gem install bundler
  2. Si tiene instalado Homebrew, solo haga brew install ruby y evite rvm por completo. (También hay rbenv y Ry como alternativas a RVM, pero yo sólo uso 1.9.3 en todas mis aplicaciones, por lo Homebrew está muy bien.)

Como referencia, $PATH es una variable ambiental cáscara que contiene una lista de directorios que mantener ejecutables (por ejemplo, echo, ls, vim, etc.). Es intrínseco a las conchas.

+1

Gracias por la referencia de $ PATH. Acabo de intentar # 1 cuando abro una nueva terminal y funcionó cuando escribí 'bundle -v' (aunque no probé homebrew ya que funcionó después de # 1). Eres el mejor, gracias por toda tu ayuda! – Edmund

+1

@ Edmund: ¡Me alegro de que funcionó! Ahora la parte difícil ha terminado, y puedes volver a aprender Rails :). – jmdeldin

+0

¡Configurar el paquete al gemset global funcionó perfectamente! ¡Muchas gracias! – esnowrackley

52

A veces es solo que no está obteniendo rvm correctamente, porque no está en un shell de inicio de sesión (¿usando la pantalla?). Tipo

 
    source ~/.rvm/scripts/rvm 

Y utilice cualquier comando de paquete.

+0

Esto me ayudó pero tengo que ejecutar este comando cada vez que abro una nueva ventana de terminal. ¿Cómo puedo evitar esto? – SET

+4

ponga esta línea en su ~/.bashrc (si no está ya allí). – hammady

4

Añadir la siguiente línea al archivo ~/.bashrc

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function 

vuelva a cargar el archivo:

$ source ~/.bashrc 
0

Si utiliza RVM crear un gemset separada, que son paquetes independientes de gemas.

rvm use [email protected] --create --default 
  • myApplicationNameHere = cambiar esto a su nombre de la aplicación
  • crear = crea un gemset
  • defecto = significa que se utiliza esta versión de rubí y gemset como predeterminado

Aquí está el enlace para el sitio rvm y la sección correspondiente https://rvm.io/gemsets/basics/

1

Incluso tuve el mismo pro blema,

En RVM servidor no fue seleccionado como default.So

rvm use 1.9.3 --default 

gem install bundler 

solucionado mi problema (problema se produce sólo cuando se utiliza RVM)

Cuestiones relacionadas