Direnv tavsiye ederim . Kabuk için bir ortam değiştiricidir.
Her komut isteminden önce, geçerli ve üst dizinlerde ".envrc" dosyasının var olup olmadığını kontrol eder. Dosya varsa (ve yetkilendirilmişse), bir bash alt kabuğuna yüklenir ve dışa aktarılan tüm değişkenler daha sonra direnv tarafından yakalanır ve geçerli kabuk kullanılabilir hale getirilir.
İşte direnv nasıl kullanılacağı ile yakut yüklemek
+ ruby-install
Bunu şuraya ekle: ~/.direnvrc
use_ruby() {
local ruby_root=$HOME/.rubies/$1
load_prefix "$ruby_root"
layout_ruby
}
Ruby-install ( brew install ruby-install) 'ı ve bir demet yakut takın.
ruby-install ruby 1.9.3
ruby-install ruby 2.0.0
ruby-install ruby 2.2.0
Ve sonra kolaylık sağlamak için birkaç sembolik bağlantı yapın:
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
Ve son olarak herhangi bir projede .envrc:
use ruby 2.0
Bu, tüm mücevherleri proje .direnv/rubydizinine koyacaktır (açılış mücevherlerini kolaylaştırır). bundler sarıcı ikili dosyaları koyacaktır .direnv/bin(artık yok bundle exec!).
+ rbenv
use rbenvKomutu herhangi bir .envrcdosyaya ekleyerek rbenv kullanmak da mümkündür . Bu, yakut ambalajları PATH'a koyacak olan rbenv'yi aktive edecektir.
Bunun çalışması için rbenv dosyasının .bashrc veya .zshrc dosyasına yüklenmesinin gerekli olmadığını unutmayın.
+ RVM
İşte yakut projelerinde kullandığım en karmaşık .envrc:
rvm use 1.8.7
layout ruby
PATH_add .direnv/bundler-bin
rvm sizin için doğru yakut versiyonunu seçmek için kullanılır
düzen komutları normal ortam değişkenlerinin bazılarını otomatik olarak ayarlar. Şimdilik sadece yakut düzeni var. Yaptığı şey GEM_HOME ortam değişkenini ve bin dizinini yolunuza ayarlamaktır. Ruby sürümüne bağlı olduğu için "rvm" den sonra aramayı unutmayın. Her yakut mizanpaj dizininin kendi GEM_HOME'u olduğundan, rvm'nin değerli taşlarını kullanmanıza gerek yoktur.
PATH_add, verilen göreli yolu önceliklendirir ve genişletir. Bu durumda, bundler binstub'larını kendi bin scriptlerimden ayırmak için bunubundle install --binstubs .direnv/bundler-bin
Bu komutların tam olarak ne yaptığını öğrenmek istiyorsanız, şimdilik: cat direnv stdlib| az