Apakah mungkin untuk melewatkan konfirmasi .rvmrc?

16

Kami menggunakan RVM untuk mengelola instalasi dan lingkungan Ruby.

Biasanya kami menggunakan .rvmrcskrip ini :

#!/bin/bash
if [ ! -e '.version' ]; then
  VERSION=`pwd | sed 's/[a-z/-]//g'`
  echo $VERSION > .version
  rvm gemset create $VERSION
fi
VERSION=`cat .version`
rvm use 1.9.2@$VERSION

Skrip ini memaksa RVM untuk membuat lingkungan permata baru untuk setiap proyek / versi kami.

Tetapi setiap kali kami menggunakan versi baru RVM meminta kami untuk mengkonfirmasi file baru .rvmrc .

Ketika kita cdke direktori ini pertama kali, kita mendapatkan sesuatu seperti:

  ================================================== =============
  = PEMBERITAHUAN: =
  ================================================== =============
  = RVM telah menemukan file .rvmrc yang belum tepercaya di =
  = direktori kerja saat ini yang mungkin mengandung kode jahat. =
  = =
  = Periksa isi file ini untuk memastikan isinya =
  = baik sebelum mempercayainya! =
  = =
  = Tekan 'q' untuk keluar dari pembaca ketika selesai membaca file =
  ================================================== =============

  (tekan enter untuk melanjutkan saat siap)

Ini tidak seburuk untuk lingkungan pengembangan, tetapi dengan penerapan otomatis diperlukan untuk mengkonfirmasi secara manual setiap versi baru di setiap server.

Apakah mungkin untuk melewati konfirmasi ini?

Viacheslav Molokov
sumber

Jawaban:

24

Saya menemukan catatan ini di blog Waynes, http://wayneeseguin.beginrescueend.com/

Pada dasarnya, menambahkan:

export rvm_trust_rvmrcs_flag=1

untuk ~/.rvmrcakan melewati cek.

Ada juga rvm rvmrc <command> [dir]untuk mempercayai / tidak mempercayai .rvmrcfile secara manual .

Mencari hal yang sama jadi saya pikir saya akan memposting solusinya.

HTH

Salam,

Phil

PhilT
sumber
Apa yang saya butuhkan!
B01
3

Dalam penerapan saya, saya tidak menggunakan .rvmrc. Saya hanya menggunakan rvm use 1.9.2 --defaultseperti itu saya a; yakin bahwa ruby ​​default saya adalah 1.9.2 dan bukan yang lain jika saya tidak berada di direktori khusus ini.

Setelah dengan opsi rvm_project_rvmrc=0di rvmrc Anda, Anda yakin tidak ada ruby ​​lain yang digunakan.

shingara
sumber
0
$ curl -L https://get.rvm.io | bash -s -- --version 1.16.20

$ rvm --version

rvm 1.16.20 (version) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]

$ grep less .rvm/scripts/cli .rvm/bin/rvm-installer .rvm/src/rvm/scripts/cli .rvm/src/rvm/binscripts/rvm-installer
.rvm/scripts/cli:            } | less
.rvm/bin/rvm-installer:    } | less
.rvm/src/rvm/scripts/cli:            } | less
.rvm/src/rvm/binscripts/rvm-installer:    } | less

Cara mengatasinya:

$ sed -i 's/ | less//' .rvm/scripts/cli .rvm/bin/rvm-installer .rvm/src/rvm/scripts/cli .rvm/src/rvm/binscripts/rvm-installer
pemenang
sumber
Saya meninjau "jawaban yang terlambat" ini dan saya pikir Anda menjawab pertanyaan ini baik. Satu-satunya perbaikan yang dapat saya pikirkan adalah untuk benar-benar menjelaskan perubahan yang akan dilakukan oleh perintah sed.
eckes
0

Alternatif tetapi keluar yang tidak terduga 0 membutuhkan beberapa eksekusi

misalnya untuk menginstal kedua ruby ​​(tanpa mengubah instalasi rvm asli) akan mengulangi eksekusi

#!/bin/bash
rvm list | grep ree-1.8.7-2011.12 ||
(  
    rvm install ree-1.8.7-2011.12 &  
    expect "^Press 'q' to continue."  
    send "q\n"
    exp_continue
)

rvm list | grep ruby-1.9.3-p194 ||
(
    rvm install ruby-1.9.3-p194 &
    expect "^Press 'q' to continue."
    send "q\n"
    exp_continue
)
pemenang
sumber
Apa yang Anda maksud dengan jawaban Anda? Apa yang dilakukan kode ini? @ PhilT sudah menjawab pertanyaan ini.
Viacheslav Molokov