Rvm: RVM 1.29.8 melempar kesalahan "_system_name: variabel tidak terikat" pada AWS di bawah Packer

Dibuat pada 14 Mei 2019  ·  3Komentar  ·  Sumber: rvm/rvm

Keterangan

RVM tiba-tiba mulai memunculkan kesalahan "variabel tidak terikat" saat mencoba menginstal dan menggunakan Ruby 2.3.4 di Amazon Linux. Kami pertama kali melihat masalah pada 8 Mei 2019 dan saya yakin itu mungkin terkait dengan rilis RVM terbaru. Ruby menginstal dengan benar tetapi ketika kami mencoba untuk "menggunakannya" ( rvm --default use 2.3.4 ) kami mendapatkan kesalahan ini.

Langkah-langkah untuk mereproduksi

Kami menggunakan Packer untuk membangun image AWS dengan RVM dan Ruby 2.3.4 terinstal. Proses kami berjalan dari pekerjaan Jenkins dan telah bekerja dengan baik setiap hari Minggu selama beberapa tahun terakhir. Selama membangun lingkungan Jenkins baru minggu lalu, kami menemukan bahwa proses Packer gagal dengan kesalahan _system_name: unbound variable dan kami pikir itu adalah kesalahan yang kami lakukan. Menyelidiki lebih jauh, kami menemukan bahwa pekerjaan hari Minggu terakhir kami telah gagal dengan cara yang sama.

  1. Konfigurasikan Packer di AWS
  2. Instal RVM terbaru (pada Packer di AWS)
  3. Instal Ruby 2.3.4 dengan openSSL ( yes | rvm install ruby-2.3.4 -- --with-openssl-dir=/etc/pki/tls
  4. Gunakan Ruby 2.3.4 yang baru diinstal
  5. Dapatkan kesalahan variabel tidak terikat

Perilaku yang diharapkan

Kami berharap untuk melihat Ruby menginstal dan proses Packer kami berlanjut seperti biasa.

Perilaku sebenarnya

Perilaku sebenarnya adalah kesalahan yang dapat kami tiru menggunakan 2 akun AWS dan instans Jenkins yang berbeda.

https://Gist.github.com/rnhurt/0363630689f2d2d3a94fb8903c2c6bc8
Berikut adalah Gist yang menunjukkan skrip bash yang kita jalankan di dalam Packer dan output dari Jenkins. Bendera Jenkins DEBUG dihidupkan dan menampilkan tumpukan tumpukan lengkap dari RVM.

Komentar yang paling membantu

Saya menemukan bahwa skrip saya memiliki set -u , sehingga akan gagal mengeksekusi skrip rvm.
jika Anda benar-benar ingin menggunakan set -u , Anda dapat membungkus skrip Anda seperti ini:

YOUR OTHER SCRIPT ...

set +u
YOUR SCRIPT RUN rvm
set -u

YOUR OTHER SCRIPT ...

Semua 3 komentar

Mengembalikan ke versi RVM sebelumnya (v1.29.7) tampaknya menyelesaikan masalah.

kembalikan ke v1.29.7 masih bermasalah

Saya menemukan bahwa skrip saya memiliki set -u , sehingga akan gagal mengeksekusi skrip rvm.
jika Anda benar-benar ingin menggunakan set -u , Anda dapat membungkus skrip Anda seperti ini:

YOUR OTHER SCRIPT ...

set +u
YOUR SCRIPT RUN rvm
set -u

YOUR OTHER SCRIPT ...
Apakah halaman ini membantu?
0 / 5 - 0 peringkat