Puedo encontrar gemas que se instalan usando gem list
, pero no me muestra dónde están instaladas las gemas.
¿Cómo puedo encontrar dónde están las gemas y cómo puedo saber antes de instalar una gema dónde se instalará?
Úselo gem environment
para conocer su entorno de gemas:
RubyGems Environment:
- RUBYGEMS VERSION: 2.1.5
- RUBY VERSION: 2.0.0 (2013-06-27 patchlevel 247) [x86_64-darwin12.4.0]
- INSTALLATION DIRECTORY: /Users/ttm/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0
- RUBY EXECUTABLE: /Users/ttm/.rbenv/versions/2.0.0-p247/bin/ruby
- EXECUTABLE DIRECTORY: /Users/ttm/.rbenv/versions/2.0.0-p247/bin
- SPEC CACHE DIRECTORY: /Users/ttm/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-12
- GEM PATHS:
- /Users/ttm/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0
- /Users/ttm/.gem/ruby/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/ttm/.rbenv/versions/2.0.0-p247/bin
- /Users/ttm/.rbenv/libexec
- /Users/ttm/.rbenv/plugins/ruby-build/bin
- /Users/ttm/perl5/perlbrew/bin
- /Users/ttm/perl5/perlbrew/perls/perl-5.18.1/bin
- /Users/ttm/.pyenv/shims
- /Users/ttm/.pyenv/bin
- /Users/ttm/.rbenv/shims
- /Users/ttm/.rbenv/bin
- /Users/ttm/bin
- /usr/local/mysql-5.6.12-osx10.7-x86_64/bin
- /Users/ttm/libsmi/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /usr/local/bin
Observe las dos secciones para:
INSTALLATION DIRECTORY
GEM PATHS
GEM PATHS
solo se usa el primero. ¿Está bien?gem env
para abreviarEXECUTABLE DIRECTORY
.EXECUTABLE DIRECTORY
contiene las versiones ejecutables CLI instalados por las gemas, pero no es de los propios gemas.Me resultó útil obtener una ubicación del archivo de la biblioteca con:
fuente
gem which 'logstash/inputs/tcp.rb'
Después de instalar las gemas, si quieres saber dónde está una gema en particular. Intenta escribir:
Podrá ver la lista de gemas que ha instalado. Ahora usa
bundle show
y nombra la gema para la que quieres conocer el camino, así:fuente
Could not locate Gemfile or .bundle/ directory
.gem env
) muestra sólo la carpeta principal de lagems
carpeta:/home/test/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0
. Hay una serie de carpetas en su interior y su gema puede estar ubicada en casi cualquiera de ellas, eso es lo que sebundle show <gemName>
muestra exactamente (ygem env
) no.Para completar otras respuestas, la gema de ruta de gema puede encontrar la ruta de instalación de una gema en particular.
Instalación:
Uso:
Esto es realmente útil ya que puede usarlo para grep o editar archivos:
fuente
Puede verificarlo desde el símbolo del sistema ejecutando
gem help commands
y luego seleccionando el comando adecuado:Ahora de lo anterior puedo ver que el comando
environment
es útil. Entonces yo haría:Finalmente para mostrarte lo que pediste, haría:
fuente
gem help commands
. Y debería haber escrito que estoy usando rbenv.Puedes engañar
gem open
para mostrar la ruta de la gema:Ejemplo:
Simplemente funciona, y no es necesaria una gema de terceros.
fuente
-e
opción (-e echo
), si es más fácil que configurar una variable de entorno.gem env
funciona igualgem environment
. Guarda algo de tipeo.fuente
gem help commands
devuelve "Los comandos se pueden abreviar, siempre y cuando no sean ambiguos. Por ejemplo, 'gem i rake' es la abreviatura de 'gem install rake' " . En otras palabrasgem environment
,gem env
ygem e
todo funciona perogem environment
es autodocumentado para aquellos que no saben qué está haciendo, así que deberíamos usar eso para los novatos.Las
gem env
listas donde se pueden instalar gemas , pero pueden ser 10 o más ubicaciones. Si quieres saber dónde está instalada una gema en particular , puedes ejecutar:Salida de ejemplo:
fuente
si está utilizando la herramienta rvm, puede ejecutar este comando para imprimir la ruta de la gema:
O
fuente
Esto funciona y te da la ruta instalada para cada gema. Esto es muy útil cuando intentas hacer compilaciones de acopladores de varias etapas. Puedes copiar en el directorio específico posterior a la instalación del paquete.
bash-4.4# gem list -d
Salida::
fuente