Pregunta

Recientemente he actualizado a Ubuntu 9.04 y no tengo problemas usando gemas. He instalado Ruby, Rails y Rubygems usando apt-get. El comando rails funciona.

Luego instalado Capistrano y otras gemas, tales como heroku. Con el fin de hacer eso, he usado el comando:

sudo gem install XXX

Cuando quiero usar el comando cap no funciona:

bash: cap: command not found

Es lo mismo con los otros comandos de la gema.

¿Tengo algo en particular que hacer para que la gema comandos de trabajo?

¿Fue útil?

Solución

¿Dónde están mis joyas?

Puede encontrar dónde se almacenan sus gemas con el comando gem environment. Por ejemplo:

chris@chris-laptop:~$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.2

  - RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
     - /home/chris/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:

Si nos fijamos en los "caminos de GEM:" sección puede ver que las gemas pueden ser almacenados en dos lugares en mi portátil:. /usr/lib/ruby/gems/1.8 o en el directorio .gem en mi directorio home

También se puede ver que los ejecutables se almacenan en el directorio ejecutable que en este caso es /usr/bin.

Debido /usr/bin está en mi camino Esto me permite correr cap, merb, rails etc.

Actualización de su PATH

Si por alguna razón su directorio de la aplicación no está en su ruta (por ejemplo, si se /var/lib/gems/1.8/bin), entonces usted necesita para actualizar la variable PATH.

Si se asume que está utilizando el shell bash. Usted puede hacer esto de manera rápida para la sesión actual escribiendo lo siguiente en el intérprete de comandos; vamos a suponer que desea agregar /var/lib/gems/1.8/bin a la ruta:

export PATH=$PATH:/var/lib/gems/1.8/bin

y pulse retorno. Que anexa el nuevo directorio para el final de la ruta actual. Observe los dos puntos entre $PATH y /var/lib/gems/1.8/bin

Para establecer el valor de todas las sesiones que se necesitan para editar su archivo, ya sea .profile o .bashrc y añadir la misma línea al final del archivo. Generalmente edito mi archivo .bashrc por ninguna otra razón que eso es lo que siempre he hecho. Cuando haya terminado, guarde el archivo y actualice su entorno escribiendo:

bash

en el intérprete de comandos. Eso hará que el .bashrc para conseguir volver a leer.

En cualquier momento puede comprobar el valor actual de $PATH escribiendo

echo $PATH

en el intérprete de comandos.

He aquí una muestra de uno de mis propios servidores, donde mi nombre de usuario es "Chris" y el nombre del equipo es "Chris-portátil":

chris@chris-laptop:~$ 
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$ 
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$ 
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$ 

Mi gema no se carga!

" gemas de Ruby no se cargarán a pesar instalado " pone de relieve un problema común el uso de múltiples versiones diferentes de Rubí; A veces, el medio ambiente y la ruta de la gema de la gema pierden la sincronización:

rb(main):003:0> Gem.path

=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit

Cualquier proceso de Rubí aquí está buscando en un solo lugar por sus gemas.

:~/$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
  - INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
  - EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /opt/ruby1.9/lib/ruby/gems/1.9.1
     - /home/mark/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

Mire cuidadosamente la salida del entorno de la gema:

  - GEM PATHS:
     - /opt/ruby1.9/lib/ruby/gems/1.9.1

Este no es el mismo camino que devuelto por Gem.path:

["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]

Es difícil decir exactamente lo que causó lib/ruby para cambiar a lib/ruby1.9 pero lo más probable el desarrollador estaba trabajando con varias versiones de Ruby. Un mv rápido o ln va a resolver el problema.

Si necesita trabajar con múltiples versiones de Ruby entonces usted realmente debería estar usando RVM .

Otros consejos

Como señaló @ Chris es necesario agregar el medio ambiente gemas a su ruta. Usted puede hacer esto:

echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc

La carpeta en la que se gemas almacenan debe estar en su PATH, por ejemplo, la mía es:

  

/home/victor/.gem/ruby/1.8/bin

Compruebe su camino escribiendo

echo $PATH

seens que al instalar rubygems, ahora en ubuntu 9.04, tengo este problema. Noté que en el "entorno de joya" del directorio ejecutable es "/var/lib/gems/1.8/bin", en lugar de "/ usr / bin" ... Este es un problema con rubygems o con ubuntu 9.04 ??

La solución que he encontrado es añadir "/var/lib/gems/1.8/bin" a mi $ PATH hacer esto: Export PATH = $ PATH: /var/lib/gems/1.8/bin Pero no lo hacen se guarda ... ¿cómo puedo salvar mi camino?

Gracias ...

Resolvi: coloquei o export PATH = $ PATH: /var/lib/gems/1.8/bin sin ~ / .bashrc! =]

MKMF es parte del paquete ruby1.9.1-dev. Este paquete contiene los archivos de cabecera necesarios para las bibliotecas de extensión del Ruby 1.9.1. Es necesario instalar el paquete ruby1.9.1-dev haciendo:

sudo apt-get install ruby1.9.1-dev

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top