2017-03-21 2 views
0

ActiveRecord 4.2.5를 사용하는 Rails 애플리케이션과 이전 버전 (예 : 3.2.14)을 사용하는 포함 된 보석이 있다고 가정 해 보겠습니다. 두 버전 모두 독립적으로로드되고 사용됩니까 (예)? 이 보석에서 최신 버전을 사용할 수있는 방법이 있습니까?보안 문제를 추적하려고합니다. 누군가가 루비 보석 버전 관리가 어떻게 작동하는지 추측 할 수 있습니까?

GEM 
    remote: https://rubygems.org/ 
    specs: 
    . 
    . 
    . 
    fuzzily (0.3.3) 
     activerecord (>= 2.3.17) 
+0

어떤 의존성의 관점에서'Gemfile.lock' 목록을합니까? 포함 된 보석이 Gemfile에 정확히 3.2.14를 지정했다면, 당신이 할 수있는 일은 많지 않다고 생각합니다. - 변경하고 다시 묶는 것 이외에 ... – Brian

+0

@Brian 제 질문을 업데이트했습니다. 보석 (fuzzily)에는 2.3.17 이상이 필요합니다. Gemfile.lock을 사용하여 내 앱에서 사용중인 보석 버전을 확인할 수 있습니까? 2.3.17 이후에 아무것도 필요하다면 Fuzzily가 나머지 앱에서 사용하는 ArctiveRecord를 사용할 것입니다 (4.2.5)? – Usagi

+0

Gemfile.lock에 사용중인 activerecord의 버전을 명시하는 또 다른 항목이 있어야합니다. fuzzily가 2.3.17보다 큰 것을 지정하고 있기 때문에, 앱의 나머지 부분이 무엇이든 사용해야합니다. – Brian

답변

0

레일에 루비 보석의 두 가지 버전을 사용하지 않습니다, 그것은 최신 버전으로 보석의 사용을 기본 설정됩니다 : 문제의 보석은 내 Gemfile.lock에서이 항목이 있습니다. https://github.com/bundler/bundler/issues/751

활성 레코드 버전이 보석과 호환되는 경우, 보석에 사용할 활성 레코드 버전을 언제든지 지정할 수 있습니다. 해당 보석의 두 버전의 저장소를 로컬 파일에 다운로드 할 수 있습니다. 그런 다음 보석을 따로 가리키는 로컬 경로를 제공하고 보석 파일에 경로와 함께이 보석을 추가하십시오.

예 :

gem 'grpc', : path => '/ Users/admin/repository/grpc'
보석 'grpc': 경로 => '/ 사용자/관리자/grpc'