Почему изменение каталогов после установки RVM занимает много времени

StackOverflow https://stackoverflow.com/questions/1983182

  •  22-09-2019
  •  | 
  •  

Вопрос

Я только что установил РВМ и, похоже, команда 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.

Если вы рады избавиться от этого удобства, вы можете закомментировать этот файл и покончить с медленным переключением каталогов.

В качестве альтернативы вы могли бы добавить патч, который выполняет некоторое кэширование, чтобы это было быстро.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top