GNU/Linux >> Belajar Linux >  >> Linux

Apa itu RVM (Ruby enVironment Manager atau Ruby Version Manager)?

Pemirsa Target:

Artikel ini dimaksudkan untuk berguna bagi siapa saja yang memiliki kebutuhan untuk menerapkan–atau mengelola–beberapa instalasi Ruby pada satu mesin. Pembaca harus memiliki pemahaman dasar tentang cara kerja Ruby dan permata Ruby dalam sistem operasi.

Pengantar

Gambar:Logo Ruby oleh Yukihiro Matsumoto, Tim Identitas Visual Ruby / dilisensikan di bawah CC BY-SA 2.5

Mengelola beberapa lingkungan Ruby bisa menjadi tantangan. Ruby adalah bahasa sumber terbuka, sehingga rilis baru dapat sering dilakukan, dan rilis tersebut dapat menyebabkan perubahan fungsionalitas yang drastis. Pasangkan potensi ini dengan penggunaan Permata pihak ketiga yang mungkin bergantung pada fungsionalitas dalam versi Ruby tertentu, dan aplikasi Anda dapat dengan cepat menemukan dirinya berjuang untuk memenuhi semua dependensi yang diperlukan hanya untuk dijalankan. RVM (diperluas secara bergantian sebagai Ruby enVironment Manager atau Ruby Version Manager) menangani masalah ini secara langsung dengan menyediakan seperangkat alat baris perintah yang memungkinkan Anda untuk secara aktif mengontrol tidak hanya versi Ruby yang digunakan aplikasi Anda tetapi juga kumpulan Permata dan versi itu menggunakan. Di bawah ini kita akan membahas apa itu RVM, menyentuh setiap manfaat yang ditawarkannya.


.

Mengelola Beberapa Lingkungan Ruby

RVM memungkinkan Anda untuk menginstal beberapa versi bahasa pemrograman Ruby pada satu mesin. Penginstalan asli bahasa pemrograman Ruby akan menginstal binari bahasa ke dalam bin umum direktori pada sistem operasi; sehingga setiap perubahan pada binari yang diinstal tersebut akan memengaruhi semua aplikasi Ruby yang dihosting di mesin. Bahkan peningkatan versi yang relatif kecil–seperti dari 2.1.4 ke 2.2.1–dapat memperkenalkan perubahan pada bahasa yang merusak perilaku bahasa yang ada.
.
RVM memungkinkan Anda untuk mengisolasi biner bahasa ini menjadi dikelola secara terpisah lingkungan, yang dapat digunakan sesuka hati di sistem Anda. Ini menyelesaikan isolasi ini dengan mengenkapsulasi setiap instalasi ke dalam kumpulan direktori dan dependensi yang terpisah dan menyediakan alat baris perintah yang mudah digunakan untuk beralih antar versi dengan cepat. RVM menangani pertukaran semua jalur eksekusi yang relevan, variabel lingkungan, dan pustaka pihak ketiga yang diinstal, memungkinkan pengembang untuk fokus pada pengembangan aplikasi mereka alih-alih mengelola dependensinya.
.

Mengapa RVM Penting?

Untuk satu aplikasi kecil, RVM mungkin tampak berlebihan. Namun, begitu basis kode mencapai tingkat kerumitan tertentu, mungkin sulit untuk melacak dengan tepat dependensi mana yang diandalkan aplikasi. Lebih jauh lagi, saat aplikasi tumbuh dan memanfaatkan berbagai Permata Ruby, pustaka pihak ketiga ini dapat memperkenalkan dependensi lebih lanjut, membuat versi sederhana mengubah peristiwa kompleks yang penuh dengan bahaya. Misalnya, rilis versi 2.1.0 memperkenalkan perubahan besar pada parser REXML yang digunakan oleh banyak Permata untuk menyediakan fungsionalitas SOAP. Pertimbangan ini juga penting untuk server web yang dihosting VPS, yang dapat meng-host beberapa aplikasi Ruby sekaligus (seperti server pekerjaan tertunda berbasis Resque, server web yang dibangun di atas Rails, dan konsol admin berbasis Sinatra). Mendapatkan beberapa aplikasi berbeda dengan beberapa set dependensi berbeda yang berperilaku baik bisa menjadi pekerjaan penuh waktu dengan sendirinya. Dengan mengenkapsulasi versi bahasa Ruby yang berbeda ke dalam lingkungan yang terpisah, RVM memungkinkan pengembang untuk menguji versi baru, menerapkan aplikasi yang ada tanpa khawatir akan merusak perubahan, dan memastikan bahwa pengelolaan infrastruktur aplikasi membutuhkan waktu sesingkat mungkin.
.

Menyelesaikan Konflik Ketergantungan

Manfaat paling nyata yang diperoleh melalui penggunaan RVM adalah manajemen ketergantungan. Dengan mengenkapsulasi instalasi bahasa pemrograman Ruby ke dalam lingkungan berbasis baris perintah yang terpisah, Anda dapat lebih mudah mengontrol dependensi versi. RVM, ditambah dengan kerangka kerja manajemen Permata seperti Bundler, dapat membuat konflik ketergantungan berbasis bahasa menjadi sesuatu dari masa lalu-Anda hanya perlu memverifikasi bahwa ada versi Permata yang sedang Anda kerjakan yang kompatibel dengan instalasi Anda saat ini. Selanjutnya, menggunakan RVM memungkinkan Anda untuk yakin bahwa hanya Permata yang Anda butuhkan yang akan diinstal. Setiap lingkungan Ruby yang dikelola oleh RVM memiliki kumpulan Permatanya sendiri, dan dengan demikian tidak ada kontaminasi silang antar aplikasi yang mungkin menggunakan Permata yang memengaruhi lingkungan eksekusi Ruby itu sendiri.
.

Menyederhanakan Penerapan

Selain mengurangi perubahan yang melanggar dan menyelesaikan konflik ketergantungan, RVM dapat memudahkan proses penerapan untuk aplikasi Ruby. RVM menawarkan fitur seperti “Named Gemsets”, yang memungkinkan Anda dengan cepat dan mudah menentukan dependensi untuk aplikasi Ruby Anda. Selain itu, Ruby menggunakan cache bersama dari versi permata, yang mengurangi keseluruhan ruang disk yang digunakan oleh penerapan Ruby Anda. Terakhir, RVM bekerja untuk memastikan bahwa semua dependensi yang ditentukan sepenuhnya terkandung dalam ruang pengguna, mengurangi risiko keamanan dan menghilangkan kebutuhan untuk menjalankan aplikasi Anda sebagai pengguna root.
.

Kesimpulan

Artikel di atas hanya menggores permukaan dari fungsionalitas yang ditawarkan oleh RVM. Dengan menggunakan RVM untuk mengelola lingkungan aplikasi Anda, Anda dapat meredakan masalah penerapan, mengurangi masalah pemutakhiran, dan membuat serangkaian dependensi yang andal untuk aplikasi Ruby Anda. Digabungkan dengan alat seperti Bundler, RVM membuat penginstalan, menjalankan, dan mengelola aplikasi Ruby menjadi proses yang sederhana dan efisien.

Atlantic.Net

Kami menawarkan banyak aplikasi penginstalan yang dihosting VPS sekali klik yang juga menawarkan proses yang sederhana dan efisien. Kami memiliki banyak aplikasi populer seperti WordPress, cPanel Hosting, dan Docker Hosting.
.


Linux
  1. Apa manajer paket Linux favorit Anda?

  2. Selamat ulang tahun GNOME:Apa versi favorit Anda?

  3. Apa window manager Linux favorit Anda?

  1. Apa itu manajer pemasaran teknis?

  2. Instal Ruby 1.9.3 (atau Beberapa Versi Ruby) di CentOS, RedHat menggunakan RVM

  3. Rubygems-update membutuhkan versi Ruby =2.3.0 [Fix]

  1. Versi Ubuntu Apa yang Cocok Di CD-r?

  2. Apa itu manajer LVE? Mengapa itu berguna?

  3. Cara Menginstal Ruby di Ubuntu 18.04