프로그램 설치하기 - 패키지 매니저
윈도우와 리눅스에서의 프로그램 설치 비교
윈도우에서는 프로그램을 설치하기 위해 해당 프로그램을 만드는 공식 사이트로부터 설치파일을 다운받아 이를 설치하며 이를 실행하기 위해 필요한 소프트웨어들은 별도로 설치해줘야 한다. 그리고 설치된 프로그램은 스스로 최신 버전의 출시를 사용자에게 알려 최신화하게 유도하거나, 사용자가 공식 사이트를 통해 프로그램의 업데이트가 존재함을 인지하고 수동으로 업데이트를 하는 방식으로 최신화 관리된다. 설치된 프로그램을 제거하기 위해서는 제어판의 설치된 프로그램 목록에서 하나씩 제거하는 방식을 사용해야 한다.
리눅스에서의 프로그램 관리도 근본적으로 윈도우에서 수행하는 것과 동일하다. 물론 몇 가지 차이가 존재한다. 먼저 리눅스에서는 프로그램을 패키지라고 부른다. 이런 패키지들을 설치, 업그레이드, 제거, 의존성 관리하는데 사용하는 소프트웨어를 패키지 매니저라고 한다. 패키지 매니저는 CLI 방식으로 사용할 수 있으며 리눅스 배포판들은 서로 다른 패키지 매니저 소프트웨어를 사용한다. 예를들어, 데비안 기반 배포판들은 apt(혹은 apt-get)를 , 페도라 기반 배포판들은 dnf를, 아치 기반 배포판들은 pacman을 사용한다. 다양한 배포판들의 패키지 매니저와 그 명령어들은 여기서 확인할 수 있다.
리눅스의 패키지 매니저 방식의 강점
이와 같은 패키지 매니저 방식은 다음과 같은 강점을 가진다.
- 현재 갖고있는 패키지들을 파악하고 그 의존성 관계를 확인한 후 필요한 패키지들만을 다운로드하므로 효율적이다.
- 패키지를 제거할 경우 그 의존성 패키지들을 자동으로 제거하는 기능이 있다.
- Repository의 패키지들은 배포판의 관리 주체에 의해 검토된 후 repository에 업로드되므로 어느정도 안정성과 보안성이 보장된다.
- 배포판 관리 주체들에 의해 지속적인 보안 업데이트를 받는다.
- CLI로 모든 관리작업을 수행할 수 있으므로 자동화가 용이하다.
- 모든 패키지이 하나의 repository에 업로드되므로 번거롭게 각기 다른 공식 사이트에서 다운받지 않아도 된다.
패키지 매니저의 기능과 예시 – 데비안 apt 기준으로
본 포스팅에서는 가장 많은 사람들이 사용하는 데비안의 apt를 기준으로 설명한다. 앞서 윈도우의 사례로 설명한 것과 리눅스의 패키지 관리자는 패키지들을 관리하는 모든 기능을 갖고 있다. 각 기능들을 수행하는 명령어와 그 예시를 정리하면 다음의 표와 같다.
| 수행하는 기능 | 명령어 | 예시 | 예시에 대한 해설 |
|---|---|---|---|
| 패키지 검색 | apt search ${PKG} | apt search nvidia | nvidia를 포함하는 패키지들을 데이터베이스에서 검색함. |
| 패키지 설치 | apt install ${PKG} | apt install tmux | tmux를 설치함. |
| 패키지 제거 | apt remove ${PKG} | apt remove tmux | tmux를 제거함. |
| 패키지 데이터베이스 업데이트 | apt update | apt update | 데이터베이스를 다운로드하고 설치된 패키지들의 업그레이드 필요 유무를 확인함. |
| 패키지 업데이트(전체) | apt upgrade | apt upgrade | 최신화된 업데이트에 기반해 설치된 패키지들 모두를 업그레이드함. |
| 특정 패키지 및 그 의존 패키지 제거 | apt autoremove ${PKG} | apt autoremove tmux | tmux와 그의 의존 패키지들 모두를 제거함. |
| 사용되지 않는 의존 패키지들의 제거 | apt autoremove | apt autoremove | 현재 사용되지 않는 의존 패키지들 모두를 제거함. |
| 설치되어있는 패키지들의 목록 출력 | apt list | apt list | 모든 패키지들의 목록을 터미널에 출력함. |
이외 더 많은 기능이 존재하며 이는 참고자료에서 확인할 수 있다.