패키지와 패키지 매니저
리눅스 운영체제에서는 패키지와 패키지 매니저를 지원한다.
리눅스 패키지는 여러 파일을 모아 하나의 파일로 저장하고 있는 압축파일이다. 각 패키지 안에 들어 있는 파일들의 구성은 다음과 같다.
- 프로그램 파일
- 프로그램 설치 파일
- 프로그램 설치 설명서
- 프로그램에 대한 정보를 담은 파일
패키지 안에는 하나의 프로그램이 정상적으로 설치되고 동작하기 위한 모든 파일들이 압축되어 있으며, 프로그램에 대한 정보도 담겨 있다.
따라서, A라는 프로그램을 설치하기 위해 B라는 프로그램이 필요하다는 가정을 하고, B라는 패키지가 설치되지 않은 상태에서 A라는 프로그램을 설치한다면, 패키지에 포함된 정보를 통해 프로그램 B를 먼저 설치하고 나서 프로그램 A를 설치한다.
패키지 매니저는 패키지의 설치, 변경, 삭제 등을 편리하게 관리할 수 있도록 해주는 도구이다. 사용자가 패키지 매니저를 통해 특정 프로그램의 설치를 요청하면, 패키지 매니저는 패키지가 저장된 위치에서 패키지를 다운로드하여 설치 프로그램을 실행한다.
즉, 리눅스 패키지와 패키지 매니저는 스마트폰의 어플리케이션과 앱스토어와 같은 역할을 한다.
스마트폰에서 앱스토어 역할을 하는 리눅스의 패키지 매니저는 대표적으로 apt와 rpm이 있다.
apt는 데비안 계열의 리눅스 운영체제에서 사용되고, rpm은 레드햇 계열의 리눅스 운영체제에서 사용된다. 필자는 우분투(데비안 계열 운영체제)를 활용한 apt 사용하는 방법에 대해서 알아보겠다.
apt 명령어
우분투는 기본적으로 apt라는 패키지 매니저가 내장되어 있다. 터미널 창에서 프롬프트에 apt라고 입력함으로 사용이 가능하다.
apt 명령어
apt 패키지 매니저의 주요 명령어 (★ : 관리자 권한 필요)
- apt update : 패키지를 다운로드할 수 있는 저장소의 최신 정보를 업데이트한다. (★)
- apt list --upgradable : 업그레이드가 가능한 패키지 목록을 출력한다.
- apt upgrade : 전체 패키지를 업그레이드한다. (★)
- apt --only-upgrade install 패키지 이름 : 특정 패키지만 업그레이드한다. (★)
- apt install 패키지 이름 : 특정 패키지를 설치한다. (★)
- apt list --installed : 설치된 패키지 목록을 출력한다.
- apt search 검색어 : 패키지를 검색한다.
- apt show 패키지 이름 : 특정 패키지에 대한 정보를 확인한다.
- apt remove 패키지 이름 : 특정 패키지를 삭제한다. (★)
관리자 권한 사용하기
패키지 설치/삭제 등 관리자 권한이 필요한 작업을 진행할 때 sudo 명령어를 이용해서 관리자 권한을 획득해야 한다. 관리자가 아닌 상태에서 설치 명령을 실행할 경우 에러가 발생한다.
따라서, 관리자 권한이 필요한 경우, sudo 명령어를 앞에 붙여 사용하도록 하자.
sudo apt update
sudo apt install 패키지이름
sudo apt remove 패키지이름
sudo apt upgrade
sudo apt --only-upgrade install 패키지이름
다음과 같이 명령어를 실행한 후엔 관리자 암호를 입력해야 설치를 할 수 있다. 비밀번호 입력 시 아무것도 출력되지 않으나, 입력은 정상적으로 되고 있으니 당황하지 말고 비밀번호를 입력 후 엔터키를 누르면 된다.
또한, 중간에 설치를 멈춘 상태에서 ‘Do you want to continue? [Y/N]’ 이라는 문구가 뜬다면, 대부분의 경우가 운영체제에서 패키지를 설치하기 위한 추가적인 데이터를 받아야 한다는 것이다. Y를 입력한 후 엔터를 누르면 다음 설치가 진행한다.
만약, 너무 시간이 오래 걸리거나 위의 안내문구가 뜨지 않은 상태에서 멈춘 시간이 오래되었다면 Ctrl + C 키를 입력하여 강제 종료가 가능하다.
'데브옵스(DevOps) > Linux' 카테고리의 다른 글
[AWS] 프리티어 EC2 인스턴스 메모리 부족 현상 해결하기(램 성능 개선) (5) | 2023.01.13 |
---|---|
[Linux] 리눅스의 사용자 권한과 chmod 명령어 (0) | 2022.08.25 |
[Linux] 리눅스의 텍스트 에디터 nano (0) | 2022.08.24 |
[Linux] 리눅스의 관리자 권한과 절대 경로 및 상대 경로 (0) | 2022.08.24 |
[Linux] 리눅스 CLI 기본 개념과 명령어 정리 (0) | 2022.08.24 |