2015-12-06 3 views
1

Я думаю, что у меня есть немного беспорядка, и мне бы хотелось, чтобы некоторые указатели его убрали. Я установил РВМ и Руби 2.2.3 (это единственная версия):Как очистить или удалить драгоценные камни

rvm list 
rvm rubies 
=* ruby-2.2.3 [ x86_64 ] 

# => - current 
# =* - current && default 
# * - default 

У меня только основные gemsets:

rvm gemset list 

gemsets for ruby-2.2.3 (found in /Users/Andrew/.rvm/gems/ruby-2.2.3) 
=> (default) 
    global 

Если я смотрю на отрезала структуру каталогов у меня есть :

~/.rvm/gems/ruby-2.2.3 
~/.rvm/gems/[email protected] 

Если я бегу гем окр, мои пути являются:

[..snip..] 
    - GEM PATHS: 
    - /Users/Andrew/.rvm/gems/ruby-2.2.3 
    - /Users/Andrew/.rvm/gems/[email protected] 
[..snip..] 
    - SHELL PATH: 
    - /Users/Andrew/.rvm/gems/ruby-2.2.3/bin 
    - /Users/Andrew/.rvm/gems/[email protected]/bin 
[..snip..] 

Насколько я знаю, драгоценные камни в рубине 2.2.3 актуальны, но в [email protected] нет.

В IntelliJ IDEA у меня есть ссылки на SDK для ruby-2.2.3 и ruby-2.2.3 [Global]. В каталоге Global gems он перечисляет драгоценные камни для ruby-2.2.3 [global], и некоторые из них могут отличаться от gems для ruby-2.2.3.

Я довольно много исследовал с помощью google, но я все еще запутался в том, как получить драгоценные камни в [email protected], и мне нужно. Я не могу рассказать о взаимосвязи между этими драгоценными камнями и гемзетами, для которых по умолчанию пусто, а в глобальном - около 4 драгоценных камней.

Я думаю, что смогу сделать драгоценный камень чистым, чтобы избавиться от старых версий драгоценных камней (но я читал в нескольких местах, которые опасны), но это не улучшит [email protected] Я также обеспокоен тем, что это может испортить мою среду IntelliJ Idea, в которой я также изо всех сил пытаюсь раздобыть голову!

Что я хотел бы сделать это:

  • Понимание взаимосвязи между камнями в пути рубин-2.2.3, [email protected]
  • Понимание взаимосвязи между эти драгоценные камни и gemsets по умолчанию и глобальные (если есть). Я понимаю, что для каждого проекта должны создаваться gemsets с теми драгоценными камнями, которые определены в
    Доступен для всех. Тогда я путаюсь между ними и
    Bundler!
  • Как модернизировать драгоценные камни в пути [email protected]
  • Как очистить и избавиться от старых драгоценных камней безопасно. В частности, без завинчивания IntelliJ Idea

Я не нашел легкого руководства для всех без исключения. Возможно, самая простая задача - запустить rvm и начать снова? Я пытаюсь научиться рубину, рубину на рельсах, rspec.

+0

'bundle clean' с опцией' --force'. –

+1

rvm gemset use global; обновление жемчужины; очистка драгоценных камней. Global - это драгоценные камни, доступные во всех гемзетах на рубиновую версию. По умолчанию - это драгоценные камни, которые вы хотите установить в каждой рубиновой версии. – Doon

+0

, поэтому, если я использую rvm gemset use global ... это будет означать, что обновление будет применяться к драгоценным камням в ~/.rvm/gems/[email protected]? Как же мне вернуться - rvm gemset default? –

ответ

0

Rvm имеет global gemset. Этот гемсет позволяет устанавливать драгоценные камни, которые должны быть доступны для всех созданных вами gemset для данной версии рубина, который вы установили в rvm.

например, у вас есть ruby-2.2.3, и у вас есть следующие создаваемые гемзеты. project1, project2.Оба проекта используют bundler так в противоположность наличию 2-х экземплярах, вы можете установить его в @global gemset (см https://rvm.io/gemsets/global/)

rvm @global do gem install bundler

обновить драгоценные камни, вы можете сделать

rvm @global do gem update

или чтобы посмотреть, какие драгоценные камни есть

rvm @global do gem list

теперь, если вы создадите gemset project3, комплектный комплект будет уже установлен для вас.

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

Если вы хотите, чтобы во всех рубинах были установлены определенные драгоценные камни, вы можете посмотреть файлы инициализации. Эти файлы находятся в ~/.rvm и состоят из global.gems и default.gems. (см. https://rvm.io/gemsets/initial).

Драгоценные камни в ~/.rvm/global.gems будут установлены при установке нового рубина и будут использованы для заполнения геммета global для этого рубина. ~/.rvm/default.gems - это то же самое, за исключением того, что они войдут в стандартный/пустой гемсет, созданный rvm. Предупреждение в нижней части этой страницы должно быть указано, поскольку по умолчанию они перезаписываются при обновлении rvm.

Bundler - совершенно другой зверь и появился после того, как у rvm были гемзеты, и он решает подобную проблему. Перед сборщиком (и gemsets) было легко попасть в адский ад. Если в одном проекте использовалась версия x драгоценного камня и другая используемая версия y, вам нужно было установить как установленные, так и активированные, и т. Д. Всегда вызывали проблемы. Поэтому, когда появился rvm, вы могли бы создать gemsets, чтобы каждый драгоценный камень проектов отделялся друг от друга. Затем появился сборщик, который позволяет делать примерно то же самое с использованием Gemfile. Поэтому, если во всех ваших проектах используется связующее устройство, вы можете полностью уйти без использования для каждого проекта gemset, так как вы просто устанавливаете все свои гемземы в свой gemset по умолчанию и позволяете связующему из-за управления зависимостями.

+0

Это отличная информация Doon, спасибо. Фактически, я выяснил множество запросов, которые у меня были в голове о том, как эти вещи взаимодействуют. Большое спасибо. Просто добавлю: я проголосовал за ваш ответ, но у меня пока нет достаточно очков, чтобы показать его. –