패키지 매니저( Pakage Manager ) 란?

doomchit_3·2020년 10월 25일
0

0 백과사전

목록 보기
2/4

🗃 패키지 매니저란?

  • 패키지 매니저(Pakage Manager) 는 패키지를 관리하는 작업을 자동화, 안전처리 하기 위해 사용되는 도구

  • 패키지 관리란? 패키지를 설치, 업데이트, 수정, 삭제 하는 작업

  • 패키지란? 코드의 배포를 위해서 사용되는 코드의 묶음

  • 패키지는 라이브러리와 비슷한 개념이다. 라이브러리는 코드 작성을 위해 필요한 코드모음이며, 패키지는 코드의 배포를 위해 사용되는 코드모음

  • 패키지는 일반적으로 다음을 포함한다 < 라이브러리, 실행파일, 컴파일한 binary, 환경설정(configuration) 정보, 의존성(dependency) 정보 >

  • 패키지 매니저의 공통적인 수행내용은 다음과 같다 < dependency 관리, 패키지 보안관리(신뢰,손상 관련 보장), 기능에 따른 분류, 압축해제, Software repository 로부터 패키기 찾기, 다운로드, 설치, 업데이트 >

  • 의존성이란? 어떤 패키지를 동작하기 위해서 필수적으로 필요한 다른 패키지를 의존성(dependency) 라고 한다

  • 의존성을 수동으로 관리하기는 불가능하다. 수 많은 의존성이 존재하기 때문인데, 그래서 각각 패키지가 자신의 의존성 정보를 가지게 하여 패키지 매니저가 자동으로 설치하도록 한다

  • Software repository 는 패키지를 저장하고 관리하는 저장소

  • Software repository 는 성능문제와 위기상황 대처를 위해서 여러개로 분리되어 있으며, 각각의 저장소가 동일한 기능을 수행한다

  • Software repository에 대한 위치 정보를 관리하는 환경 설정 파일이 존재하므로, 그 경로를 참고하여 접근하는 방식을 사용한다

  • 대표적으로 Ubuntu 운영체제의 apt(Advanced Package Tool) 가 대표적인 운영체제 패키지 매니저이다. 콘솔을 통해 sudo apt install 명령을 사용하면 패키지를 설치할 수 있다

  • Python과 PHP, Node.js 등 많은 프로그래밍 언어들은 각각 자신만의 패키지 매니저와 software repository를 가지고 있다

  • 각 언어, 패키지 매니저, software repository 는 다음과 같다

    1. Python-> pip -> PyPI

    2. PHP-> Composer -> Packagist

    3. Node.js -> NPM,Yarn -> NPM,Yarn

    4. Java -> Maven,Gradle -> Maven

    5. Ruby -> RubyGems,Bundler -> RubyGems,Bundler

참고

Npm vs Yarn
pakage manager?

profile
Walk it like I talk it x 3 ___#SoftwareEngineer

0개의 댓글