Можно ли пропустить подтверждение .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

Я нашел эти заметки в блоге Уэйнса, http://wayneeseguin.beginrescueend.com/

В основном, добавив:

export rvm_trust_rvmrcs_flag=1

чтобы ~/.rvmrcобойдет чеку.

Существует также rvm rvmrc <command> [dir]для того, чтобы вручную доверять / не доверять .rvmrcфайлам.

Искал то же самое, поэтому думал, что выложу решение.

НТН

С Уважением,

Фил


Как раз то, что мне было нужно!
B01

3

В моем развертывании я не использую .rvmrc. Я использую только rvm use 1.9.2 --defaultтак, как я; убедитесь, что мой ruby ​​по умолчанию 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 требует многократного выполнения

например для установки обоих ruby ​​(без изменения оригинальной установки 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.