Saya merekomendasikan direnv . Ini adalah pengalih lingkungan untuk shell.
Sebelum setiap prompt ia memeriksa keberadaan file ".envrc" di direktori saat ini dan induk. Jika file ada (dan diotorisasi), file tersebut dimuat ke dalam sub-shell bash dan semua variabel yang diekspor kemudian ditangkap oleh direnv dan kemudian menyediakan shell saat ini.
Inilah cara menggunakan direnv dengan ruby-install
+ ruby-install
Tambahkan ini ke ~/.direnvrc
use_ruby() {
local ruby_root=$HOME/.rubies/$1
load_prefix "$ruby_root"
layout_ruby
}
Instal ruby-install ( brew install ruby-install
) dan instal sekelompok rubi.
ruby-install ruby 1.9.3
ruby-install ruby 2.0.0
ruby-install ruby 2.2.0
Dan kemudian buat beberapa symlink untuk kenyamanan:
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
Dan akhirnya dalam proyek apa pun .envrc
:
use ruby 2.0
Ini akan menempatkan semua permata di bawah .direnv/ruby
direktori proyek (membuat pembukaan permata lebih mudah). bundler akan memasukkan binari pembungkus .direnv/bin
(tidak lebih bundle exec
!).
+ rbenv
Anda juga dapat menggunakan rbenv dengan menambahkan use rbenv
perintah apa pun.envrc
file . Ini akan mengaktifkan rbenv yang pada gilirannya akan menempatkan pembungkus ruby di PATH.
Perhatikan bahwa tidak perlu menginstal rbenv di .bashrc atau .zshrc agar ini berfungsi.
+ RVM
Berikut ini .envrc paling rumit yang saya gunakan pada proyek ruby:
rvm use 1.8.7
layout ruby
PATH_add .direnv/bundler-bin
rvm digunakan untuk memilih versi ruby yang tepat untuk Anda
perintah tata letak secara otomatis mengatur beberapa variabel lingkungan yang biasa. Untuk saat ini hanya ada tata letak ruby. Apa yang dilakukannya adalah mengatur variabel lingkungan GEM_HOME dan direktori bin-nya ke path Anda. Karena itu tergantung pada versi ruby, pastikan untuk memanggilnya setelah "rvm". Karena setiap direktori tata letak ruby memiliki GEM_HOME sendiri, Anda tidak perlu menggunakan permata rvm.
PATH_add menambahkan dan memperluas jalur relatif yang diberikan. Dalam hal ini, saya menggunakan ini untuk memisahkan binstubs bundler dari skrip bin saya sendiribundle install --binstubs .direnv/bundler-bin
Jika Anda ingin mengetahui apa yang sebenarnya dilakukan perintah-perintah itu, untuk saat ini: cat direnv stdlib
| kurang