[Ubuntu] 서비스와 패키지의 이해
서비스란 웹 서버, 데이터베이스 서버 등을 운영하기 위한 서버 프로세스로 거의 모든 서비스는 백그라운드 프로세스 형태로 가동됩니다. 서버 운영을 위해 리눅스를 설치하는 경우 서비스는 곧 설치,운영해야 하는 소프트웨어라고 볼 수 있습니다.
패키지는 배포에 용이하도록 프로그램을 압축한 형태를 의미하는데, 리눅스에서는 설치 프로그램으로 볼 수 있습니다. 우분투 리눅스에서 패키지를 설치하기 위해서는 apt-get
명령을 사용합니다.
#01. 서비스
1. 서비스 = 데몬(Daemon)
- 웹 서버, 데이터베이스 서버 등을 운영하기 위한 서버 프로세스
서비스, 데몬, 서버 프로세스 는 모두 동일한 개념입니다.
2. 서버 프로세스
- 백그라운드로 실행되는 프로세스
- 서비스 매니저 프로그램인 systemd 프로그램이 운영함
- 각 프로세스가 독자적인 하나의 동작을 제공함
- http서비스는 웹 서버 동작
- mysqld는 데이터베이스 서버 동작
3. 서비스 관리
1) 서비스 시작, 중지 관련 스크립트 파일 위치
/usr/lib/systemd/system
디렉토리에 존재- 파일명 형식 :
서비스이름.service
- 실행 스크립트 파일은
systemctl
명령어에 의해 제어됨
2) 실행 및 종료
systemctl
명령에 옵션을 적용하여 사용함- 서비스 운영은 root 권한을 통해서만 수행 가능하므로 명령어 앞에
sudu
를 추가해야 한다.
$ systemctl 옵션 서비스명
서비스 시작하기
$ sudo systemctl start 서비스명
서비스 중지하기
$ sudo systemctl stop 서비스명
서비스 재시작하기
$ sudo systemctl restart 서비스명
부팅시 자동 실행 등록
$ sudo systemctl enable 서비스명
부팅시 자동 실행 등록 해제
$ sudo systemctl disable 서비스명
서비스 가동 상태 확인
$ sudo systemctl status 서비스명
부팅시 자동 실행이 등록된 서비스 목록 확인
$ sudo systemctl list-unit-files
출력 결과가 너무 많을 수 있으므로 grep
명령을 결합하여 출력결과에서 원하는 행만 검색해서 확인할 수 있다.
$ sudo systemctl list-unit-files | grep mysql
위 실행 결과는 예시일 뿐 입니다. 아직 mysql을 설치하지 않았기 때문에 실제 실습을 수행할 수는 없습니다.
#02. 리눅스 패키지(Linux Package)
- 리눅스 시스템에서 소프트웨어를 실행하는데 필요한 파일들(실행 파일, 설정 파일, 라이브러리 등)이 담겨 있는 설치 파일 묶음
- 공인된 저장소(Repository)에 등록되어 있는 패키지를 인터넷을 통해 내려받아 시스템에 설치한다
1. 패키지 관리자
- 패키지의 설치, 업그레이드 삭제 등을 수행하여 패키지를 관리하는 목적의 프로그램
- apt-get(ubuntu), yum(RedHat), Homebrew(Mac), Chocolatey(Window), NPM(Node), Yarn(Node), PIP(Python) 등이 있다.
2. apt-get
- apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 패키지 관리 명령어 도구
1) 패키지 인덱스 정보 업데이트
- apt-get은 인덱스를 가지고 있는데 이 인덱스는
/etc/apt/sources.list
에 존재 - 이곳에 저장된 저장소에서 사용할 패키지의 정보를 얻는다
$ sudo apt-get update
2) 설치된 패키지 업그레이드
$ sudo apt-get upgrade
3) 의존성검사하며 설치하기
$ sudo apt-get dist-upgrade
4) 패키지 설치
$ sudo apt-get install 패키지이름
5) 패키지 재설치
$ sudo apt-get --reinstall install 패키지이름
6) 패키지 삭제 : 설정파일은 지우지 않음
$ sudo apt-get remove -y 패키지이름
7) 설정파일까지 모두 지움
$ sudo apt-get purge -y 패키지이름
8) 패키지 검색
$ sudo apt-cache search 패키지이름
9) 패키지 정보 보기
$ sudo apt-cache show 패키지이름