Composer 업데이트와 Composer 설치의 차이점은 무엇입니까?

와의 차이점은 무엇입니까?composer update그리고.composer install?



질문에 대한 답변



컴포저 갱신

composer update에서 지정된 대로 디펜시시티가 갱신됩니다.composer.json

예를 들어, 이 패키지가 종속성으로 필요한 경우:

"mockery/mockery": "0.9.*", 

실제로 설치했습니다.0.9.1패키지 버전, 실행composer update이 패키지가 업그레이드됩니다(예를 들어0.9.2(이미 발매된 경우)

상세하게composer update의 내용:

  • 읽어주세요composer.json
  • 에서 더 이상 필요하지 않은 설치된 패키지를 제거합니다.composer.json
  • 필요한 패키지의 최신 버전을 사용할 수 있는지 확인합니다.
  • 패키지의 최신 버전을 설치합니다.
  • 갱신하다composer.lock설치된 패키지 버전을 저장합니다.

컴포저 설치

composer install아무것도 갱신하지 않고, 에 지정되어 있는 대로 모든 의존관계를 인스톨 합니다.composer.lock파일

상세:

  • 확인하다composer.lock파일이 존재합니다(존재하지 않는 경우 실행).composer-update작성)
  • 읽어주세요composer.lock파일
  • 에 지정된 패키지를 설치합니다.composer.lock파일

설치 시기 및 업데이트 시기

  • composer update주로 ‘개발 단계’에서 사용됩니다.프로젝트 패키지를 업그레이드하기 위해서입니다.composer.json파일,

  • composer install는 주로 컴포저 업데이트에 의해 작성된 composer.lock 파일에 저장되어 있는 것과 동일한 종속성을 사용하여 운영 서버 또는 테스트 환경에 애플리케이션을 설치하는 ‘프로덕션 단계’에서 사용됩니다.




달릴 때composer install잠금 파일을 검색하여 그 안에 포함된 모든 파일을 설치합니다. 찾을 수 없는 경우,composer.json의존관계를 설치하고 잠금파일을 생성합니다.

달릴 때composer update그것은 간단히 읽을 수 있다composer.json의존관계를 설치하고 잠금파일을 갱신합니다(또는 새로운 잠금파일을 만듭니다).




composer install

  1. 한다면composer.lock존재합니다.
    • 에서의 의존관계 처리 및 설치composer.lock파일.
  2. 한다면composer.lock는 존재하지 않습니다.
    • 프로세스 패키지 설치 위치composer.json.
    • 를 만듭니다.composer.lock설치된 패키지를 기반으로 파일을 만듭니다.

이하에 따라:composer help install:

install 명령어는composer.lock현재 디렉토리에서 파일을 처리하여 해당 파일에 요약된 모든 라이브러리와 종속성을 다운로드 및 설치합니다.파일이 존재하지 않는 경우 다음 파일을 찾습니다.composer.json그리고 똑같이 해.


composer update

  1. 에서의 프로세스 의존성composer.json파일(삭제, 갱신 및 삭제)을 지정합니다.
  2. 를 작성 또는 갱신합니다.composer.lock변경사항에 따라 파일을 작성합니다.

이하에 따라:composer help update:

update 명령어는composer.json파일을 현재 디렉토리에서 처리하여 모든 종속성을 업데이트, 제거 또는 설치합니다.


다음 항목도 참조하십시오.작성자: 중요한 것은 잠금 파일




컴포저 설치

if(composer.lock existed){
installs dependency with EXACT version in composer.lock file } else {
installs dependency with LATEST version in composer.json
generate the composer.lock file } 

컴포저 갱신

composer update = remove composer.lock -> composer install 

2개의 명령어가 필요한 이유.composer.lock으로 설명할 수 있을 것 같아요.

상상해봐, 우린 지금composer.lock및 인composer.json, 의존관계가 있습니다."monolog/monolog": "1.0.*"또는"monolog/monolog": "^1.0".
그러면 몇 가지 케이스가 있습니다.

  • 현재의 의존관계 버전(예: 1.0.0)에서는 정상적으로 동작하고 있습니다만, 몇 달 후에 의존관계 업데이트(예: 1.0.1)로 버그가 발생할 가능성이 있습니다.
  • 다른 팀 구성원은 다른 종속 버전을 사용할 수 있습니다(실행하는 경우composer install다른 시간에.

항상 EXCRUCT 버전을 사용하여composer.json예를 들어"monolog/monolog": "1.0.1"?
우리는 여전히 필요하다.composer.lock왜냐면composer.json는 의존성의 기본 버전만 추적하고 의존성의 버전은 추적할 수 없습니다.

모든 종속성이 EXCRUCT 버전도 사용하는 경우에는 어떻게 해야 합니까?
먼저 EXCRUCT 버전을 사용하는 모든 의존관계에서 시작하지만 상관하지 않는다고 가정해 보십시오.composer.lock. 그러나, 몇달 후에, 이런 의존의 의존성은 EXACT 버전에 사용하지 않는 새로운 종속성(또는 오래 된 의존도를 업데이트)을 추가한다.그럼 신경 쓰는 것이 낫다.composer.lock맨 처음에

그 외에도, 의미와 관련된 버전의 정확한 버전에 대한 잇점이 있다.우리는 개발과 도서관는 동안 여러번 자주 버그 수정 같은 작은 변화가 있는 의존도를 업데이트할 수 있습니다.그리고 그것이 의미 버전을 사용한다 의존을 높이기 위해서 더 쉽다.




사이에 가장 좋은 차이composer update그리고.composer install

컴포저 설치

직접 composer.json 파일에 추가할 필요가 있어 의존성을 추가하려면.

만약composer.lock 파일이 존재, 정확히 이 파일에 specificated 것을 설치할 것이다.

  • 또는 composer.json 파일을 읽고 설치해야 하는 종속성을 확인합니다.
  • 프로젝트 정보를 사용하여 composer.lock을 작성합니다(설치된 종속성).

이 명령으로 갱신되는 컴포넌트는 없습니다.

컴포저 갱신

종속성을 추가하거나 제거하려면 composer.json 파일에 종속성을 수동으로 추가해야 합니다.

  • composer.lock 파일은 무시됩니다.
  • composer.json 파일의 의존관계가 설치 및 갱신됩니다(의존관계가 인스톨 되어 있지 않은 경우는 다운로드 됩니다).

composer.json 파일을 수동으로 변경할 수 없거나(또는 실제로 쉬운 라이브러리를 추가하거나 제거하는 방법을 모르면 파일의 require 속성에 종속성 및 버전 이름을 추가하기만 하면 됩니다) 명령줄을 사용하는 대신 composer.json 파일을 다음과 같은 특수한 기능을 사용할 수 있습니다.

작곡가가 필요하다

예를 들어 명령줄에 종속성을 추가하려면 간단히 실행합니다.

composer require twig/twig

  • composer.json 파일이 자동으로 변경되어 새로운 의존관계가 추가됩니다.
  • 종속성이 프로젝트에 다운로드됩니다.

컴포넌트 삭제

사용하지 않는 의존관계를 삭제하고 싶은 경우 다음과 같이 수행합니다.

composer remove twig/twig --update-with-dependencies

  • 트윅은 그의 모든 의존자들과 함께 제거될 것이다.