¿Cómo utilizo las joyas con Ubuntu?
-
05-09-2019 - |
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?
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