2015-01-09 2 views
0

단일 스크립트에서 사용하기 위해 Ruby gem을 로컬 컴퓨터 (전체 컴퓨터에는 설치하지 않음)에서 사용하고 싶습니다. Gemfile 및 bundle install을 사용하여 Bundler와 함께 보석을 설치하는 방법을 알고 있습니다. 그러나 간단한 스크립트의 경우, 이것은 번들러를 설정하는 데 과도한 영향을 미칩니다.현재 폴더에 보석을 설치하는 방법

npm이 Node.js 패키지를 node_modules에 설치하는 것과 비슷한 방식으로 내 스크립트의 하위 폴더에 보석을 설치하고 사용하는 방법이 있습니까?

여기까지 제가 시도한 바가 있습니다.

gem install -i ruby plist 내가 require './ruby/gems/plist-3.1.0/lib/plist을 수행하여 내 스크립트 extract.rb에서 그것을 요구하는 시도 ruby/gems/plist-3.1.0

에서 plist 보석을 설치하지만 (plist/generator.rblib/plist.rb에 필요) require: cannot load such file: plist/generator 실패합니다.

OSX

루비 2.0

답변

1

당신은 예를 들어, 당신의 예에서와 같이 로컬로 보석을 설치, Bundler 프로그램을 포함하고 필요로 당신의 전에 스크립트에서 GEM_PATH의 ENV를 설정하지 않으려면 :

#!/usr/bin/env ruby 

ROOT = File.expand_path('..', __FILE__) 
ENV['GEM_PATH'] = File.join(ROOT, 'ruby') 
# or to just append to 
# ENV['GEM_PATH'] += ":#{ File.join(ROOT, 'ruby') }" 

require 'plist' 

는 스크립트가있는 가정 ruby 폴더와 같은 폴더 (그렇지 않으면 파일 경로를 적절히 조정하십시오).

+0

열쇠는 GEM_PATH가 보석이로드되는 위치에 영향을 준다는 것을 알고있었습니다. – monkbroc

1

당신은 예를 들어, --path 옵션을 사용하여 다른 위치에 설치할 수있는 번들 :

bundle install --path vendor/bundle 

은 또한에 대한 gemset을 만들어 당신은 그것을 할 수 http://bundler.io/v1.1/bundle_install.html

+0

어떻게 스크립트에서 보석을로드합니까? – monkbroc

+0

페이지에 설명 된대로 프로젝트에 번들러를 설치하기 만하면됩니다. 정상적인 요구 사항을 충족해야합니다. –

0

참조 특정 응용 프로그램. 다음 단계를 따르십시오. -

$ rvm gemset create <gemset_name> 

현재 선택된 루비 버전 용 gemset을 생성합니다. 이 명령에 의해 현재 선택된 루비 버전을 확인할 수 있습니다 -

$ rvm list 

는 그 다음에 CD로 앱 디렉토리로 이동합니다. 당신은 전체 시스템에 대한되지 사용되고는 현재 gemset에 설치됩니다 어떤 보석을 설치할 때마다 지금

$ rvm use @<gemset_name> 

-

이제이 명령을 실행합니다.

bundle install을 실행할 때 오류가 발생하지 않도록 새로 만든 gemset에서 gem install bundler을 실행하십시오.

관련 문제