Sự khác biệt giữa GEM_HOME và GEM_PATH là gì?


76

RubyGems là một trình quản lý gói cho ngôn ngữ lập trình Ruby, cung cấp một định dạng tiêu chuẩn để phân phối các chương trình và thư viện Ruby (ở định dạng độc lập được gọi là "đá quý"), một công cụ được thiết kế để dễ dàng quản lý việc cài đặt các viên đá quý và một máy chủ cho phân phối chúng. Nó tương tự như EasyInstall cho ngôn ngữ lập trình Python. RubyGems hiện là một phần của thư viện chuẩn từ phiên bản 1.9 của Ruby.

Điều đó cho thấy, sự khác biệt giữa GEM_HOME và GEM_PATH là gì?

Câu trả lời:


96

GEM_PATH cung cấp các địa điểm (có thể có một số) nơi có thể tìm thấy đá quý.

GEM_HOME là nơi đá quý sẽ được cài đặt (theo mặc định).

(Do đó GEM_PATHnên bao gồm GEM_HOME).


1
Nó không đặc biệt rõ ràng từ câu trả lời của bạn. GEM_PATHgiống như PATHđối với đá quý (danh sách các thư mục chứa đá quý). Ít nhất chrubyđặt GEM_HOMElàm mục đầu tiên trong GEM_PATH.
x-yuri

Làm thế nào để bạn phân định nhiều đường dẫn? Nó có giống với PATH, sử dụng ký tự dấu hai chấm không? :
animatedgif

14

Cũng thông báo thú vị. Ít nhất là trên Wndows XP, không biết về các nền tảng khác.

Đặt GEM_HOMEtrong Windows:

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

Bây giờ chúng ta hãy kiểm tra điều này.

1) Trong Windows ENV. Tất cả đều ổn, như mong đợi:

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

2) Với gem env. Lưu ý rằng nó đặt GEM_HOMEcùng với GEM_PATHs nhưng ở vị trí đầu tiên:

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) Bây giờ với 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_PATHtrống, nó có nghĩa là giá trị mặc định. Nhưng nó lấy giá trị mặc định từ đâu? Thấy chưa gem env.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.