¿Cómo uso gems con Ubuntu?
Recientemente actualizé a Ubuntu 9.04 y tengo problemas con el uso de gemas.
Instalé Ruby, Rubygems y Rails usando apt-get.
El comando rails
funciona.
Luego instalé capistrano y otras gemas, como heroku. Para hacer eso, usé 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 gema.
¿Tengo algo en particular que hacer para que los comandos gem funcionen?
5 answers
¿Dónde están mis gemas?
Puedes encontrar dónde se almacenan tus gemas usando 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 miras la sección "RUTAS DE GEMAS:" 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 directorio .gem
en mi directorio de inicio.
También puede ver que los ejecutables se almacenan en el DIRECTORIO EJECUTABLE que en este caso es /usr/bin
.
Porque /usr/bin
está en mi camino esto me permite correr cap
, merb
, rails
sucesivamente.
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 de ruta.
Asumiendo que estás usando el shell bash. Puede hacer esto rápidamente para la sesión actual escribiendo lo siguiente en el símbolo del shell; supongamos que desea agregar /var/lib/gems/1.8/bin
a la ruta:
export PATH=$PATH:/var/lib/gems/1.8/bin
Y pulse intro. Que añade el nuevo directorio al final de la ruta actual. Observe los dos puntos entre $PATH
y /var/lib/gems/1.8/bin
Para establecer el valor para todas las sesiones, deberá editar su archivo .profile
o .bashrc
y agregar la misma línea al final del archivo. Por lo general, edito mi archivo .bashrc
sin otra razón que la que siempre he hecho. Cuando haya terminado, guarde el archivo y luego actualice su entorno escribiendo:
bash
En el intérprete de comandos. Eso hará que el .bashrc
se vuelva a leer.
En cualquier momento se puede comprobar la corriente valor de $PATH
escribiendo
echo $PATH
En el intérprete de comandos.
Aquí hay una muestra de uno de mis propios 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 carga!
"Las gemas de Ruby no se cargan aunque estén instaladas " resalta un problema común al usar múltiples versiones diferentes de Ruby; A veces el entorno de Gema y la ruta de la Gema 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 Ruby aquí está buscando solo en uno lugar para 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 gema:
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
Este no es el mismo camino que devuelve Gem.ruta:
["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
Es difícil decir qué causó exactamente que lib/ruby
cambiara a lib/ruby1.9
pero lo más probable es que el desarrollador estuviera trabajando con varias versiones de Ruby. Un rápido mv
o ln
resolverá el problema.
Si necesita trabajar con varias versiones de Ruby, entonces realmente debería usar rvm.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:29:36
Como señaló @Chris, debe agregar el entorno gems a su ruta. Usted puede hacer esto por:
echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-08 20:09:33
La carpeta en la que se almacenan las gemas debe estar en su CAMINO, por ejemplo, la mía es:
/home/victor/.gem/ruby/1.8 / bin
Compruebe su ruta escribiendo
echo $PATH
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-26 09:07:20
Sees que al instalar rubygems, ahora en ubuntu 9.04, tengo este problema. He notado que en " entorno gem "el directorio ejecutable es" /var/lib/gems/1.8/bin", en lugar de"/usr/bin"... Esto 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 PATH haciendo esto: export PATH=PATH PATH:/var / lib / gems / 1.8 / bin Pero no se salva... ¿cómo puedo salvar mi camino?
Gracias...
Resolvi: coloquei o export PATH=PATH PATH: / var/lib/gems/1.8 /bin no~/.bashrc! =]
Mkmf es parte del paquete ruby1.9.1-dev. Este paquete contiene los archivos de cabecera necesarios para las bibliotecas de extensiones de Ruby 1.9.1. Necesita instalar el paquete ruby1.9.1-dev haciendo:
Sudo apt-get install ruby1. 9. 1-dev
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-02 11:36:20