수색…


루비 보석 설치하기

이 가이드는 이미 Ruby가 설치되어 있다고 가정합니다. Ruby < 1.9 를 사용하는 경우 기본적으로 RubyGem포함 하지 않으므로 수동으로 설치 해야합니다.

루비 보석을 설치하려면 다음 명령을 입력하십시오.

gem install [gemname]

gem 종속성 목록이있는 프로젝트에서 작업하는 Gemfile 파일은 Gemfile 이라는 파일에 나열됩니다. 프로젝트에 새 gem을 설치하려면 Gemfile 에 다음 코드 줄을 추가하십시오.

gem 'gemname'

Gemfile 은 프로젝트가 요구하는 의존성을 설치하기 위해 Bundler gem 이 사용하지만 이것은 아직 실행하지 않았다면 Bundler를 먼저 설치해야 함을 의미합니다 :

gem install bundler

파일을 저장하고 다음 명령을 실행하십시오.

bundle install

버전 지정

버전 번호는 다음과 같이 -v 플래그와 함께 live 명령에 지정할 수 있습니다.

gem install gemname -v 3.14

Gemfile 에서 버전 번호를 지정할 때 몇 가지 옵션을 사용할 수 있습니다 :

  • 어떤 버전 지정 ( gem 'gemname') - 다른 보석과 호환되는 최신 버전을 설치하지 않습니다 Gemfile .
  • 정확한 버전 지정 ( gem 'gemname', '3.14' ) - 버전 3.14 만 설치하려고 시도합니다 ( Gemfile 다른 보석과 호환되지 않는 경우 실패합니다).
  • 낙관적 인 최소 버전 번호 ( gem 'gemname', '>=3.14' ) - Gemfile 다른 보석과 호환되는 최신 버전 만 설치하려고 시도하며 3.14 이상의 버전이 호환되지 않는 경우 실패합니다. > 연산자도 사용할 수 있습니다.
  • 비관적 인 최소 버전 번호 ( gem 'gemname', '~>3.14' ) - 이것은 gem 'gemname', '>=3.14', '<4' 를 사용하는 것과 기능상 동일합니다. 즉, 최종 기간 이후의 숫자 만 증가 할 수 있습니다.

모범 사례 : rbenv 또는 rvm 과 같은 Ruby 버전 관리 라이브러리 중 하나를 사용하고자 할 수 있습니다. 이 라이브러리를 통해 다른 버전의 Ruby 런타임과 젬을 설치할 수 있습니다. 따라서 프로젝트에서 작업 할 때 이것은 대부분의 프로젝트가 알려진 Ruby 버전에 대해 코딩되기 때문에 특히 유용 할 것입니다.

github / filesystem의 gem 설치

github 또는 파일 시스템에서 gem을 설치할 수 있습니다. 보석이 git에서 또는 파일 시스템에 이미 체크 아웃 된 경우 다음을 사용하여 설치할 수 있습니다.

gem install --local path_to_gem/filename.gem

github에서 gem 설치. github에서 소스를 다운로드하십시오.

mkdir newgem
cd newgem
git clone https://urltogem.git

보석을 만들어라.

gem build GEMNAME.gemspec
gem install gemname-version.gem

코드 내에서 필수 보석이 설치되었는지 확인하기

코드에서 필요한 보석이 설치되었는지 확인하려면 nokogiri를 사용하여 다음을 사용할 수 있습니다.

begin
  found_gem = Gem::Specification.find_by_name('nokogiri')
  require 'nokogiri'
  ....
  <the rest of your code>
rescue Gem::LoadError
end

그러나이를 코드 내에서 기능을 설정하는 데 사용할 수있는 함수로 확장 할 수 있습니다.

def gem_installed?(gem_name)
  found_gem = false
  begin
    found_gem = Gem::Specification.find_by_name(gem_name)
  rescue Gem::LoadError
     return false
  else
    return true
  end
end

이제 필요한 보석이 설치되었는지 확인하고 오류 메시지를 인쇄 할 수 있습니다.

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  printf "nokogiri gem required\n"
  exit 1
end

또는

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  require 'REXML'
end

Gemfile과 Bundler 사용하기

Gemfile 은 응용 프로그램의 종속성을 구성하는 표준 방법입니다. 기본 Gemfile은 다음과 같습니다 :

source 'https://rubygems.org'

gem 'rack'
gem 'sinatra'
gem 'uglifier'

다음과 같이 원하는 보석의 버전을 지정할 수 있습니다.

# Match except on point release. Use only 1.5.X
gem 'rack', '~>1.5.2'
# Use a specific version.
gem 'sinatra', '1.4.7'
# Use at least a version or anything greater.
gem 'uglifier', '>= 1.3.0'

git repo에서 바로 보석을 끌어낼 수도 있습니다.

# pull a gem from github
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git'
# you can specify a sha
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', sha: '30d4fb468fd1d6373f82127d845b153f17b54c51'
# you can also specify a branch, though this is often unsafe
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', branch: 'master'

또한 용도에 따라 보석을 그룹화 할 수 있습니다. 예 :

group :development, :test do
    # This gem is only available in dev and test, not production.
    gem 'byebug'
end

애플리케이션을 여러 플랫폼에서 실행할 수 있어야하는 경우 특정 보석을 실행할 플랫폼을 지정할 수 있습니다. 예 :

platform :jruby do
  gem 'activerecord-jdbc-adapter'
  gem 'jdbc-postgres'
end

platform :ruby do
  gem 'pg'
end

Gemfile에서 모든 보석을 설치하려면 다음을 수행하십시오.

gem install bundler
bundle install

번들 / 인라인 (번들 v1.10 이상)

때로는 누군가를 위해 스크립트를 만들어야하지만 자신의 컴퓨터에 무엇이 있는지 확실하지 않습니다. 스크립트에 필요한 모든 것이 있습니까? 걱정할 것 없습니다. 번들러는 훌륭한 기능을 가지고 있습니다.

gemfile 메소드를 제공하고 스크립트가 실행되기 전에 필요한 모든 보석을 다운로드하여 필요로합니다. 작은 예 :

require 'bundler/inline' #require only what you need

#Start the bundler and in it use the syntax you are already familiar with
gemfile(true) do 
  source 'https://rubygems.org'
        gem 'nokogiri', '~> 1.6.8.1'
        gem 'ruby-graphviz'
end


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