Ruby on Rails에서 Gemfile과 Gemfile.lock의 차이점은 무엇입니까?
저는 Ruby on Rails 초보자이며 Rails 3.0.9를 사용하고 있습니다.
사이의 차이점은 무엇입니까?Gemfile그리고.Gemfile.lock레일즈에서?
그Gemfile사용할 보석을 지정하고 버전을 지정할 수 있습니다.
그Gemfile.lockfile은 Bundler가 설치된 정확한 버전을 기록하는 곳입니다.동일한 될 때 "" "/" "" "/" "" "" "" "" ""를 할 수 있습니다.bundle install, 그럼 이제 를볼것다니입을 보겠습니다.Gemfile.lock 를 을 설치합니다.Gemfile최신 버전을 설치합니다. (다른 컴퓨터에서 다른 버전을 실행하면 테스트가 중단되는 등의 문제가 발생할 수 있습니다.)잠금 파일을 직접 편집할 필요가 없습니다.
번들러의 목적과 근거, 특히 버전 제어에 코드 체크인 섹션을 확인하십시오.
일반적으로 우리는 Gemfile에 다음과 같이 의존성을 씁니다.
gem "nokogiri", "~> 1.4.4"
gem 'bcrypt-ruby', '~> 3.0.0'
gem 'uglifier', '>= 1.2.3'
..
여기서 기본적으로 "버전 1.4.4보다 큰 한 노코기리를 원합니다" 등을 말합니다.이제 내가 내 것을 설정했다고 가정해 보겠습니다.Gemfile 8개월 전에 저는 이 요구 사항으로 앱을 성공적으로 설정했습니다.8개월 전 노코기리 버전은 1.4.4였습니다.제 레일즈 앱은 이 버전에서 아무런 문제 없이 완벽하게 실행되었습니다.
이제 내가 같은 것으로 건설하려고 한다고 생각합니다.Gemfile그러나 노코기리 버전을 보면 현재 안정된 버전이 1.4.9로 변경되었음을 알 수 있습니다.즉, 우리가 구축하려고 하면 번들러가 1.4.9 버전의 노코기리를 설치할 것입니다(만약 우리가 가지고 있지 않다면).Gemfile.lock).
그것은 무엇을 뜻하나요?
당이가있않보다다피시면지지.Gemfile.lock실행:
bundle install
그러면 현재 사용되는 보석은 언제든지 다를 수 있습니다.당신의 앱은 버전 1.4.4를 사용했고, 8개월 전에는 문제없이 작동하지만, 지금 구축하려고 하면 버전 1.4.9가 나옵니다.아마 최신 버전으로 고장났을 수도 있습니다.nokogiri1.4.4에서 사용한 놀라운 기능 등은 더 이상 사용할 수 없습니다.
이러한 문제를 방지하기 위해Gemfile.lock사용됩니다.인Gemfile.lock정확한 버전만 작성되므로 이러한 버전만 설치됩니다.즉, 당신이 당신의 앱을 의미합니다.Gemfile.lock모든 기계에는 동일한 보석이 설치되어 있으며 가장 중요한 것은 모두 동일한 버전을 사용한다는 것입니다.이렇게 하면 안정적이고 공통적인 배포 스택을 얻을 수 있습니다.
Gemfile.lock은 어떻게 생성됩니까?
첫 번째 항목으로 자동 생성됩니다.
bundle install
지휘권그 후로 당신이 달릴 때마다bundle install번들이 먼저 검색됩니다.Gemfile.lock그리고 거기에 지정된 보석을 설치합니다.일관성 있고 안정적인 기능을 제공하기 위해 프로젝트에 이 파일을 배포하는 것이 일반적입니다.
Gemfile.lock을 업데이트하는 방법은 무엇입니까?
업데이트할 수 있는 것보다 최신 버전의 앱에 만족하는 경우Gemfile.lock 사항을 경변사반니다합영을에 하세요.Gemfile즉, 종속성을 의 새로운 정확한 버전으로 변경합니다.Gemfile실행 후:
bundle install
은 당신을 입니다.Gemfile.lock최신 버전의 앱으로.
Gemfile.lock
번들 설치를 실행하면 Bundler는 사용자가 사용한 모든 보석의 전체 이름과 버전(Gemfile(5)에 지정된 보석의 종속성 포함)을 Gemfile.lock이라는 파일로 유지합니다.
번들러는 이후의 모든 호출에서 이 파일을 사용하여 번들 설치합니다. 이를 통해 응용 프로그램이 컴퓨터 간에 이동하는 경우에도 항상 동일한 코드를 사용할 수 있습니다.
종속성 해결이 작동하는 방식 때문에 겉보기에 작은 변경(예: Gemfile(5)의 보석 종속성 포인트 릴리스 업데이트)도 모든 종속성을 충족하기 위해 근본적으로 다른 보석이 필요할 수 있습니다.
따라서 Gemfile.lock을 버전 제어에 체크인해야 합니다.그렇지 않으면 저장소를 체크아웃하는 모든 컴퓨터(운영 서버 포함)가 모든 종속성을 다시 해결하여 Gemfile(5)의 보석 또는 종속성이 업데이트된 경우 다른 버전의 타사 코드가 사용됩니다.
언급URL : https://stackoverflow.com/questions/6927442/what-is-the-difference-between-gemfile-and-gemfile-lock-in-ruby-on-rails
'source' 카테고리의 다른 글
| Angular 2 XMLHttpRequest에서 열기를 실행하지 못했습니다.잘못된 URL (0) | 2023.06.26 |
|---|---|
| 카운트(*) "열"에서 별칭을 사용하고 have 절에서 참조할 수 없는 이유는 무엇입니까? (0) | 2023.06.26 |
| Azure VM의 성능이 매우 느림 (0) | 2023.06.06 |
| 1분마다 저장하고 최신 24시간 데이터만 데이터베이스에서 선택하는 모범 사례? (0) | 2023.06.06 |
| 쌓인 막대 차트에 데이터 값 표시(ggplot2) (0) | 2023.06.06 |