Почему изменение каталогов после установки RVM занимает много времени
Вопрос
Я только что установил РВМ и, похоже, команда cd занимает лишнюю пару секунд, почему это происходит?Есть ли какой-нибудь способ это исправить?
Решение
Эта проблема была решена в версии 0.1.39 и более поздних версиях RVM.Поведение теперь создает файл .rvmrc только при первом входе в дерево каталогов проектов.Последующие компакт-диски в этом дереве каталогов не являются исходным кодом файла .rvmrc.Если вы обнаружите, что постоянно входите в дерево каталогов ваших проектов и выходите из него, я бы рекомендовал использовать несколько терминалов :)
Одним из побочных преимуществ этого является то, что теперь вы можете выполнять более трудоемкие действия, такие как обеспечение актуальности всех ваших драгоценных камней в вашем наборе драгоценных камней, в .rvmrc, чтобы поддерживать ваш проект в актуальном состоянии без затрат времени при каждом запуске компакт-диска.
Чтобы получить последнюю версию rvm, запустите:обновление rvm - глава
Как только это будет установлено, все новые оболочки будут иметь улучшенное поведение - для существующих оболочек, которые вы не хотите закрывать, вы можете запустить 'rvm reload', чтобы обеспечить новое поведение.
Приветствия, -Деннис
Другие советы
Это происходит потому, что он отправляет файл, который перехватывает cd
операция.
prompt:$ cat ~/.rvm/scripts/cd
#!/usr/bin/env bash
# Source a .rvmrc file in a directory after changing to it, if it exists.
cd() {
builtin cd "$@"
if [[ "$rvm_project_rvmrc" != 0 ]] ; then
local cwd ; cwd=$(pwd)
while : ; do
if [[ -z "$cwd" ]] || [[ "$HOME" = "$cwd" ]] || [[ "/" = "$cwd" ]] ; then
if [[ "$rvm_project_rvmrc_default" != 0 ]] ; then
rvm default 1>/dev/null 2>&1
fi
break
else
if [[ -f "$cwd/.rvmrc" ]] ; then
source "$cwd/.rvmrc"
break
else
cwd=$(dirname "$cwd")
fi
fi
done
fi
}
Этот файл проверяет наличие файла .rvmrc в каталоге, в который вы переходите, и настраивает среду.Таким образом, вы можете запустить dir A под управлением ruby 1.8, а dir B -под управлением ruby 1.9.
Если вы рады избавиться от этого удобства, вы можете закомментировать этот файл и покончить с медленным переключением каталогов.
В качестве альтернативы вы могли бы добавить патч, который выполняет некоторое кэширование, чтобы это было быстро.