2014-12-11 6 views
0

로컬 디렉토리에서 루비 코드를 실행하기 위해 보석을로드하려고합니다. ScriptingContainer (JRuby) 객체가 시스템의 기본 젬 세트를 사용하는 것을 원하지 않습니다. JRuby 스크립트 컨테이너를 사용하여 로컬 디렉토리에서 보석로드

는 GEM_HOME 및 GEM_PATH을 변경

container.setEnvironment(env); 

빈지도를 사용하지만 여전히 시스템의 gemset 진행중인 환경 변수를 비운.

어떻게 피하면됩니까? 로컬 디렉토리 경로 퍽, 자체에 포함 된 Jar 파일로 JRuby를 응용 프로그램을 번들하기위한 도구를 만들 때 우리는 비슷한 문제를 했어

답변

0

시도. 루비 젬 (RubyGems)과 번들러 (Bundler)가 설정 한 모든 것들로 오염되지 않은 깨끗한 환경을 얻으려면 몇 가지 길이가 필요합니다. 여기에 문제를 해결하기위한 Puck의 요청이 있습니다 : https://github.com/iconara/puck/pull/7, 중요한 부분은 DependencyResolver 클래스이며, 별도의 ScriptingContainer을 시작하고 일부 농구를 뛰어 넘는 작업이 포함됩니다.

문제를 해결하는 데이 모든 것이 필요하지 않지만, 원하는 작업에 따라 환경을 재설정하는 것은 놀랍지 않게 어렵습니다.

+0

안녕하세요, kares도 이것을 시도해 보았습니다. 아직 시스템의 gemset에서 읽습니다. – raghavkrish

1

에 GEM_HOME/GEM_PATH 설정