리눅스의 패키지
패키지 리눅스에서 소프트웨어가 제공되는 형태 |
바이너리 (App과 유사) 다운로드/설치 후 바로 사용 가능한 형태 |
소스 코드 다운로드 후 빌드(컴파일) 필요 |
패키지 - 우분투 패키지 파일
deb 파일
: 우분투 등의 데비안 계열 리눅스 배포판에서 사용하는 소프트웨어 패키지 파일
deb 파일 예시 (Apache 서버 패키지)
패키지 - 우분투 패키지 카테고리
Main : 무료 및 오픈소스 (우분투 지원 o)
Universe : 무료 및 오픈소스 (우분투 지원 x)
Restricted : 법적 제한이 있는 소프트웨어 (우분투 지원 o) - 장치 드라이버 등
Multiverse : 법적 제한이 있는 소프트웨어 (우분투 지원 x)
패키지-저장소 Repository
Official (공식 저장소) 운영체제 개발사 또는 프로젝트에서 제공 |
ETC (기타 저장소) 공식 저장소에 없는 소프트웨어나 버전 업그레이드 제공 |
패키지 - 우분투 패키지 관리도구
dpkg (Debian Package) |
APT (Advanced Package Tool) |
- 패키지의 설치, 제거 등 관리 수행 - 패키지는 직접 다운로드 - 사용자가 의존성 문제 직접 해결 필요 |
- dpkg의 단점 보완 - 설정 파일에 등록된 저장소에서 패키지 다운로드 후 설치 - 패키지의 의존성 자동설치 -패키지 관리 자동화 |
패키지 관리 명령 - dpkg
■ dpkg
기능: 데비안 계열 리눅스의 패키지 관리
형식: dpkg[옵션] [파일명 또는 패키지 명]
옵션 | 설명 |
- l //dpkg -l | 설치된 패키지 목록 출력 |
- L // dpkg -L coreutils | 패키지에서 설치된 파일의 목록 출력 |
- s // dpkg -s coreutils | 패키지 상세정보 출력 |
- S // dpkg -S /bin/ls | 경로명의 파일이 포함된 패키지 출력 |
-i , -r , -P | 패키지의 설치/ 삭제는 주로 apt 사용 |
패키지 관리 명령 - apt
■ apt-get
기능: 우분투 리눅스에서 소프트웨어 패키지를 관리
형식: apt -get[옵션] [서브 명령][패키지명]
서브 명령 | 설명 |
update // apt-get update | 패키지 저장소에서 새로운 패키지 정보를 업데이트 |
upgrade // apt-get upgrade | 현재 설치된 모든 패키지를 최신 버전으로 업그레이드 |
install // apt-get install nodejs | 패키지를 설치 (의존성 패키지 포함) |
remove //apt-get remove nodejs | 패키지를 삭제 (의존성 패키지 포함) |
automove // apt-get autoremove | 오래되거나 불필요한 패키지를 삭제 |
■ apt-cache
기능: 패키지 데이터베이스에서 정보를 검색하여 출력
형식: apt-cache[옵션] [서브 명령][패키지명]
서브 명령 | 설명 |
search //apt-cache serach nodejs | 패키지의 이름과 간단한 설명 검색 |
show // apt-cache show nodejs | 패키지 관련 상세 정보 출력 |
showpkg | 패키지에 대한 의존성/역의존성 정보 출력 |
depends | 지정한 패키지가 의존하는 패키지(의존성) 목록 출력 |
rdepends | 지정한 패키지에 의존하는 패키지(역의존성) 목록 출력 |
policy //apt-chache poicy nodejs | 패키지의 설치 상태 및 이를 포함하는 저장소 정보 출력 |
pkgnames | 사용 가능한 전체 패키지의 이름 출력 |
파일 다운로드 명령
wget 기능: 주어진 URL에서 파일을 다운로드하여 저장 형식: wget[옵션][URL] *리눅스 커널 v6.2.11 소스 코드 다운로드 : wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.2.11.tar.xz |
HTTP 통신 명령
curl 기능: 주어진 URL로 HTTP 등의 인터넷 통신 수행 형식: curl [옵션] [URL] |
파일 아카이브 명령
■ tar (Type ARchive)
기능: (여러) 파일과 디렉토리를 하나의 파일로 묶어 아카이브(tar 파일)를 생성
형식: tar [기능/옵션] [아카이브 파일] [파일 또는 디렉토리명]
1. root 계정의 bash 설정 파일을 tar로 묶음
tar cvf bash_conf.tar .bash_history .bashrc .profile
생성되는 파일 묶이는 대상
2. tar 파일의 내용 확인
tar tvf bash_conf.tar
3. tar 파일 해제 (풀기)
tar xvf bash_conf.tar
4. tar 파일로 묶은 후 gzip 압축
tar czvf bash_conf.tar.gz .bash_history .bashrc .profile
5. tar 파일로 묶은 후 bzip2 압축
tar cjvf bash_conf.tar.bz2 .bash_histroy .bashrc .profile
파일 압축 명령
gzip (Gun ZIP)
기능: gzip 형식으로 파일 압축
형식: gzip [옵션] [파일명]
gunzip
기능 : gzip 파일 압축 해제
형식: gunzip [옵션] [파일명]
Appendix - 레드햇 계열 리눅스 패키지 관리
RPM (RedHat Package Manager)
1. CentOS, Fedora등의 레드햇 계열에서 사용하는 패키지 파일
2. RPM 파일을 설치, 제거할 수 있는 패키지 관리 도구 (우분투의 dpkg)
■ rpm
기능 : rpm 패키지 관리 (우분투의 dpkg와 같은 역할)
명령 | 설명 |
rpm -i <패키지 파일.rpm> | 패키지 설치 (install) |
rpm -e <패키지 이름> | 패키지 제거 (erase) |
rpm -q <패키지 이름> | 패키지 정보 조회 (query) |
rpm -qa | 시스템에 설치된 모든 패키지 조회 |
rpm -qf <파일 경로> | 특정 파일이 어떤 패키지에 속해있는지 조회 |
rpm -qi<패키지 이름> | 패키지 상세 정보 표시 |
rpm -ql <패키지 이름> | 특정 패키지에 포함된 파일 목록 표시 |
rpm -q --changelog <패키지 이름> | 설치된 패키지의 변경 내역 표시 |
■ yum (Yellowdog Updater Modified)
기능: 레드햇 계열 리눅스에서 패키지 관리 (우분투의 apt와 같은 역할)
형식: yum [옵션] [명령] [패키지명]
명령 | 설명 |
yum install <패키지 이름> | 패키지 설치 (install) |
yum update | 전체 패키지 업데이트 |
yum remove <패키지 이름> | 설치된 패키지 제거 |
yum info <패키지 이름> | 설치된 패키지 정보 조회 |
yum search <패키지 이름> | 저장소에서 패키지 검색 |
yum list | 설치 되었거나 설치 가능한 패키지 목록 확인 |
yum deplist <패키지 이름> | 패키지의 의존성 확인 |
yum group install <패키지 이름> | 그룹으로 묶인 패키지를 한번에 설치 |
아카이브 : 여러 파일인 ㅏ디렉토리를 한 곳에 모아서 하나의 파일로 만드는 것 - tar
압축: 데이터를 더 작은 크기로 압축하여 저장하거나 전송할 때 사용 - gzip, bzip2, zip
일반적으로 아카이브를 먼저 생성하고, 다음 압축 적용. (tar.gz / tar.bz2)
'강의 > DevOps Linux' 카테고리의 다른 글
[DevOps-Linux] 7. Shell -1 (0) | 2023.07.15 |
---|---|
[DevOps-Linux] 5. 파일 시스템 (0) | 2023.07.12 |
[DevOps-Linux] 1. 서버 생성 및 기본 사용 (0) | 2023.07.10 |
[DevOps-Linux] 6. 프로세스와 서비스- 4. 프로세스 동작 전환 및 종료 (0) | 2023.07.09 |
[DevOps-Linux] 6. 프로세스와 서비스- 3. FOREGROUND와 BACKGROUND (0) | 2023.07.09 |