본문 바로가기
리눅스

Composer (software)

by 다움위키 2023. 12. 19.

Composer는 PHP 소프트웨어 및 필수 라이브러리의 종속성을 관리하기 위한 표준 형식을 제공하는 PHP 프로그래밍 언어에 대한 애플리케이션-수준 패키지 관리자입니다. 그것은 프로젝트를 계속 관리하고 있는 Nils Adermann과 Jordi Boggiano에 의해 개발되었습니다. 그들은 2011년 4월에 개발을 시작하였고 2012년 3월 1일에 처음 출시했습니다. Composer는 Node.js의 "npm"과 Ruby의 "bundler"에서 크게 영감을 받았습니다. 프로젝트의 종속성 해결 알고리듬은 오픈수저의 libzypp satsolver의 PHP-기반 포트로 시작되었습니다.

Composer는 명령줄에서 실행되고 응용 프로그램에 대한 종속성 (예를 들어, 라이브러리)을 설치합니다. 그것은 역시 사용자에게 사용 가능한 패키지가 포함하는 주요 저장소인 "Packagist"에서 사용 가능한 PHP 응용 프로그램을 설치하는 것을 허용합니다. 그것은 역시 타사 코드를 쉽게 사용할 수 있도록 자동-로드 정보를 지정하는 라이브러리에 대한 자동-로드 기능을 제공합니다.

Installation

미디어위키 확장을 이용하기 위해, 설치가 필요합니다.

데비안 저장소에서 패키지로 제공하지 않기 때문에, 파일을 받아서 설치해야 합니다.

최신 2.x 버전이 출시되었지만, 미디어위키는 아직 오직 1.x를 지원하는 플럭인이 있습니다. 따라서, 특정 버전을 설치하고 싶을 때, 아래와 같이 다운로드할 수 있습니다:

아래와 같이 설치된 버전을 확인할 수 있습니다:

  • composer --version

Syntax

Commands

Composer는 다음을 포함한 여러 매개변수를 제공합니다:

  • require: 라이브러리의 매개변수를 composer.json 파일에 추가하고, 그것을 설치합니다.
  • install: composer.json에서 모든 라이브러리를 설치합니다. 이것은 모든 PHP 저장소 종속성을 다운로드하기 위해 사용하는 명령입니다.
  • update: 언급된 허용 버전에 따라 composer.json에서 모든 라이브러리를 업데이트합니다.
  • remove: 라이브러리를 제거하고 composer.json에서 제거합니다.

Libraries definition

다음 명령에 의해 생성된 composer.json의 예제:

composer require monolog/monolog
{
    "require": {
        "monolog/monolog": "1.2.*"
    }
}

Versions

라이브러리의 다른 승인된 버전은 다음에 의해 정의됩니다:

기호 역할 (버전 번호 앞에 위치) 예제
>= 버전 번호를 확장하는 것을 허용합니다. 게다가, 다음을 사용할 수 있습니다: >, <, <=. "php": ">=5.5.9" PHP 8을 포함합니다.
!= 버전을 제외합니다.  
- 버전의 범위를 정의합니다.  
* 모든 하위버전을 확장합니다. "symfony/symfony": "3.1.*" 3.1.1을 포함합니다.
~ 같은 수준의 다음 버전으로 확장합니다. "doctrine/orm": "~2.5" 역시 2.6에 해당하지만, 2.4도 아니고 3.0도 아닙니다.
^ 오직 하위 버전과의 호환성이 있으면, 물결표와 같습니다.  

Supported frameworks

Troubleshooting

업데이트 오류

미디어위키 확장에서 외부 라이브러리를 업데이트하면 다음 오류가 생깁니다.

  • sudo composer update --no-dev

Failed to decode response: zlib_decode(): data error Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info

문제의 원인을 찾아보지 않았고, 다음과 같이 해결할 수 있습니다.

  • sudo composer clear-cache
  • sudo composer self-update

External links