команда cd в сценарии оболочки загружает rvmrc внутри директории назначения? - PullRequest
3 голосов
/ 30 июня 2011

когда у вас есть что-то вроде ..

, заданное внутри projectx файл .rvmrc, указывающий ruby ​​1.9.2 и имеющий две рубины в моей системе (ree-1.8.7 и ruby1.9.2)

#!/bin/bash

cd applications/projectx
which ruby
ruby -v

последние две строки выводят ree-1.8.7 и его путь, который я не собирался использовать.

Ответы [ 3 ]

8 голосов
/ 30 июня 2011

Да


Rvm определяет обертку вокруг cd, которая выглядит следующим образом:

cd () 
{ 
    builtin cd "$@";
    local result=$?;
    __rvm_project_rvmrc;
    __rvm_after_cd;
    return $result
}

Трудно сказать, почему ваш .rvmrc не работает.Rvm поддерживает поддерживаемые проектом .rvmrc файлы, но вы не опубликовали свои.

3 голосов
/ 30 июня 2011

Вам необходимо установить rvm внутри вашего скрипта, когда вы запускаете скрипт, он не загружает ваш .bashrc.Просто добавьте строку типа

[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm

в начало вашего скрипта.

1 голос
/ 18 августа 2011

Если вы используете RVM 1.7.0 или более позднюю версию, вам нужно включить специфичные для проекта файлы .rvmrc, добавив эту строку в ~ / .rvmrc (или system .rvmrc):

rvm_project_rvmrc = 1

См .: https://rvm.io/workflow/rvmrc/

...