rbenv adalah alat manajer versi untuk bahasa pemrograman Ruby pada sistem mirip Unix. Hal ini berguna untuk beralih di antara beberapa versi Ruby pada mesin yang sama dan untuk memastikan bahwa setiap proyek yang Anda kerjakan selalu berjalan pada versi Ruby yang benar.
Setelah rbenv menyuntikkan dirinya ke dalam PATH Anda pada waktu instalasi, setiap pemanggilan ruby
, gem
, bundler
, atau executable terkait Ruby lainnya akan mengaktifkan rbenv terlebih dahulu. Kemudian, rbenv memindai direktori proyek saat ini untuk mencari file bernama .ruby-version
. Jika ditemukan, file tersebut menentukan versi Ruby yang harus digunakan dalam direktori tersebut. Terakhir, rbenv mencari versi Ruby tersebut di antara versi yang diinstal di bawah ~/.rbenv/versions/
.
Anda dapat memilih versi Ruby untuk proyek Anda, misalnya:
cd myproject
# choose Ruby version 3.1.2:
rbenv local 3.1.2
Melakukannya akan membuat atau memperbarui file .ruby-version
di direktori saat ini dengan versi yang Anda pilih. Proyek Anda yang berbeda yaitu direktori lain mungkin menggunakan versi Ruby yang berbeda—rbenv akan bertransisi dengan mulus dari satu versi Ruby ke versi lainnya saat Anda berpindah proyek.
Terakhir, hampir setiap aspek mekanisme rbenv dapat disesuaikan melalui plugin yang ditulis dalam bash.
Kesederhanaan rbenv memiliki kelebihan, namun juga beberapa kelemahan. Lihat perbandingan pengelola versi untuk detail lebih lanjut dan beberapa alternatif.
Pada sistem dengan manajer paket Homebrew, metode “Menggunakan Manajer Paket” direkomendasikan. Di sistem lain, “Basic Git Checkout” mungkin merupakan cara termudah untuk memastikan bahwa Anda selalu menginstal rbenv versi terbaru.
Instal rbenv menggunakan salah satu pendekatan berikut.
Di macOS atau Linux, kami menyarankan menginstal rbenv dengan Homebrew.
brew install rbenv
[!PERINGATAN]
Versi rbenv yang dikemas dan dikelola di repositori resmi Debian dan Ubuntu sudah kedaluwarsa . Untuk menginstal versi terbaru, disarankan untuk menginstal rbenv menggunakan git.
sudo apt install rbenv
Archlinux memiliki Paket AUR untuk rbenv dan Anda dapat menginstalnya dari AUR menggunakan instruksi dari halaman wiki ini.
Fedora memiliki paket resmi yang dapat Anda instal:
sudo dnf install rbenv
Siapkan shell Anda untuk memuat rbenv.
rbenv init
Tutup jendela Terminal Anda dan buka yang baru agar perubahan Anda diterapkan.
Itu saja! Anda sekarang siap untuk menginstal beberapa versi Ruby.
Catatan
Untuk instalasi yang lebih otomatis, Anda dapat menggunakan rbenv-installer. Jika Anda tidak ingin menjalankan skrip yang diunduh dari URL web atau lebih memilih pendekatan manual, ikuti langkah-langkah di bawah ini.
Ini akan membantu Anda menggunakan rbenv versi terbaru tanpa memerlukan instalasi seluruh sistem.
Kloning rbenv ke ~/.rbenv
.
git clone https://github.com/rbenv/rbenv.git ~ /.rbenv
Siapkan shell Anda untuk memuat rbenv.
~ /.rbenv/bin/rbenv init
Jika Anda penasaran, lihat di sini untuk memahami apa yang dilakukan init
.
Mulai ulang shell Anda agar perubahan ini diterapkan. (Membuka tab terminal baru biasanya akan berhasil.)
Saat menginstal rbenv secara manual , mungkin berguna untuk memperhatikan cara kerja skrip penyelesaian untuk berbagai shell. Skrip penyelesaian membantu mengetikkan perintah rbenv dengan memperluas nama perintah rbenv dan tanda opsi yang dimasukkan sebagian; biasanya ini dipanggil dengan menekan tombol Tab di shell interaktif.
Skrip penyelesaian bash untuk rbenv dikirimkan bersama proyek dan dimuat oleh mekanisme rbenv init
.
Skrip penyelesaian zsh dikirimkan bersama proyek, tetapi perlu ditambahkan ke FPATH di zsh sebelum dapat ditemukan oleh shell. Salah satu cara untuk melakukan ini adalah dengan mengedit ~/.zshrc
:
# assuming that rbenv was installed to `~/.rbenv`
FPATH= ~ /.rbenv/completions: " $FPATH "
autoload -U compinit
compinit
Skrip penyelesaian ikan untuk rbenv dikirimkan dengan cangkang ikan itu sendiri dan tidak dikelola oleh proyek rbenv.
Perintah rbenv install
tidak dikirimkan bersama rbenv secara langsung, namun disediakan oleh plugin ruby-build.
Sebelum mencoba menginstal Ruby, periksa apakah lingkungan build Anda memiliki alat dan pustaka yang diperlukan . Kemudian:
# list latest stable versions:
rbenv install -l
# list all local versions:
rbenv install -L
# install a Ruby version:
rbenv install 3.1.2
Untuk memecahkan masalah skenario BUILD FAILED
, periksa bagian Diskusi ruby-build.
Catatan
Jika perintah rbenv install
tidak ditemukan, Anda dapat menginstal ruby-build sebagai plugin:
git clone https://github.com/rbenv/ruby-build.git " $( rbenv root ) " /plugins/ruby-build
Tetapkan versi Ruby untuk menyelesaikan instalasi dan mulai menggunakan Ruby:
rbenv global 3.1.2 # set the default Ruby version for this machine
# or:
rbenv local 3.1.2 # set the Ruby version for this directory
Sebagai alternatif dari perintah rbenv install
, Anda dapat mengunduh dan mengkompilasi Ruby secara manual sebagai subdirektori ~/.rbenv/versions
. Entri dalam direktori tersebut juga dapat berupa symlink ke versi Ruby yang diinstal di tempat lain pada sistem file.
Pilih versi Ruby untuk proyek Anda menggunakan rbenv local 3.1.2
, misalnya. Kemudian, lanjutkan untuk menginstal permata seperti biasa:
gem install bundler
Catatan
Anda tidak boleh menggunakan sudo untuk memasang permata. Biasanya, versi Ruby akan diinstal di bawah direktori home Anda dan dengan demikian dapat ditulisi oleh pengguna Anda. Jika Anda mendapatkan kesalahan "Anda tidak memiliki izin menulis" saat memasang permata, kemungkinan versi Ruby "sistem" Anda masih merupakan default global. Ubah itu dengan rbenv global <version>
dan coba lagi.
Periksa lokasi di mana permata dipasang dengan gem env
:
gem env home
# => ~/.rbenv/versions/<version>/lib/ruby/gems/...
Seiring berjalannya waktu, versi Ruby yang Anda instal akan terakumulasi di direktori ~/.rbenv/versions
Anda.
Untuk menghapus versi Ruby lama, cukup rm -rf
direktori versi yang ingin Anda hapus. Anda dapat menemukan direktori versi Ruby tertentu dengan perintah rbenv prefix
, misalnya rbenv prefix 2.7.0
.
Plugin ruby-build menyediakan perintah rbenv uninstall
untuk mengotomatiskan proses penghapusan.
Perintah rbenv utama yang perlu Anda ketahui adalah:
Mencantumkan semua versi Ruby yang diketahui rbenv, dan menampilkan tanda bintang di sebelah versi yang sedang aktif.
$ rbenv versions
1.8.7-p352
1.9.2-p290
* 1.9.3-p327 (set by /Users/sam/.rbenv/version)
jruby-1.7.1
rbx-1.2.4
ree-1.8.7-2011.03
Menampilkan versi Ruby yang sedang aktif, beserta informasi tentang cara pengaturannya.
$ rbenv version
1.9.3-p327 (set by /Users/sam/.rbenv/version)
Menetapkan versi Ruby khusus aplikasi lokal dengan menulis nama versi ke file .ruby-version
di direktori saat ini. Versi ini menggantikan versi global, dan dapat diganti sendiri dengan mengatur variabel lingkungan RBENV_VERSION
atau dengan perintah rbenv shell
.
rbenv local 3.1.2
Saat dijalankan tanpa nomor versi, rbenv local
melaporkan versi lokal yang dikonfigurasi saat ini. Anda juga dapat menghapus versi lokal:
rbenv local --unset
Menyetel versi global Ruby untuk digunakan di semua shell dengan menulis nama versi ke file ~/.rbenv/version
. Versi ini dapat diganti dengan file .ruby-version
khusus aplikasi, atau dengan mengatur variabel lingkungan RBENV_VERSION
.
rbenv global 3.1.2
system
nama versi khusus memberitahu rbenv untuk menggunakan sistem Ruby (terdeteksi dengan mencari $PATH
Anda).
Ketika dijalankan tanpa nomor versi, rbenv global
melaporkan versi global yang dikonfigurasi saat ini.
Tetapkan versi Ruby khusus shell dengan mengatur variabel lingkungan RBENV_VERSION
di shell Anda. Versi ini mengesampingkan versi khusus aplikasi dan versi global.
rbenv shell jruby-1.7.1
Saat dijalankan tanpa nomor versi, rbenv shell
melaporkan nilai RBENV_VERSION
saat ini. Anda juga dapat menghapus versi shell:
rbenv shell --unset
Perhatikan bahwa Anda perlu mengaktifkan integrasi shell rbenv (langkah 3 dari petunjuk instalasi) untuk menggunakan perintah ini. Jika Anda memilih untuk tidak menggunakan integrasi shell, Anda cukup mengatur sendiri variabel RBENV_VERSION
:
export RBENV_VERSION=jruby-1.7.1
Menginstal shim untuk semua executable Ruby yang diketahui rbenv ( ~/.rbenv/versions/*/bin/*
). Biasanya Anda tidak perlu menjalankan perintah ini, karena perintah ini akan berjalan secara otomatis setelah menginstal permata.
rbenv rehash
Menampilkan path lengkap ke executable yang akan dipanggil rbenv saat Anda menjalankan perintah yang diberikan.
$ rbenv which irb
/Users/sam/.rbenv/versions/1.9.3-p327/bin/irb
Mencantumkan semua versi Ruby yang berisi nama executable tertentu.
$ rbenv whence rackup
1.9.3-p327
jruby-1.7.1
ree-1.8.7-2011.03
Anda dapat memengaruhi cara rbenv beroperasi dengan pengaturan berikut:
nama | bawaan | keterangan |
---|---|---|
RBENV_VERSION | Menentukan versi Ruby yang akan digunakan. Lihat juga rbenv shell | |
RBENV_ROOT | ~/.rbenv | Mendefinisikan direktori di mana versi dan shim Ruby berada. Lihat juga rbenv root |
RBENV_DEBUG | Menghasilkan informasi debug. Juga sebagai: rbenv --debug <subcommand> | |
RBENV_HOOK_PATH | lihat wiki | Daftar jalur yang dipisahkan titik dua mencari kait rbenv. |
RBENV_DIR | $PWD | Direktori untuk mulai mencari file .ruby-version . |
rbenv init
adalah perintah pembantu untuk mem-bootstrap rbenv ke dalam shell. Pembantu ini adalah bagian dari petunjuk instalasi yang disarankan, tetapi opsional, karena pengguna tingkat lanjut dapat mengatur tugas-tugas berikut secara manual. Inilah yang dilakukan perintah ketika outputnya eval
oleh shell saat startup:
Menambahkan rbenv
yang dapat dieksekusi ke PATH jika perlu.
Tambahkan direktori ~/.rbenv/shims
ke PATH. Ini pada dasarnya adalah satu-satunya persyaratan agar rbenv berfungsi dengan baik.
Menginstal penyelesaian bash shell untuk perintah rbenv.
Meregenerasi rbenv shim. Jika langkah ini memperlambat startup shell Anda, Anda dapat memanggil rbenv init -
dengan flag --no-rehash
.
Menginstal operator "sh". Bit ini juga opsional, tetapi memungkinkan rbenv dan plugin untuk mengubah variabel di shell Anda saat ini, sehingga memungkinkan perintah seperti rbenv shell
.
Anda dapat menjalankan rbenv init -
untuk memeriksa sendiri skrip yang dihasilkan.
Kesederhanaan rbenv memudahkan untuk menonaktifkannya sementara, atau menghapus instalasinya dari sistem.
Untuk menonaktifkan rbenv yang mengelola versi Ruby Anda, cukup beri komentar atau hapus baris rbenv init
dari konfigurasi startup shell Anda. Ini akan menghapus direktori rbenv shims dari PATH, dan pemanggilan di masa mendatang seperti ruby
akan mengeksekusi versi sistem Ruby, melewati rbenv sepenuhnya.
Meskipun dinonaktifkan, rbenv
akan tetap dapat diakses di baris perintah, namun aplikasi Ruby Anda tidak akan terpengaruh oleh peralihan versi.
Untuk menghapus instalan rbenv sepenuhnya, lakukan langkah (1) lalu hapus direktori root rbenv. Ini akan menghapus semua versi Ruby yang diinstal di bawah `rbenv root`/versions/
:
rm -rf "$(rbenv root)"
Jika Anda telah menginstal rbenv menggunakan manajer paket, sebagai langkah terakhir lakukan penghapusan paket rbenv:
brew uninstall rbenv
sudo apt purge rbenv
sudo pacman -R rbenv
Tes dijalankan menggunakan Bats:
$ bats test
$ bats test/<file>.bats
Silakan mengirimkan permintaan penarikan dan melaporkan bug pada pelacak masalah.