Чи можливо пропустити підтвердження .rvmrc?


16

Ми використовуємо RVM для управління установками та середовищами Ruby.

Зазвичай ми використовуємо цей .rvmrcсценарій:

#!/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

Цей сценарій змушує RVM створювати нове дорогоцінне середовище для кожного нашого проекту / версії.

Але кожен раз, коли ми розгортали нову версію, RVM просить підтвердити новий .rvmrc файл.

Коли ми cdвперше потрапляємо до цього каталогу, ми отримуємо щось на зразок:

  ===================================================== =============
  = ВВАГА: =
  ===================================================== =============
  = RVM зіткнувся з ще не довіреним .rvmrc файлом у файлі =
  = поточний робочий каталог, який може містити неприємний код. =
  = =
  = Вивчіть вміст цього файлу, щоб переконатися, що вміст =
  = гарні, перш ніж довіряти цьому! =
  = =
  = Натисніть "q", щоб вийти з пристрою зчитування, коли читати файл =
  ===================================================== =============

  (натисніть клавішу Enter, щоб продовжити, коли буде готово)

Це не так вже й погано для середовищ розробки, але при автоматичному розгортанні потрібно вручну підтвердити кожну нову версію на кожному сервері.

Чи можна пропустити це підтвердження?

Відповіді:


24

Я знайшов ці замітки в блозі Waynes, http://wayneeseguin.beginrescueend.com/

В основному, додаючи:

export rvm_trust_rvmrcs_flag=1

щоб ~/.rvmrcобійти чек.

Існує також rvm rvmrc <command> [dir]для довіри / недовіри .rvmrcфайлів вручну .

Шукаю те саме, що я подумав, що я опублікував рішення.

HTH

З повагою,

Філ


Тільки те, що мені було потрібно!
b01

3

У моєму розгортанні я не використовую .rvmrc. Я використовую лише rvm use 1.9.2 --defaultте, що я; впевнений, що мій рубін за замовчуванням - 1.9.2, а не інший, якщо я не в цьому конкретному каталозі.

Отримавши параметр rvm_project_rvmrc=0у своєму rvmrc, ви впевнені, що інших рубінів не використовується.


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

$ rvm --version

rvm 1.16.20 (version) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [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

Виправлення:

$ sed -i 's/ | less//' .rvm/scripts/cli .rvm/bin/rvm-installer .rvm/src/rvm/scripts/cli .rvm/src/rvm/binscripts/rvm-installer

Я переглядаю цю «пізню відповідь» і думаю, що добре, що ви відповісте на це запитання. Єдине поліпшення, про яке я міг подумати, - це насправді пояснити зміни, які буде робити команда sed.
eckes

0

Альтернативний, але несподіваний вихід 0 вимагає багаторазового виконання

наприклад, для встановлення обох рубінів (без зміни оригінальної установки rvm) буде повторне виконання

#!/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
)

Що ви мали на увазі під своєю відповіддю? Що робить цей код? @PhilT вже відповів на це питання.
В’ячеслав Молоков
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.