오토에버 클라우드 2기 15일차
오토에버 클라우드 2기 15일차
우분투 패키지
리눅스 우분투에서는 소프트웨어가 소스코드 형식 또는 바로 설치하여 사용할 수 있는 패키지 형태로 제공
소스코드로 배포할 때 는 대부분 하나의 아카이브 파일(압축 파일로 묶은 후 배포)
리눅스에서 사용하는 패키지는 주로 RPM과 deb(우분투는 deb, RPM은 레드헷 계열에서 사용)
우분투는 16버전 이후로 snap도입(deb기존 의존성 문제 해결)
특징
- 바이너리 파일로 되어 있어서 컴파일 할 필요 없음
- 패키지의 파일이 관련 디렉토리로 바로 설치
- 패키지를 삭제할 때 관련 파일을 일괄적으로 삭제 할 수 있음
- 기존에 설치한 패키지를 삭제하지 않고 바로 업그레이드 가능
우분투 패키지의 카테고리
- main: 우분투에 의해 공식적으로 지원되며 자유롭게 배포 가능
- restricted: 우분투에 의해 지원되나 완전한 자유 라이선스 sw는 아님
- universe: 리눅스에서 사용할 수 있는 대부분의 소프트웨어로 자유 sw일 수도 있고 아닐 수도 있으며 기술적 지원을 보장하지 않음
- multiverse: 자유 소프트웨어가 아닌 소프트웨어가 포함되어 있으며 개인이 직접 라이선스를 확인해야 함
우분투 패키지의 이름 구성
패키지명_버전_데비안리비전ubuntu리비전_아키텍쳐.deb
apt-get 명령어
| 명령어 | 설명 |
|---|---|
sudo apt-get update | 패키지 목록 업데이트 (새로운 버전 확인용) |
sudo apt-get upgrade | 설치된 패키지들을 최신 버전으로 업그레이드 |
sudo apt-get dist-upgrade | 업그레이드 + 의존성 변경도 함께 처리 |
sudo apt-get install [패키지명] | 패키지 설치 |
sudo apt-get remove [패키지명] | 패키지 제거 (설정 파일은 유지) |
sudo apt-get purge [패키지명] | 패키지와 설정 파일까지 모두 제거 |
sudo apt-get autoremove | 더 이상 필요 없는 의존성 패키지 자동 제거 |
sudo apt-get autoclean | 다운로드된 오래된 패키지 파일 제거 |
sudo apt-get clean | 패키지 캐시 완전히 삭제 |
apt-cache 명령어
| 명령어 | 설명 |
|---|---|
apt-cache search [키워드] | 키워드로 관련 패키지 검색 |
apt-cache show [패키지명] | 패키지의 상세 정보 출력 |
apt-cache showpkg [패키지명] | 패키지 정보 + 역의존성 정보 출력 |
apt-cache pkgnames | 사용 가능한 모든 패키지 이름 출력 |
apt-cache stats | 캐시 통계 정보 출력 |
apt-cache dump | 현재 설치된 패키지와 관련된 캐시 정보 덤프 출력 |
apt-cache -f search [키워드] | 전체 기록 포함하여 검색 결과 출력 (-f 옵션 사용 시) |
apt-cache -h | 도움말 출력 |
dpkg
dpkg는 Debian 기반의 시스템에서 패키지를 관리하는 데 사용되는 명령어 dpkg [옵션] [패키지명]
| 옵션 | 설명 | 예시 |
|---|---|---|
-i, --install | .deb 패키지를 설치 | dpkg -i package.deb |
-r, --remove | 패키지를 제거하지만 설정 파일 유지 | dpkg -r package-name |
-P, --purge | 패키지 및 설정 파일 완전 삭제 | dpkg -P package-name |
-l, --list | 설치된 패키지 목록 조회 | dpkg -l |
-s, --status | 특정 패키지의 상태 정보 확인 | dpkg -s package-name |
-L, --listfiles | 특정 패키지가 설치한 파일 목록 조회 | dpkg -L package-name |
-S, --search | 파일이 어떤 패키지에 속해 있는지 검색 | dpkg -S /path/to/file |
--configure | 설정이 완료되지 않은 패키지 설정 | dpkg --configure package-name |
-R, --recursive | 디렉토리 내 모든 .deb 패키지 설치 | dpkg -R /path/to/direct |
Snap
snap은 Ubuntu 및 기타 일부 Linux 배포판에서 Snap 패키지를 설치, 관리하는 명령어 Snap은 독립적인 패키지 포맷으로, 라이브러리 의존성을 포함한 애플리케이션을 컨테이너 형태로 배포할 수 있어 설치가 간편하고 충돌이 적다
Snap은 Canonical(우분투 개발사)에서 개발한 범용 패키지 시스템
각 패키지는 sandbox 안에서 동작하며, 다른 앱과 격리됨
APT(기존 우분투 패키지 매니저)와 달리 최신 버전을 제공하는 경우가 많음
snap <command> [options]
| 명령어 | 설명 |
|---|---|
sudo snap install code --classic | VSCode 설치 (classic 권한 필요) |
snap list | 설치된 snap 패키지 목록 |
snap info postman | Postman 패키지 정보 |
sudo snap remove vlc | VLC 제거 |
sudo snap refresh | 모든 snap 앱 최신 버전으로 갱신 |
아카이브
아카이브는 tar, zip 같은 압축 형식으로 묶여 있는 파일 집합을 의미
| 명령어 | 설명 |
|---|---|
tar -cvf archive.tar folder/ | 폴더를 .tar 아카이브로 묶기 |
tar -xvf archive.tar | .tar 아카이브 풀기 |
tar -czvf archive.tar.gz folder/ | .tar.gz로 압축 |
unzip file.zip | .zip 파일 압축 해제 |
zip -r archive.zip folder/ | 폴더를 .zip으로 압축 |
This post is licensed under CC BY 4.0 by the author.