수색…


비고

젬 파일 문서

성장할 것으로 예상되는 프로젝트의 경우 Gemfile 에 주석을 추가하는 것이 좋습니다. 그렇게하면 심지어 큰 설정에서도 이름이 자명하지 않고 2 년 전에 추가 한 경우에도 각 보석이 무엇을하는지 알 수 있습니다.

또한 특정 버전을 선택한 이유를 기억하고 나중에 버전 요구 사항을 다시 평가하는 데 도움이 될 수 있습니다.

예 :

# temporary downgrade for TeamCity
gem 'rake', '~> 10.5.0'
# To upload invoicing information to payment provider
gem 'net-sftp'

보석이란 무엇입니까?

보석은 프로그래밍 언어 루비를위한 플러그인 또는 확장과 동일합니다.

철조망이라도 정확히 보석 일뿐입니다. 많은 보석은 레일이나 다른 보석 (그들은 보석에 달려있다) 위에 세워져 있거나 독립형이다.

Rails 프로젝트에서

젬 파일

Rails 프로젝트에는 Gemfile 이라는 파일이 Gemfile . 여기에 프로젝트에 포함하고 사용하려는 보석을 추가 할 수 있습니다. 일단 추가되면 번 bundler 를 사용하여 보석을 설치해야합니다 (번들러 섹션 참조).

Gemfile.lock

이렇게하면 Gemfile.lock 이 새로 추가 된 보석과 그 의존성으로 업데이트됩니다. 이 파일은 사용 된 보석을 잠궈 서 해당 파일에 선언 된 특정 버전을 사용합니다.

GEM
remote: https://rubygems.org/
specs:
devise (4.0.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0, < 5.1)
responders
warden (~> 1.2.3)

이 예는 보석을위한 devise . Gemfile.lock 에서 버전 4.0.3 을 선언하여 사용할 다른 버전의 머신이나 프로덕션 서버에 프로젝트를 설치할 때 알려줍니다.

개발

한 사람, 한 그룹 또는 전체 커뮤니티가 작품을 작성하고 유지합니다. 수행 된 작업은 일반적으로 특정 issuesissues 되거나 features 이 추가 된 후에 릴리스됩니다.

보통 릴리스는 Semantic Versioning 2.0.0 원칙을 따릅니다.

번들러

보석을 다루고 관리하는 가장 쉬운 방법은 bundler 를 사용하는 것입니다. Bundler 는 bower와 비슷한 패키지 관리자입니다.

번들러를 사용하려면 먼저 번들러를 설치해야합니다.

gem install bundler

Gemfile 하고 실행 한 Gemfile 추가하고 실행하면된다.

bundle

귀하의 단말기에. 이렇게하면 새로 추가 된 보석이 프로젝트에 설치됩니다. 문제가 발생하면 터미널에 프롬프트가 표시됩니다.

자세한 내용에 관심이 있으시면 문서를 살펴 보시기 바랍니다.

젬 파일

시작하려면, gemfiles에는 RubyGems 서버의 URL 형태로 적어도 하나의 소스가 필요합니다.

bundle init 을 실행하여 기본 rubygems.org 소스로 Gemfile을 생성하십시오. SSL을 사용하여 서버에 대한 연결을 확인할 수 있도록 https를 사용하십시오.

source 'https://rubygems.org'

그런 다음 버전 번호를 포함하여 필요한 보석을 선언하십시오.

gem 'rails', '4.2.6'
gem 'rack',  '>=1.1'
gem 'puma',  '~>3.0'

> = 1.0과 같은 대부분의 버전 지정자는 자명합니다. 지정자 ~>는 특별한 의미가 있습니다. ~ 2.0.3은> 2.0.3 및 <2.1과 동일합니다. ~ 2.1은> 2.1 및 <3.0과 동일합니다. ~ 2.2.beta는 2.2.12와 같은 시험판 버전과 일치합니다.

Git 저장소는 repo에 하나 이상의 유효한 보석이 들어있는 한 유효한 보석 소스입니다. 체크 아웃 할 대상을 :tag , :branch 또는 :ref . 기본값은 master 분기입니다.

gem 'nokogiri', :git => 'https://github.com/sparklemotion/nokogiri', :branch => 'master'

파일 시스템에서 압축을 푼 보석을 직접 사용하려면 : path 옵션을 gem의 파일이 들어있는 경로로 설정하기 만하면됩니다.

gem 'extracted_library', :path => './vendor/extracted_library'

종속성을 그룹으로 지정할 수 있습니다. 그룹은 설치시 ( --without 사용) 무시하거나 Bundler.require 사용하여 한 번에 모두 필요할 수 있습니다.

gem 'rails_12factor', group: :production

group :development, :test do
  gem 'byebug'
  gem 'web-console', '~> 2.0'
  gem 'spring'
  gem 'dotenv-rails'
end

당신과 함께 Gemfile에 루비의 필요한 버전을 지정할 수 있습니다 ruby . Gemfile이 다른 Ruby 버전에로드되면 Bundler는 설명과 함께 예외를 발생시킵니다.

ruby '2.3.1'

보석 세트

RVM(Ruby Version Manager) 을 사용하는 경우 각 프로젝트에 gemset 을 사용하는 것이 좋습니다. gemset 은 보석을 서로 분리하는 데 사용할 수있는 컨테이너입니다. 프로젝트 당 보석 gemset 만들면 다른 모든 프로젝트를 깨지 않고 한 프로젝트의 보석 (및 보석 버전)을 변경할 수 있습니다. 각 프로젝트는 자신의 보석에 대해서만 걱정할 필요가 있습니다.

RVM 은 루비 인터프리터 당 @global gemset 제공합니다 (> = 0.1.8). 주어진 루비에 대해 @global gemset 에 설치 한 젬은 그 루비와 함께 생성 한 다른 모든 젬 세트에서 사용할 수 있습니다. 이것은 모든 프로젝트가 특정 루비 인터프리터 설치에 대해 동일한 설치된 보석을 공유 할 수있게하는 좋은 방법입니다.

보석 세트 만들기

이미 ruby-2.3.1 설치되어 있고 다음 명령을 사용하여 선택했다고 가정하십시오.

rvm use ruby-2.3.1

이제이 루비 버전을위한 gemset을 생성하십시오 :

rvm gemset create new_gemset

여기서 new_gemsetnew_gemset 의 이름입니다. 루비 버전에서 사용 가능한 gemsets 목록을 보려면 :

rvm gemset list

모든 루비 버전의 보석 목록 :

rvm gemset list_all

목록에서 gemset을 사용하려면 ( new_gemset 을 사용하려는 gemset이라고 가정 new_gemset ) :

rvm gemset use new_gemset

다른 루비 버전으로 이동하려면 gemset으로 루비 버전을 지정할 수도 있습니다.

rvm use ruby-2.1.1@new_gemset

특정 루비 버전에 대한 기본 gemset을 지정하려면 :

rvm use 2.1.1@new_gemset --default

설치 한 모든 보석을 보석에서 꺼내려면 다음과 같이하여 비울 수 있습니다 :

rvm gemset empty new_gemset

하나의 루비에서 다른 루비로 gemset을 복사하려면 다음을 수행하십시오.

rvm gemset copy 2.1.1@rails4 2.1.2@rails4

보석을 삭제하려면 다음 단계를 따르세요.

rvm gemset delete new_gemset

현재 gemset 이름을 보려면 :

rvm gemset name

글로벌 gemset에 젬을 설치하려면 :

rvm @global do gem install ...

루비 설치 중 Gemset 초기화하기

새로운 루비를 설치할 때 RVM은 두 개의 보석 세트 (기본 빈 gemset 및 전역 보석 세트)를 생성 할뿐만 아니라 사용자가 편집 할 수있는 파일 세트를 사용하여 설치할 보석을 결정합니다.

~/.rvm/gemsets 에서 작업하는 ~/.rvm/gemsets 은 설치할 루비 문자열을 기반으로 트리 계층 구조를 사용하여 global.gemsdefault.gems 를 검색합니다. ree-1.8.7-p2010.02 의 예제를 사용하여 rvm은 다음 파일을 확인하고 가져옵니다.

~/.rvm/gemsets/ree/1.8.7/p2010.02/global.gems
~/.rvm/gemsets/ree/1.8.7/p2010.02/default.gems
~/.rvm/gemsets/ree/1.8.7/global.gems
~/.rvm/gemsets/ree/1.8.7/default.gems
~/.rvm/gemsets/ree/global.gems
~/.rvm/gemsets/ree/default.gems
~/.rvm/gemsets/global.gems
~/.rvm/gemsets/default.gems

예를 들어 ~/.rvm/gemsets/global.gems 를 다음 두 행을 추가하여 편집 한 경우 :

bundler
awesome_print

새 루비를 설치할 때마다이 두 보석이 글로벌 gemset에 설치됩니다. default.gemsglobal.gems 파일은 일반적으로 rvm을 업데이트하는 동안 덮어 씁니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow