이전 답변에 따르면 이것은 다루어야 할 내용이 많으므로 짧은 소개로 간주하십시오.
gem 은 Ruby 라이브러리가 패키징되는 방식입니다. Java에 대한 jar는 Ruby에게 있습니다. gem 파일 안에는 Ruby 코드 (.rb 파일)뿐만 아니라 테스트와 이름, 종속성 및 버전 ( gemspec )과 같은 gem 자체에 대한 정보를 제공하는 특수 파일도있습니다. 모든 Ruby 프로젝트는종속성을 선언하기 만하면 되는 Gemfile 을통해 필요한 gem을 정의 할 수 있습니다. Rubygems 는 패키지 관리자의 이름입니다. 패키지를 설치하는 데 사용되는 도구입니다 (Gem은 패키지 자체 임). Rubygems는 이제 Ruby의 일부입니다.
번 들러 는 보석 관리를 견딜 수있게 만드는 요소입니다. Gemfile을 기반으로 번들 설치 를사용하여 번 들러를 간단히 호출하면 필요한 모든 gem이 다운로드되고 설치됩니다. 표준 gem 명령을 사용하면gem install <gem_name>
. Bundler는 Ruby의 일부가 아니지만 (자체 는 gem으로 패키지화되어 있습니다 ) 대부분의 응용 프로그램에서 "사실상 표준"입니다 (실제로 사용하지 않는 사람이 많지 않으며 실제로 사용하지 않을 이유도 없습니다).
RVM 은 시스템에 여러 버전의 Ruby를 설치하고 필요할 때 전환 할 수있는 도구입니다. 이것은 Ruby 1.8과 1.9 또는 심지어 "MRI"(Matz의 Ruby, 기본 구현)와 대안 (Jruby 또는 Rubinius와 같은)을 설치하는 데 사용할 수 있습니다. 이 필드에서 RVM은 단독이 아닙니다 .예를 들어 rbenv를 참조하십시오.
RVM 의 gemset 은 주어진 컨텍스트, 일반적으로 프로젝트에 특정한 gem 세트입니다. 예를 들어 각각 고유 한 gem 세트가있는 서로 다른 애플리케이션을 개발하고 이들을 별도로 유지하려는 경우 유용합니다.
시스템 Ruby 는 RVM을 사용할 때 시스템에 설치된 Ruby 버전입니다 (즉, RVM을 통하지 않음).
막 시작했다면 보석과 번 들러에 관심이 있습니다. 지금은 RVM과 gemset을 따로 두어도됩니다.