본문 바로가기
시큐리티 아카데미

리눅스 6

by christmas mushroom 2024. 7. 19.

리눅스 패키지 관리

□ 패키지 파일의 종류(.deb / .rpm) 을 설치 ⇒ /usr/bin/etc, /use/share ....

 

패키지 관리자

     ■ high-level: dnf, yum, apt

     ■ low-level: rpm, dpkg

소프트웨어 패키지 관리자 설명
dnf (Dandified YUM) Fedora와 CentOS 같은 rpm 기반 시스템에서 사용됨
yum의 다음 세대로 성능과 사용자 경험을 개선함
High-Level 패키지 관리자
yum (Yellowdog Updater Modified) rpm 기반의 시스템에서 패키지를 관리하는데 사용됨
자동 의존성 해결과 업데이트 기능을 제공
High-Level 패키지 관리자
rpm (Redhat Pacakage Manager) 레드햇 배포판 기반 시스템에서 사용됨
소프트웨어 패키지를 설치, 업데이트, 제거하는데 사용됨
yum 또는 dnf 와 함께 사용됨
Low-Level 패키지 관리자
apt (Advanced Package Tool) Debian 및 Ubuntu와 같은 데비안 계열 시스템에서 패키지를 관리하는데 사용됨
저장소에서 소프트웨어 패키지를 검색하고, 설치하고, 업데이트하고, 제거하는 작업을 수행함
High-Level 패키지 관리자
apt ⇒ apt-get, apt-cache
dpkg (Debian Package) Debian 패키지 관리 시스템의 핵심
.deb 파일 형식의 패키지를 직접 설치 및 제거함
일반적으로 apt와 함께 사용됨
Low-Level 패키지 관리자

 

 패키지 관리자 설치와 버전 업그레이드 동작원리

     0. 공식적인 외부 패키지 저장소인 repository 서버로부터 정보(url)를 가져옴

     1. 패키지 정보 ⇒ 저장 (캐시: 미리 읽어 놓은 데이터)

     2. 패키지 파일(.deb, .rpm) 다운로드 ⇒ 임시저장 ⇒ 설치 후 삭제된다

     3. 패키지 설치(install) ⇒ rom, dpkg 통해서 설치된다

     ex) nginx 패키지를 설치 ⇒ 의존성 A, B, C, D 패키지 ⇒ nginx 설치 완료

            ○ 후에 nginx 패키지를 삭제하면 A, B, C, D 는 어떻게 되는가: 다른 곳에서 참조할 수도 있기 때문에 삭제되지 않음

             아무도 의존하지 않은 C, D 패키지가 남았으면 어떻게 비우는가: apt autoremove

             인터넷이 안되는 환경에서 패키지를 설치하려면 따로 패키지 파일( .deb, .rpm)을 가져와 dpkg, rpm 으로 따로 설치해야함

 

     ■ 패키지 버전 업그레이드

        ○ yum update

        ○ apt upgrade

 

     ■ 필요없는 의존성 패키지를 삭제

        ○ yum update --obsoletes

        ○ apt autoremove

 

     ■ 패키지 업데이트와 업그레이드 동작원리
         0. 패키지 저장소 서버 URL 설정파일
              ○ /etc/yum.repo.d/*.repo → 레드햇 계열
              ○ /etc/apt/source.list → 패키지, 저장소, 리포지터리의 url 주소가 적혀있음, 우분투에서 sudo apt update 했을 때 여기서 가져온다
                 /etc/apt/source.list.d/*.list → 요 두개가 우분투 계열인듯
        1. 패키지 정보를 저장하는 폴더
              ○ /var/cache/yum → 레드햇 계열
              ○ /var/lib/apt/lists → 우분투 계열
        2. 패키지 조회
        3. 패키지 파일을 다운로드
        4. 패키지 파일을 dpkg 명령어를 통해서 설치
        5. 설치된 패키지를 확인
              ○ dpkg -l apache2
              ○ dpkg -L apache2
              ○ l의 대소문자 옵션 차이는 ???
        6. 패키지 삭제
              ○ 그냥 싹 다 지우기 (purge)
              ○ 설정파일은 제외하고 지우기 (remove)


        ○  실습 명령어

watch -m 1 ls tree /var/lib/apt/list //다른 터미널에서 채워지는것을 볼 수 있음

sudo rm -rf /var/lib/apt/lists/* //파일을 지워주고
sudo apt update //새로 채워준다

sudo watch -n 1 tree /var/cache/apt/archives //
sudo apt install -y apache2 //


     ■ 패키지 삭제
        ○ CentOS 기반
        ○ Ubuntu 기반
            1) purge: 그냥 싹 다 지우기


            2) remove: 설정파일은 제외하고 지우기

 

        ○  다시 실습하려면?

sudo apt install -y apache2 //다시 apache2를 깐다
sudo apt remove apache2 
ls /etc/apache2 //남아있는지 확인함, 패키지를 remove 명령어로 지웠는데 설정파일이 남아있음을 알 수 있다
sudo apt purge apache2
ls /etc/apache2 //purge 명령어로 지우니까 설정파일도 싹 지원진다.

 

 동작과정

     0. 네트워크 동작 + DNS 서버 설정

     1. 우분투(레드햇) 소프트웨어 패키지 저장소 서버 URL 설정파일

        /etc/apt/sources.list 우분투

        /etc/apt/sources.list.d*/.list 우분투?

        /etc/yum.repo.d/*.repo …. 레드햇?

     2. 패키지 메타 정보(패키지 이름, 버전, ..., 리스트 등)가 저장되는 폴더는 무엇인가

        /var/lib/apt/lists/ … 우분투

        /var/cache/yum/ 레드햇

        /var/cache/dnf/ 레드햇?

     3. 패키지 조회 → apt search / yum, dnf  search

         패키지 조회가 안되는 이유

          - 정보가 없어서

          - 정보는 있는데 옛날꺼라서

          - 정보도 있고 최신이지만 추가 패키지 저장소 URL 설정이 안되어 있어서 // .repo 파일 또는 .list 파일 (URL 설정파일)이 없기 때문에

     4. 패키지 파일(.rpm 또는 .deb) 임시 다운로드를 받는다 어디에??

        /var/vache/apt/archive/  우분투

        /var/cache/yum 레드햇

        /var/cache/dnf/ … 레드햇

     5. 패키지 파일( .rpm 또는 .deb)들을 dpkg, rpm 명령어를 통해 설치함 (install)

     6. 패키지 파일 삭제할 때 (우분투)

        apt purge

        apt remove → 설정파일은 제외하고 삭제한다

'시큐리티 아카데미' 카테고리의 다른 글

악성코드분석  (11) 2024.07.22
리눅스 7  (0) 2024.07.19
리눅스 5  (0) 2024.07.18
리눅스 4  (0) 2024.07.18
리눅스 3  (0) 2024.07.18