패키지 매니저


소프트웨어 설치/관리는 리눅스 시스템 관리자의 중요한 업무중 하나입니다.


예전에는 오픈소스의 개발자가 소스를 배포할 때 tar 로 묶은 후에 gzip 으로 압축한 단일 .tar.gz 파일( 줄여서 .tgz 확장자를 갖기도 하며 이 파일들을 Source Tarball이라 부릅니다. )을 FTP 나 HTTP 를 통해 배포했고 관리자는  이 파일을 다운로드한 후에 압축을 해제하고 autoconf/automake 로 빌드 환경을 구성하고 make 를 사용하여 빌드한 후에 설치하는 경우가 많았습니다.


이 방법은 최신 버전을 사용할 수 있고 리눅스의 빌드 환경을 이해할 수 있다는 장점이 있지만 다음과 같은 단점이 있었습니다.

  • 소스 컴파일이 번거롭고 컴파일이 안 될 경우 소스를 직접 수정해야 하는등 많은 시간을 소모할 수 있음
  • 관리하는 서버가 여러 대일 경우 비슷한 설치 작업을 반복해야 함
  • 소스에 버그나 보안 문제가 발생할 경우 패치와 업그레이드가 어려우며 여러 서버에서 반복 작업을 수행해야 함.


예전에는 보안 문제가 지금처럼 심각하지 않았으므로 버그나 보안 패치를 자주 설치하지 않았고 그래도 서비스 운영에 큰 문제가 없었습니다.

오히려 잘 돌아가는 서비스가 패치로 인해 문제가 발생할지 모르므로 연중 행사처럼 패치를 하던 시절도 있었습니다.

(지금은 오라클에 인수된 썬 마이크로 시스템즈의 유닉스인 Solaris 의 경우 패치를 묶은 SUN Recommended patch cluster 를 제공했고 관리자는 개별 패치를 하지 않고 정기적으로 패치 클러스터를 반영했습니다.)


하지만 보안이 중요성이 증대되고 제로데이 공격등 최신 취약점을 응용한 공격이 늘어나고 관리해야 할 서버 대수가 비약적으로 증가한 현재 상황에서는 소스를 컴파일해서 설치하는 것은 피해야 할 방법입니다.


검증된 저장소 사용


배포판에 포함되지 않은 새로운 패키지가 필요하거나 현재보다 높은 버전의 패키지가 필요하다면 외부 저장소에서 먼저 찾아보는 것이 좋습니다.

저장소를 찾을 때는 제품 제조사에서 직접 제공하는 저장소가 있는지 확인한 후에 없을 경우 3rd party 저장소를 찾는 것을 권장합니다.

예로 nginx 나 MySQL, PostgreSQL 등은 RHEL/CentOS 와 Ubuntu용 별도 저장소를 제공하므로 이 곳을 통해서 설치하면 됩니다.


Ubuntu는 PPA - Personal Package Archives 라는 개인들의 저장소에서 최신 패키지를 제공하지만 너무 최신이다 보니 안전성이 검증되지 않은 경우도 있고 PPA 에 잘못된 패키지가 올라갈 경우 문제가 발생할 수 있으므로 운영 시스템에서 사용하기 전에 개발/테스트 시스템에서 해당 패키지를 검증해 보고 사용하는 것을 권장합니다.