Pregunta ¿Cómo uso gemas con Ubuntu?


Recientemente me actualicé a Ubuntu 9.04 y tengo problemas al usar gemas. Instalé Ruby, Rubygems y Rails usando apt-get. los rails comando funciona

Luego instalé capistrano y otras gemas, como heroku. Para hacer eso, utilicé el comando:

sudo gem install XXX

Cuando quiero usar el cap comando no funciona:

bash: cap: command not found

Es lo mismo con los otros comandos de gemas.

¿Tengo algo especial que hacer para que los comandos de la gema funcionen?


76
2018-05-26 08:55


origen


Respuestas:


¿Dónde están mis gemas?

Puedes encontrar dónde están almacenadas tus gemas usando el gem environment mando. 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 miras la sección "GEM PATHS:" puedes ver que las gemas se pueden almacenar en dos lugares en mi computadora portátil: /usr/lib/ruby/gems/1.8 o en el .gem directorio en mi directorio de inicio

También puede ver que los ejecutables se almacenan en DIRECTORIO EJECUTABLE, que en este caso es /usr/bin.

Porque /usr/bin está en mi camino esto me deja correr cap, merb, rails etc.

Actualizando tu RUTA

Si por alguna razón su DIRECTORIO EJECUTABLE no está en su ruta (por ejemplo, si es /var/lib/gems/1.8/bin), entonces necesita actualizar su variable PATH.

Asumiendo que estás usando el shell bash. Puede hacer esto rápidamente para la sesión actual escribiendo lo siguiente en el indicador del intérprete de comandos; Vamos a pretender que quieres agregar /var/lib/gems/1.8/bin a la ruta:

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

y presione regresar. Eso agrega el nuevo directorio al final de la ruta actual. Tenga en cuenta los dos puntos entre $PATH y /var/lib/gems/1.8/bin

Para establecer el valor de todas las sesiones, deberá editar su .profile o .bashrc archivo y agregue la misma línea al final del archivo. Normalmente edito mi .bashrc archivo sin ninguna otra razón que eso es lo que siempre he hecho. Cuando termine, guarde el archivo y luego actualice su entorno escribiendo:

bash

en el indicador de shell. Eso causará el .bashrc para volver a leer.

En cualquier punto puede verificar el valor actual de $PATH escribiendo

echo $PATH

en el indicador de shell.

Aquí hay una muestra de uno de mis servidores, donde mi nombre de usuario es "chris" y el nombre de la máquina es "chris-laptop":

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 cargará!

"Las gemas de Ruby no se cargarán aunque estén instaladas"resalta un problema común al usar múltiples versiones diferentes de Ruby: algunas veces, el entorno de gemas y la ruta de gemas no se sincronizan:

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

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

Cualquier proceso de Ruby aquí solo busca en un lugar 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 el resultado del entorno de la gema:

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

Esta no es la misma ruta devuelta por Gem.path:

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

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

Si necesitas trabajar con varias versiones de Ruby, entonces deberías estar usando rvm.


138
2018-05-26 10:23



Como señaló @Chris, necesitas agregar el entorno de gemas a tu camino. Puedes hacer esto por:

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

5
2017-08-08 20:09



La carpeta en la que están las gemas almacenado debe estar en su PATH, por ejemplo, el mío es:

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

Verifica tu camino tecleando

echo $PATH

3
2018-05-26 09:07



Se ve que al instalar rubygems, ahora en ubuntu 9.04, tengo este problema. Noté que en el "entorno de gemas" el 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 encontré es agregar "/var/lib/gems/1.8/bin" a mi $ PATH al hacer esto: PATH de exportación = $ PATH: /var/lib/gems/1.8/bin Pero no se guarda ... ¿cómo puedo salvar mi camino?

Gracias...

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


1
2018-05-27 00:02



mkmf es parte del paquete ruby1.9.1-dev. Este paquete contiene los archivos de encabezado necesarios para las bibliotecas de extensión de Ruby 1.9.1. Necesita instalar el paquete ruby1.9.1-dev haciendo:

sudo apt-get install ruby1.9.1-dev


0
2018-04-02 11:36