Яка різниця між GEM_HOME і GEM_PATH?


76

RubyGems - це менеджер пакунків для мови програмування Ruby, який забезпечує стандартний формат розповсюдження програм і бібліотек Ruby (у самостійному форматі, який називається "самоцвіт"), інструмент, призначений для простого управління встановленням самоцвітів, і сервер для розподіляючи їх. Це аналогічно EasyInstall для мови програмування Python. RubyGems тепер є частиною стандартної бібліотеки від Ruby версії 1.9.

Тим не менш, яка різниця між GEM_HOME і GEM_PATH?

Відповіді:


96

GEM_PATH надає місця (може бути декілька), де можна знайти дорогоцінні камені.

GEM_HOME тут буде встановлено дорогоцінні камені (за замовчуванням).

(Тому GEM_PATHслід включати GEM_HOME).


1
З вашої відповіді це не особливо зрозуміло. GEM_PATHсхожий PATHна дорогоцінні камені (список каталогів, де знаходяться самоцвіти). Принаймні chrubyвстановлює GEM_HOMEяк перший елемент у GEM_PATH.
x-yuri

Як розмежувати кілька шляхів? Це те саме, що PATH, використовуючи символ двокрапки? :
animatedgif

14

Також цікаве повідомлення. Принаймні на Wndows XP, не знаю про інші платформи.

Встановлено GEM_HOMEв Windows:

C:\>set GEM_HOME=C:\sbox\ruby\dump\.gems

Тепер давайте перевіримо це.

1) У Windows ENV. Все гаразд, як і слід було очікувати:

C:\>set
...
GEM_HOME=C:\sbox\ruby\dump\.gems
...

2) З gem env. Зверніть увагу, що він ставиться GEM_HOMEразом із GEM_PATHs, але в першу чергу:

C:\>gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.3
  - RUBY VERSION: 2.0.0 (2013-02-24 patchlevel 0) [i386-mingw32]
  - INSTALLATION DIRECTORY: C:/sbox/ruby/dump/.gems
  - RUBY EXECUTABLE: C:/Ruby200/bin/ruby.exe
  - EXECUTABLE DIRECTORY: C:/sbox/ruby/dump/.gems/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - C:/sbox/ruby/dump/.gems
     - C:/Documents and Settings/User/.gem/ruby/2.0.0
     - C:/Ruby200/lib/ruby/gems/2.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/

3) Тепер з bundle env:

C:\>bundle env
Bundler 1.3.4
Ruby 2.0.0 (2013-02-24 patchlevel 0) [i386-mingw32]
Rubygems 2.0.3
GEM_HOME C:\sbox\ruby\dump\.gems
GEM_PATH

GEM_PATHпорожній, це означає значення за замовчуванням. Але звідки воно бере значення за замовчуванням? Див gem env.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.