Recomiendo direnv . Es un conmutador de entorno para el shell.
Antes de cada solicitud, verifica la existencia de un archivo ".envrc" en los directorios actual y principal. Si el archivo existe (y está autorizado), se carga en un shell secundario de bash y todas las variables exportadas son capturadas por direnv y luego están disponibles en el shell actual.
Aquí se explica cómo usar direnv con ruby-install
+ ruby-install
Agregue esto a la ~/.direnvrc
use_ruby() {
local ruby_root=$HOME/.rubies/$1
load_prefix "$ruby_root"
layout_ruby
}
Instale ruby-install ( brew install ruby-install
) e instale un montón de rubíes.
ruby-install ruby 1.9.3
ruby-install ruby 2.0.0
ruby-install ruby 2.2.0
Y luego crea un par de enlaces simbólicos para mayor comodidad:
ln -s .rubies/1.9 ruby-1.9.3-p*
ln -s .rubies/2.0 ruby-2.0.0
ln -s .rubies/2.2 ruby-2.2.0
Y finalmente en cualquier proyecto .envrc
:
use ruby 2.0
Esto colocará todas las gemas en el .direnv/ruby
directorio del proyecto (facilita la apertura de gemas). bundler colocará binarios de envoltura .direnv/bin
(¡no más bundle exec
!).
+ rbenv
También es posible usar rbenv agregando el use rbenv
comando en cualquier .envrc
archivo. Esto activará rbenv que a su vez colocará los envoltorios de rubí en la RUTA.
Tenga en cuenta que no es necesario instalar rbenv en .bashrc o .zshrc para que esto funcione.
+ RVM
Aquí está el .envrc más complicado que uso en proyectos de ruby:
rvm use 1.8.7
layout ruby
PATH_add .direnv/bundler-bin
rvm se usa para seleccionar la versión de rubí adecuada para usted
Los comandos de diseño configuran automáticamente algunas de las variables de entorno habituales. Por ahora solo existe el diseño de rubí. Lo que hace es establecer la variable de entorno GEM_HOME y su directorio bin a su ruta. Debido a que depende de la versión ruby, asegúrese de llamarlo después de "rvm". Dado que cada directorio de diseño de ruby tiene su propio GEM_HOME, no necesita usar los gemas de rvm.
PATH_add antepone y expande la ruta relativa dada. En ese caso, uso esto para segregar los binstubs del paquete de mis propios scripts bin conbundle install --binstubs .direnv/bundler-bin
Si quiere saber qué hacen exactamente esos comandos, por ahora: cat direnv stdlib
| Menos