2017-10-09 1 views
1

개인 보석을 몇 개 개발하고 있는데 PATH/GEM_PATH 및/또는 Bundler/RVM 설치 흐름을 제대로 이해하지 못한다고 생각합니다. 누군가가 칩에 넣을 수 있다면 사랑해.맞춤 보석을 개발할 때 Bundler의 Rakefile 설치 작업을 사용하여 보석을 설치할 수 없음

나는 2 개의 보석 (간단히하기 위해 A & B)이있는 저장소를 가지고있다. 나는 this bundler tutorial에서 제공하는 지침에 따라 비계 +를 사용하여 보석을 개발했습니다. Bundler를 프로젝트에

덕분에 나는 rake build, rake install, rake install:localrake release 같은 몇 Rakefile 작업을해야합니다. 이 보석들의 사적 특성 때문에 나는 그들을 RubyGems에 풀어 놓을 수 없다. (그리고 우리는 우리의 루비 보석을 주시하지 않았다.)

내 기계 루비 버전과 Bundler를 버전 내가 원하는 무엇 1.15.1

관리 RVM을 사용하고 있습니다 :을 새 기계/개발자는 프로젝트를 시도하고 가정을,의 각에 이상적으로 우리 것 cd 서브 폴더 (현재 2, 보석 A, 보석 B)를 실행하고 rake install을 실행하면 현재 사용 가능한 시스템 전체에 보석을 사용할 수있게됩니다.

어떤 일이 일어나고

: 보석 내장 제대로 작동하지만 각 보석 즉, 보석 A의 하위 폴더 내부에서만 사용할 수 있습니다하면 하위 폴더 A와 보석 B 내부에서만 사용할 수 있습니다에만 사용할 내부 하위 폴더 B.

입니다

내가 시도한 것 : 따라서 rake build/install/install:local 이후에 pkg 아래에 새로운 .gem 파일이 생성되었습니다. 나는 수동으로 "컴파일 된"파일을 gem install pkg/A.gem, gem install --local pkg/A.gemgem install --local --user-install pkg/A.gem을 사용하여 설치하려고했습니다. (there are plenty of SO questions/answers about this)

나는 이것이 PATH 변수와 관련이 있다고 생각하지만, 나는 그들이 관리되는 방식을 완전히 이해하지 못한다고 말했다.

# Our gem 
> gem which A 
/home/ubuntu/.rvm/gems/ruby-2.4.0/gems/A-0.1.8/lib/A.rb 

# Pry, available globally 
> gem which pry 
/home/ubuntu/.rvm/gems/ruby-2.4.0/gems/pry-0.11.1/lib/pry.rb 

내가 잃고 너무 오래 지금, 어떤 도움이 감사에 대한 좌절했습니다 : 나는이 명령에서 다음과 같은 결과를 얻을 수 있습니다. 더 나은 사적인 보석 설치 과정에 대한 제안을 듣기 위해 열어 둡니다.

+0

'rvm @global do gem install --local pkg/A.gem'을 사용하여 글로벌 보석 세트에 보석을 설치해보십시오. – DiegoSalazar

+0

나를 위해 해결되지 않았습니다. 나는'rvm @global gem install pkg/A-0.1.8.gem'을 실행했고 이제'gem which A'는'/ home/우분투/.rvm/rubies/ruby-2.4.0/bin/gem'을 출력합니다. 설치된 보석은 각 디렉토리 내에서만 계속 작동합니다. repo의 루트 디렉토리에서 다음을 시도해 보았습니다 (성공하지 못했습니다) :'rvm @global do gem install A/pkg/A-0.1.8.gem' – Fdo

답변

1

예, 사용자와 관련이 있습니다. PATH 변수. 설치가 잘 된 것 같습니다.

내가 먼저 당신의 보석 설치 경로를 긍정 조언 :

echo $GEM_HOME 

이중 그것의 존재를 확인하기 위해 경로를 확인하고 또한 보석이 rake install에서에 설치되어있어 어디 GEM 홈도 있는지 확인

echo $PATH 

하지 않으면, 당신의 경로에 넣어 당신은이 같은 뭔가를 잘해야한다 :

echo PATH=$PATH:$GEM_HOME >> ~/.bashrc 
source ~/.bashrc 
1

링크 된 가이드에 따라 보석을 만드십시오. 보석 파일로 끝내야합니다. 필자가보기에 이것을 배포하십시오 (필자는 rsync/crontab을 사용하여 최신 버전의 gem을 다운로드하지만 어떤 것도 사용합니다). 다음과 같이 사용자는 보석을 설치할 수 있습니다

gem install --user-install /path/to/your/file.gem 

는 사용자의 ~/.gem/ruby/<version>/gems/<your-gem-name> 디렉토리에있는 보석을 설치합니다.

빈 보석 (foodie, 그 예제 가이드에서와 같이)과 그것을 시도하고 잘 작동합니다. 그러나 --user-install 매개 변수를 지정하지 않으면 시스템 루비 디렉토리 (/ usr/lib/ruby ​​/ gems ...)에 설치를 시도합니다.

관련 문제