복붙노트

[RUBY-ON-RAILS] 루비 온 레일즈 Gemfile 및 Gemfile.lock의 차이점은 무엇입니까

RUBY-ON-RAILS

루비 온 레일즈 Gemfile 및 Gemfile.lock의 차이점은 무엇입니까

나는 레일에 루비 초보자와 나는 레일 3.0.9를 사용하고 있습니다.

레일에서 Gemfile 및 Gemfile.lock의 차이점은 무엇입니까?

해결법

  1. ==============================

    1.Gemfile 당신이 사용하고자하는 보석 지정하는 경우, 당신은 어떤 버전을 지정할 수 있습니다.

    Gemfile 당신이 사용하고자하는 보석 지정하는 경우, 당신은 어떤 버전을 지정할 수 있습니다.

    Bundler를 설치 한 정확한 버전을 기록하는 곳 Gemfile.lock 파일입니다. 이 방법은, 같은 라이브러리 / 프로젝트가 아니라 단지 Gemfile을 사용하고 최신 버전을 설치하지 않고, Gemfile.lock 볼 것이다 설치하고 동일한 버전을 설치 번들 실행, 다른 컴퓨터에로드 할 때. 혹시 직접 편집에 잠금 파일이 없어야합니다 (다른 컴퓨터에 서로 다른 버전을 실행하면, 깨진 시험을 등을 초래할 수있다).

    Bundler를의 목적 및 근거, 버전 관리 섹션에 구체적으로 확인 코드를 확인하십시오.

  2. ==============================

    2.보통 우리는 Gemfile에 종속성을 쓰기 :

    보통 우리는 Gemfile에 종속성을 쓰기 :

    gem "nokogiri", "~> 1.4.4"
    gem 'bcrypt-ruby', '~> 3.0.0'
    gem 'uglifier', '>= 1.2.3'
    ..
    

    여기에서 당신은 기본적으로 말 : 지금은 내 Gemfile 7 개월 전 설정하고이 요구 사항과 I 성공적으로 설치 내 애플 리케이션했다고 가정 등, "나는 버전 1.4.4보다 그것의 더 큰만큼 노코 기리 싶다". 7 개월 전 노코 기리 버전은 1.4.4이다. 내 레일 애플 리케이션이 버전의 문제없이 완벽하게 실행되었다.

    지금은 같은 Gemfile에 구축을 위해 노력하고있어 생각합니다. 우리가 노코 기리 버전 보면하지만 우리는 현재 안정 버전은 1.4.9로 변경 한 것을 알 수있다. 우리가 만들려고 수단 경우, 들러는 노코 기리의 버전 1.4.9을 설치하는 것이다 (우리가 Gemfile.lock이없는 가정).

    당신이 어떤 Gemfile.lock 및 실행이없는 경우는보다시피 :

    bundle install
    

    다음 현재 사용되는 보석은 언제든지 다를 수 있습니다. 앱은 버전 1.4.4을 사용하고 아무 문제없이 6 개월 전 작동하지만 지금을 구축하려고하면 당신은 버전 1.4.9를 얻을. 어쩌면 그것이 노코 기리의 최신 버전 생겼습니다, 당신은 1.4.4에 사용되는 멋진 기능 등을 사용할 수 없습니다 더 ..

    Gemfile.lock를 사용하는 이런 종류의 문제를 방지합니다. Gemfile.lock에서만 정확한 버전이 기록되며, 따라서 만이 설치됩니다. 당신이 Gemfile.lock 사용하여 응용 프로그램을 배포하는 수단 경우, 모든 기계는 같은 보석이 설치되며, 가장 중요한 그들은 모두 같은 버전을 얻을. 이것은 당신에게 안정적이고 일반적인 배포 스택을 제공 할 것입니다.

    그것은 자동으로 첫 번째 생성됩니다 :

    bundle install
    

    명령. 설치 번들 실행이 매번 한 후, 번들은 처음 Gemfile.lock을 보면 보석이 지정 설치합니다. 그것은 일관되게과 안정성을 제공하는 프로젝트들 사이에서이 파일을 배포 할 수있는 습관이다.

    당신은 당신이 Gemfile.lock를 업데이트 할 수있는 것보다 당신의 응용 프로그램의 최신 버전에 만족합니다. 그냥 Gemfile에 대한 변경 사항을 반영합니다. 그 말은 Gemfile의 새로운 정확한 버전에 대한 종속성을 변경합니다. 그 실행 후 :

    bundle install
    

    이 앱의 사용자의 최신 버전을 Gemfile.lock 업데이트합니다.

  3. ==============================

    3.Gemfile.lock

    Gemfile.lock

    설치 번들 실행하면 Bundler를 전체 이름과 Gemfile.lock라는 파일로합니다 (Gemfile (5)에 규정 된 보석의 종속성을 포함)을 사용하는 모든 보석의 버전을 유지됩니다.

    들러는 항상 심지어 컴퓨터에서 응용 프로그램 움직일 때, 똑같은 코드를 사용하는 것이 보장하는 설치 번들로 이후의 모든 호출에서이 파일을 사용합니다.

    방식 때문에 의존성 해상도 작품도 (예를 들어, 당신의 Gemfile (5)에서 보석의 종속성의 포인트 릴리스에 대한 업데이트) 겉보기에 작은 변화 근본적으로 다른 보석을 초래할 수의 모든 종속성을 충족하는 데 필요한된다.

    결과적으로, 버전 관리로 Gemfile.lock을 확인해야한다. 당신은 타사 코드의 다른 버전에서 발생합니다 (프로덕션 서버 포함) 저장소를 체크 아웃 다시 모든 종속성을 해결할 수 있다고 모든 기계는 사용하지 않는 경우 만약하여 Gemfile의 보석 (5) 또는의 그들의 의존성이 업데이트되었습니다.

  4. from https://stackoverflow.com/questions/6927442/what-is-the-difference-between-gemfile-and-gemfile-lock-in-ruby-on-rails by cc-by-sa and MIT license