。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

강의/DevOps Linux

[DevOps-Linux] 2. 소프트웨어 관리 및 유틸리티

quarrrter 2023. 7. 11. 00:03

리눅스의 패키지 

패키지
리눅스에서 소프트웨어가 제공되는 형태
바이너리 (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)