Мы используем 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
в этот каталог в первый раз мы получаем что-то вроде:
=============================================================== = NOTICE: = =============================================================== = RVM has encountered a not yet trusted .rvmrc file in the = = current working directory which may contain nasty code. = = = = Examine the contents of this file to be sure the contents = = are good before trusting it! = = = = Press 'q' to exit the reader when finished reading the file = =============================================================== (press enter to continue when ready)
Это не так плохо для сред разработки, но при автоматическом развертывании требуется вручную подтверждать каждую новую версию на каждом сервере.
Можно ли пропустить это подтверждение?
Я нашел эти заметки в блоге Уэйнса, http://wayneeseguin.beginrescueend.com/
В основном, добавляя:
export rvm_trust_rvmrcs_flag=1
к ~/.rvmrc
обойдет проверку.
А также есть rvm rvmrc <command> [dir]
для ручного доверия / недоверия .rvmrc
файлы.
Ищу то же самое, поэтому решил опубликовать решение.
HTH
С Уважением,
Фил
В моем развертывании я не использую .rvmrc. Я использую только rvm use 1.9.2 --default
как это я; уверен, что мой рубин по умолчанию - 1.9.2, а не другой, если я не в этом конкретном каталоге.
После с опцией rvm_project_rvmrc=0
убедитесь, что в вашем rvmrc не используются другие рубины.
$ 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
Альтернативный, но неожиданный выход 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
)