2017-10-29 10 views
1

나는 분명히 역할을 이해하지 못한다. RVM, RubyGems, Gemsets, Homebrew & Bundler, 서로 상호 작용하는 방식과 내 envrionment, 다른 응용 프로그램, 다른 Ruby 버전, 다른 Rails 버전 및 모든 것들 각각의 종속성을 관리하는 데 이들을 사용해야하는 방법.이미 다운로드 한 Rails gem과 Ruby의 새로운 버전을 연결하는 방법은 무엇입니까?

Ruby 2.3 및 일부 레일즈 5.0.5 용으로 레일즈 5.0.3을 사용하여 코딩을 해왔습니다. 그러나 운이 좋았던 것보다 계획 이상으로 환경 문제가 없었습니다. Agile Web Development with Rails 5를 시작하려고합니다. 튜토리얼과 일치하도록 환경을 설정하려고합니다. 이로 인해 RVM & Gemsets, RubyGems, Bundler, Homebrew를 더 잘 이해할 필요가있어서 이제는 내 컴퓨터에서 다른 Ruby 및 Rails 버전을 관리 할 수있게되었습니다.

첫 번째 단계는 성공적으로 설치된 rvm install ruby-2.4.2을 통해 2.3.0 버전의 Ruby를 업데이트하는 것입니다.

내 컴퓨터에 다양한 레일스 버전이 있지만 이전 버전의 루비에 '링크'되어 있음에도 불구하고 새 루비 v2.4.2에 '링크 된'레일스 버전이 없습니다.

질문 번호 1) 확실히이 새 Ruby v2.4.2에서 원하는 Rails 버전의 사본을 실제로 다운로드 할 필요가 없습니다. 이전에 설치 한 Rails 버전을 어떻게 든이 새로운 Ruby v2.4.2에 '링크'할 수 있습니까?

여기는 무엇입니까 rvm gemset list_all;

gemsets for ruby-2.2.2 (found in /Users/jamesbkemp/.rvm/gems/ruby-2.2.2) 
=> (default) 
    global 

gemsets for ruby-2.3.0 (found in /Users/jamesbkemp/.rvm/gems/ruby-2.3.0) 
=> (default) 
    global 

gemsets for ruby-2.4.2 (found in /Users/jamesbkemp/.rvm/gems/ruby-2.4.2) 
=> (default) 
    global 

질문 번호. 2) RVM의 '보석 세트'는 Bundler와 동일한 역할을합니까? 즉 하나만 사용합니까? 제 경우에는 Bundler를 사용하고 있었으므로 어느 쪽이라도의 경우라면 그것에 충실 할 것입니다.

질문 번호 3) 이러한 환경 관리 도구를 더 잘 이해할 수 있도록 RVM을 사용하여 무엇을 사용해야하는지에 대한 높은 수준의 개요를 제공 할 수 있습니다. & Gemsets, HomeBrew & Bundler for, 무엇이 무엇이 어디에서 업데이트되어야하는지 구체적으로 설명해야합니다. 각 도구.

감사합니다.

답변

0


1을 따를 RVM 작업 내 워크 플로우이다 - 나는 $ rvm install 2.3.1
2 루비 버전을 설치 - 루비 버전 $ rvm use 2.3.1
3를 선택 - 지금은 버전을 피하는 gemset에 캡슐화 보석 버전에 대한 gemset를 만들 다른 응용 프로그램과의 충돌 때문에 $ rvm gemset create my_app
4 - 레일 버전 $ gem install rails -v 5.0.3
6 설치 - - 지금은 gemset $ rvm use [email protected]_app
5 선택한 응용 프로그램을 만들기를 $ rails new my_app
이제gemset에 레일과 보석을 설치하십시오.
7- 마지막으로, 루비 버전과 gemset에서 명시 적으로 my_app 루트 경로에 2.3.1을 포함하는 .ruby 버전 파일과 my_app을 포함하는 .ruby-gemset 파일을 추가하여 my_app 루트 경로에서 rvm은 자동으로 [email protected]_app gemset으로 변경해야하며, 매번 $ rvm use [email protected]_app을 입력 할 필요가 없다는 것을 알고 있습니다.

첫 번째 질문에 대답하면 레일이 설치되어 있지만 하나의 루비 글로벌 gemset (글로벌 기본 gemset)에만 설치되어있을 수 있습니다. 따라서 새로운 루비 버전을 설치하려면 레일 젬을 다시 설치해야합니다. 다른 앱을 사용하는 경우 보석 충돌 문제를 줄이기 위해 각 앱마다 보석을 만들 것을 권장합니다.