Linux Package Tool 이해와 사용
linux
window 에서 오피스 문서 프로그램을 사용하려면, 오피스 프로그램을 다운받아 설치하고 실행했다.
리눅스에서는 이런 과정을 package 로 처리한다.
package
- 관련있는 파일 모음
linux package 정의
- 프로그램이 실행하는데 필요한 파일(설치, 설정, 라이브러리 등) 모음
- 윈도우의 설치, 삭제 프로그램 파일에 해당한다.
- 리눅스는 패키지 단위로 프로그램을 관리한다.
linux package 구분
- 소스 패키지(Source Package)
- 오픈 라이브러리
- 소스코드 수정 가능
- 실행 환경에 맞게 컴파일 하여 사용 가능
- 바이너리 패키지(Binary Package)
- 컴파일 된 실행 파일로, 다운 후 곧바로 실행 가능
- 실행 환경과 맞지 않는다면 실행 문제 발생
- 패키지 의존성(별도의 라이브러리가 추가적으로 필요한 경우) 문제 발생
linux packaging system
- Debian 계열(Debain, Ubuntu, Linux Mint 등)
- 패키지 파일 확장자: *. deb
- 데비안 패키지 (.deb) 는 많은 정보가 포함
파일명 rule: [파일명]_[버전]-[리비전]_[아키텍처].[확장자]
- red hat linux 계열(Red hat, Fedora, CentOS 등)
- RPM 패키지 파일 확장자: *rpm
linux package tool
- Debian 계열(Debain, Ubuntu, Linux Mint 등)
- Low Level Package Tool(저수준 패키지 도구)
- dpkg: debian package Manager
- 패키지 파일 설치,제거만 가능
- 패키지 간의 의존성 문제를 해결하지 못한다.
- Hight Level Package Tool(고수준 패키지 도구)
- apt (advanced package tool)
- 패키지 파일 설치,제거
- 다운로드 가능한 패키지들을 검색
- 패키지 의존성(Package Dependencies) 파악 후 자동 설치, 삭제
- apt-get
- apt 에 옵션과 기능 추가
- apt 와 내부 동작 동일
- apt (advanced package tool)
- Low Level Package Tool(저수준 패키지 도구)
- red hat linux 계열(Red hat, Fedora, CentOS 등)
- 저수준: rpm
- 고수준: yum, dnf
Snap
- Ubuntu 개발사인 캐노니컬(Canonical)에서 개발한 최신 패키지 관리 방식
- Snap 패키지는 .snap 형식
APT 패키지는 일반적으로 .deb 형식 - Snap Store 패키지를 APT에 사용 가능
완벽히 상호 호환되지 않음 - Snap 패키지는 모든 종속성을 포함
APT 패키지는 때때로 충돌이나 버전 불일치 - Snap 은 최신 관리 버전으로, APT 기반의 레거시와 호환되지 않는다.
여전히 APT 방식이 주를 이룬다.
dpkg 주요 명령어
dpkg: debian package Manager | 설명 | 참고 |
dpkg --help |
dpkg 명령어 도움말 | 여기 다 있음 |
dpkg -i <package.deb> | package.deb 설치 | -i install |
dpkg -l | 설치된 패키지 목록 출력 | -l list |
dpkg -l <package> | <package> 설치 상태 | * 모두 검색 |
dpkg -L<package> | <package> 설치 경로 출력 | -L Location |
dpkg -s <package> | <package> 상태 | -s status |
dpkg -r <package> | <package> 삭제 | -r remove |
dpkg -P <package> | <package> 와 설정 정보 모두 삭제 | -P Purge |
dpkg <-r | -P> --force-depends <package> | <package> 패키지 디펜던시를 무시하고 삭제 | |
dpkg -x <.deb> <dst dir> | .deb 파일을 지정한 <dst dir> 에 풀기 | -x eXtract |
apt-get 주요 명령어
apt: advanced package tool | 설명 | 참고 |
sudo apt-get update | 저장소 패키지의 정보 업데이트 | /etc/apt/sources.list |
sudo apt-get upgrade | 설치되어 있는 패키지 업그레이드 | |
sudo apt-get upgrade <package> | 특정 패키지 업데이트 | |
sudo apt-get dist-upgrade | ||
sudo apt-get install <package> <package> | <package> <package> 설치 | |
sudo apt-get install <package>=<version> | <package> 특정 version 설치 | |
sudo apt-get --reinstall install <package> | <package> 재설치 | |
sudo apt-get remove <package> | <package> 삭제, #config 설정 제외 | 재설치, 이전 설정 사용 |
sudo apt-get purge <package> | <package> 삭제, #config 설정 포함 (완전 삭제) | |
sudo apt-get autoremove | 의존성 없어 사용되지 않는 package 자동 삭제 | |
sudo apt-get autoclean | 불완전하게 다운된 <package> 자동으로 삭제 | |
sudo apt-cache search <package> | <package> 검색 | |
sudo apt-cache depends <package> | 의존성을 검사하여 추가 필요 패키지 찾기 | install 쓰면 자동 설치 |
Snap 사용법