Kebetulan lagi memulai belajar Ruby on Rails (RoR) yakni suatu framework untuk membangun aplikasi web dengan bahasa pemrograman ruby
. Dan kebetulan pula, RoR sudah terpasang lama, dikomputer saya yang menggunakan Arch Linux.
Agar tidak lupa, berikut ini cara saya memasangan Ruby on Rails di Arch Linux based, artinya ini dapat pula digunakan pada distro turunan Arch Linux.
Pasang Ruby dan NodeJS
Sebelum memasang pertama-tama, pastikan kalian sudah memasang ruby
dan nodejs
jika belum, lakukan perintah berikut:
$ sudo pacman -Sy ruby nodejs
Pasang RoR dari Gem
Setelah ruby
terpasang kita tinggal pasang RoR menggunakan paket manager milikruby
yakni dengan gem
. Berikut perintahnya:
$ gem install rails
Konfigurasi Gem
Dikarenakan RoR dipasang dari paket manager bukan milik Arch Linux, maka kita tidak bisa langsung memanggilnya. Kita perlu mengeset $PATH
yang berisi binary
hasil dari gem
agar dapat dieksekusi dari Terminal.
$ GEM_PATH=$(gem environment | grep "USER INSTALLATION DIRECTORY" | awk '{print $5}')
$ echo "export PATH=$PATH:$GEM_PATH/bin" >> ~/.bashrc && source ~/.bashrc
Penjelasan Perintah
Btw, perintah GEM_PATH bla bla bla di atas maksudnya apa? Baiklah akan saya jelaskan sedikit. Jadi, perintah tersebut berfungsi untuk mencari path
dari hasil gem
dengan mudah. Singkatnya, ketika kalian ketik gem environment
maka akan menghasilkan keluaran seperti ini:
RubyGems Environment:
- RUBYGEMS VERSION: 3.0.3
- RUBY VERSION: 2.6.3 (2019-04-16 patchlevel 62) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/2.6.0
- USER INSTALLATION DIRECTORY: /home/ali/.gem/ruby/2.6.0
- RUBY EXECUTABLE: /usr/bin/ruby
- GIT EXECUTABLE: /usr/bin/git
- EXECUTABLE DIRECTORY: /usr/bin
- SPEC CACHE DIRECTORY: /home/ali/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/lib/ruby/gems/2.6.0
- /home/ali/.gem/ruby/2.6.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--user-install"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/bin
- /usr/local/sbin
- /usr/bin
- /usr/lib/jvm/default/bin
- /usr/bin/site_perl
- /usr/bin/vendor_perl
- /usr/bin/core_perl
- /home/ali/.gem/ruby/2.6.0/bin
Nah, untuk mempermudah langsung saja kita grep
. Jadi gem environment | grep "USER INSTALLATION DIRECTORY"
hasilnya akan seperti ini:
- USER INSTALLATION DIRECTORY: /home/ali/.gem/ruby/2.6.0
Jika dilihat dari hasil di kita bisa potong agar menghasilkan keluaran /home/ali/.gem/ruby/2.6.0
dengan awk
yang berada dalam posisi ke-5 jadi perintahnya seperti ini gem environment | grep "USER INSTALLATION DIRECTORY" | awk '{print $5}'
.Kemudian baru deh, saya masukan ke dalam variabel GEM_PATH=$(bla bla bla)
. Dan yang terakhir ditulis diberkas .bashrc
agar bisa langsung dipergunakan.
Eksekusi RoR
Rails sudah terpasang dan sudah dapat digunakan, kita tinggal jalankan dengan membuat projek baru.
$ rails new NAMA_ROR_KALIAN
Pada saat proses pemasangan akan ada pertanyaan memasukan kata sandi seperti berikut:
Fetching source index from https://rubygems.org/
Your user account isn't allowed to install to the system Rubygems.
You can cancel this installation and run:
bundle install --path vendor/bundle
to install the gems into ./vendor/bundle/, or you can enter your password
and install the bundled gems to Rubygems using sudo.
Password:
Abaikan saja, Cukup tekan ENTER
.
Ingat!
Jangan pernah menggunakan
sudo
untuk paket manager yang bukan milik distro. Karena dikhawatirkan ada skrip jahat yang tidak kita ketahui dari luar, dan bukan tanggung jawab distro.
Yang hanya perlu kita lakukan adalah seperti yang tertulis dari_ warning message_ di atas. Yakni menjalankan perintah bundle install --path vendor/bundle
. Jadi perintah lengkapnya seperti berikut:
$ cd nama_ror_kamu
$ bundle install --path vendor/bundle
Selesai, jalankan aplikasi RoR kalian dengan perintah berikut:
$ rails server
Langkah selanjutnya? Kita sama-sama belajar RoR, dan insya Allah akan saya tulis pula dasar-dasarnya. Semoga bermanfaat ya kawan-kawan sekalian :D.
Komentar