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 등)
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 와 내부 동작 동일
- red hat linux 계열(Red hat, Fedora, CentOS 등)
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 설정 제외 |
의존성 package 포함 |
sudo apt-get --purge remove <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 사용법