Bagaimana cara menggunakan tentukan versi ruby ​​untuk skrip shell dengan rbenv?


8

Saya akan menulis beberapa naskah pendek dalam ruby. Dan saya ingin menentukan versi ruby ​​dengan shebang atau dengan cara lain.

Saya akan menggunakan skrip di banyak lingkungan. Saya menggunakan rbenv di evironments, tetapi tidak yakin versi ruby ​​mana yang diinstal.

Script harus gagal jika versi ruby ​​yang ditentukan tidak diinstal.

Bagaimana saya bisa melakukannya? Apakah ada cara baik yang harus saya ikuti?

Jawaban:


7

Menurut dokumen resmi , sepertinya Anda hanya perlu awalan skrip Anda seperti ini:

#!/usr/bin/env ruby

Dan kemudian lakukan salah satu hal berikut ini untuk mengetahui rbenvversi Ruby mana yang akan digunakan:

kutipan: https://github.com/sstephenson/rbenv

Memilih Versi Ruby

Saat Anda menjalankan shim, rbenvtentukan versi Ruby mana yang akan digunakan dengan membacanya dari sumber berikut, dalam urutan ini:

  1. The RBENV_VERSIONvariabel lingkungan, jika ditentukan. Anda dapat menggunakan rbenvperintah shell untuk mengatur variabel lingkungan ini di sesi shell Anda saat ini.

  2. File pertama .ruby-versionditemukan dengan mencari direktori skrip yang Anda jalankan dan masing-masing direktori induknya hingga mencapai akar sistem file Anda.

  3. File pertama .ruby-versionditemukan dengan mencari direktori kerja saat ini dan masing-masing direktori induknya hingga mencapai akar sistem file Anda. Anda dapat memodifikasi .ruby-versionfile di direktori kerja saat ini dengan rbenvperintah lokal.

  4. File global ~/.rbenv/version. Anda dapat memodifikasi file ini menggunakan rbenvperintah global. Jika file versi global tidak ada, rbenvanggap Anda ingin menggunakan Ruby "sistem" —yaitu versi apa pun yang akan dijalankan jika rbenvtidak ada di jalur Anda.

Anda kemudian dapat menggunakan perintah ini untuk membuat .ruby-versionfile di direktori bersama dengan skrip Ruby.

$ rbenv local 1.9.3-p327

Sudah usang sekarang; Per dokumen ditentukan; Sekarang, ketika Anda menjalankan skrip atau binstub dalam aplikasi dengan file versi .ruby, rbenv akan secara otomatis menggunakan versi Ruby yang ditentukan aplikasi, terlepas dari apa direktori itu dijalankan.
AnneTheAgile
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.