Jin's Dev Story

[리눅스마스터1급 - 1차] 2과목 - 4-4. 소프트웨어 설치 및 관리 본문

자격증 & 공부/리눅스마스터 1급

[리눅스마스터1급 - 1차] 2과목 - 4-4. 소프트웨어 설치 및 관리

woojin._. 2024. 6. 13. 13:46

4. 소프트웨어 설치 및 관리

4-1. 패키지를 통한 소프트웨어 설치

  1) rpm 명령어

    - RPM : Redhat Package Manager의 약자로 레드햇에서 만든 패키지 관리 도구 확장자가 rpm인 패키지를 관리

    - RPM 패키지 이름 구성

    - 주요 옵션

       1) 설치 업그레이드 관련 옵션

           : [-i PACKAGE.rpm] : 패키지 설치

           : [-U] : 패키지 업그레이드

           : [-h ] : 해시 기호(#)를 출력하여 진행도를 보기 쉽게 출력

           : [-v] : 자세하게 출력

           : [--replacepkgs] : 패키지가 설치가 되어있어도 강제로 설치

           : [--replacefiles] : 패키지의 파일이 설치가 되어있어도 강제로 설치

           : [--nodeps] : 의존성을 무시

           : [--oldpackage] : 구버전으로 다운그레이드

           : [--rebuilddb] : RPM 데이터베이스 업데이트

           : [--force] : [replacepkgs], [replacefiles], [oldpackage] 옵션을 같이 사용한 것과 동일

 

       2) 질의 관련 옵션 -> q와 같이 사용

           : [-a] : 전체 패키지 목록 질의

           : [-f FILE] : 지정한 파일이 속한 패키지 질의

           : [-i] : 자세한 상세정보 질의

           : [-p PACKAGE] : 지정한 패키지의 정보 질의

           : [-l PACKAGE : 지정한 패키지가 설치한 파일 목록 질의

           : [-R PACKAGE] : 지정한 패키지의 의존성 질의

           : [-c] : 해당 패키지의 설정 파일이나 스크립트 파일 출력

 

       3) 삭제 옵션

           : [-e PACKAGE] : 지정한 패키지 삭제

 

       4) 검증 옵션

           : [-V PACKAGE] : 지정한 패키지 무결성 검사

           : 출력 결과가 없으면 문제가 없는 것

    - 사용 예제

        # rpm ivh gnome-sudoku-3.29.2-3.fc29.aarch64.rpm ->  gnome-sudoku 설치

        # rpm Uvh gnome-sudoku-3.29.2-3.fc29.aarch64.rpm ->  gnome-sudoku 업그레이드

        # rpm -qa | grep gnome -> 전체 패키지 목록 중에 gnome 문자열이 들어간 패키지 출력

        # rpm qf /usr/bin/gnome-sudoku ->  gnome-sudoku 파일이 어느 패키지에 속해 있는지 확인

        # rpm qi gnome-sudoku ->  gnome-sudoku 패키지의 상세정보 출력

        # rpm e gnome-sudoku ->  gnome-sudoku 패키지 삭제

        # rpm -qc vim-minimal-7.4.629-8.el7_9.x86_64 (설치된 패키지명) -> /etc/virc RPM 내부 설정 파일 확인

        # rpm qcp 파일명.rpm ->  RPM 내부 설정 파일 확인

        # rpm -q --scripts 설치된 패키지명 ->  RPM 내부 스크립트 확인

        # rpm -qp scripts 파일명.rpm ->  RPM 내부 스크립트 확인

        # rpm -qa (설치된 모든 패키지 확인) ->  설치된 패키지 확인

        # rpm -qa | grep 패키지명 ->  설치된 패키지 확인

        # rpm -qi 설치된 패키지명 ->  RPM 패키지 정보 보기(info)

        # rpm qip 파일명.rpm ->  RPM 패키지 정보 보기(info)

        # rpm -ql 설치된 패키지명 ->  RPM 내부 파일 목록 보기(list)

        # rpm qlp 파일명.rpm ->  RPM 내부 파일 목록 보기(list)

        # rpm -qd 설치된 패키지명 ->  RPM 내부 문서파일 확인

        # rpm -qdp 파일명.rpm ->  RPM 내부 문서파일 확인

 

2) yum 명령어 / dnf 명령어

    - RPM 기반의 패키지 관리 도구 ->  레드햇 계열 도구

    - rpm 명령은 패키지 의존성을 확인하여 설치를 일일이 해주어야 하지만 yum 명령은 알아서 확인하여 설치까지 할 수 있도록 도와줌

    - DNF는 페도라 22 버전 이후부터 yum을 대체하는 패키지 관리자

    - 주요 옵션

      : [list] : 설치된 전체 패키지 목록 출력

      : [list all] : 이미 설치되었거나 설치 가능한 모든 패키지 목록 출력

      : [list available] : 설치 가능한 모든 패키지 목록 출력

      : [list updates] : 업데이트 가능한 패키지 목록 출력 ([list-upgrades] 옵션과 같은 기능)

      : [check-update] : 업데이트 가능한 패키지 목록 출력 (([check-upgrade] 옵션과 같은 기능)

      : [list installed] : 설치된 패키지 목록 출력

      : [install] : 지정한 패키지 설치

     : [update] : 지정한 패키지 업데이트 ([upgrade] 옵션과 같은 기능)

      : [info] : 지정한 패키지의 정보 출력      

      : [search] : 지정한 문자열이 들어간 패키지 검색

      : [remove] [erase] : 지정한 패키지 삭제

      : [-y] : 설치과정의 모든 질문에 yes로 대답

      : [-v] : 자세하게 출력

    - yumdownloader 명령어

      : yum 패키지를 설치하지 않고 rpm을 다운로드하는 명령어

      : yum-utils 패키지에 포함

- yum 저장소 디렉터리 : /etc/yum.repos.d

 

  3) dpkg 명령어

    - dpkg는 데비안의 패키지 관리 도구 확장자가 deb인 패키지를 관리

    - 주요 옵션

      : [-i PACKAGE.deb] : 지정한 패키지 설치 (.deb 확장자를 가지는 패키지 전체 파일명으로 설치해야 함)

      : [-l] : 설치된 전체 패키지 목록 출력

      : [-L PACKAGE] : 지정한 패키지가 설치한 파일 출력

      : [-I PACKAGE.deb] : (대문자 i) 지정한 패키지의 정보 출력

      : [-P PACKAGE] : 지정한 패키지 삭제

      : [-S FILE] : 지정한 파일이 속한 패키지 질의

 

  4) apt 명령어

    - APT(Advanced Packaging Tool)은 데비안 계열의 패키지 관리 도구

    - 주요 옵션

      1) apt-get 명령어 옵션

      : [install] : 지정한 패키지 설치

      : [update] : 패키지 정보 업데이트

      : [upgrade] : 설치되어 있는 모든 패키지를 업데이트

      : [reinstall] : [install] 옵션과 함께 사용하여 지정한 패키지 재설치

          EX) # apt-get --reinstall install gnome-sudoku

      : [remove] : 지정한 패키지 삭제. 설정 파일은 삭제하지 않음

: [purge] : [remove] 옵션과 함께 사용하면 설정 파일까지 모두 삭제

          EX) #apt-get purge- -remove gnome-sudoku

2) apt-cache 명령어 옵션

      : [search] : 패키지 검색

      : [show] : 지정한 패키지의 정보 출력

 

4-2. 소스 코드 컴파일

 * 소스 코드 컴파일 및 설치과정

     1. 압축해제

     2. 압축이 해제된 디렉터리로 이동해서 “.configure” 명령으로 소스 코드 컴파일 설정

     3. “make” 명령으로 컴파일

     4. “make install” 명령으로 컴파일한 파일 설치 (root 권한 핑료 : $ su c “make install”

     5. 설치과정 통합해야 할 경우 “make all” 실행

 

  1) gcc 명령어

    - GNUC/C++ 컴파일러

    - 주요 옵션

       : [-o] : 출력 파일 지정

       : [-c] : 오브젝트 파일 생성 컴파일만 진행 (.o)

       : [-v] : 컴파일 과정을 자세하게 출력

       : [-s] : 어셈블리 파일 생성 (.s)

           EX) # gcc -o output.out source.c source.c 파일을 컴파일하여 output.out 실행파일을 생성

                  # gcc -c source.c source.c 파일의 오브젝트 파일(source.o) 생성

                  # gcc source.c source.c 파일을 컴파일하여 실행파일을 생성 (a.out)

 

  2) 소스 파일로 된 패키지 설치하기

    - configure 명령어

       : 제일 첫 번째 단계로 환경설정을 위한 스크립트

       : Makefile을 생성하는 단계

    - make 명령어

       : Makefile 파일에 설정된 정보를 읽어서 여러 개의 소스 파일을 컴파일하고 링크하여 실행파일을 생성하는 명령어

       : 소스 파일을 컴파일하기 위함

    - cmake 명령어

       : 멀티 플랫폼으로 사용할 수 있는 make의 대용품

       : make와 달리 유닉스 계열뿐만 아니라 윈도우 계열의 프로그래밍 도구 (Visual Studio 포함)도 지원

    - make install 명령어

       : 설치를 위한 명령어

       : make 명령어로 생성된 설치파일을 실행하기 위한 과정

    - 일반적인 과정 : configure make make install

    - cmake 과정 : cmake make install

 

  3) 아카이브 압축 관련 명령어

    - tar 명령어

       : 파일 디렉터리를 하나로 묶어 아카이브 파일을 생성

       : [c] : 아카이브 파일 생성

       : [x] : 아카이브 파일에서 원본 파일을 추출

       : [t] : 아카이브 파일의 내용 출력

       : [r] : 기존 아카이브 파일에 새로운 파일 디렉터리 추가

       : [u] : 아카이브 파일의 내용에 변동사항을 업데이트

       : [v] : 처리 중인 파일의 정보를 출력

       : [f] : 아카이브 파일 지정

       : [z] : gzip으로 압축하거나 해제

       : [j] : bzip2로 압축하거나 해제

       : [J] : .xz로 압축하거나 해제

       : [N] : 지정한 날짜 이후의 파일 대상

           EX) # tar cvf test.tar a.txt b.txt a.txt 파일과 b.txt 파일을 test.tar 아카이브 파일로 묶음

                  # tar tvf test.tar test.tar 파일의 내용 출력

                  # tar xvf test.tar test.tar 파일의 원본 파일 추출

                  # tar rvf test.tar -> 기존에 생성되었던 test.tar 파일 다시 압축

 

    - gzip 명령어

       : gz 확장자 형태로 압축

       : [-d] : 압축해제

       : [-l] : 압축 파일의 정보 출력

       : [-v] : 압축 진행 과정을 출력

       : [-9] : 압축률을 최대로 하여 압축 * 1~9까지 지정할 수 있으며 숫자가 클수록 압축률이 크지만 속도가 느림

       : [-k] : 기존 파일을 유지하고 압축함

           EX) # gzip -v test.tar test.tar 파일 압축

       : zcat 명령어 : gz로 압축된 파일의 내용을 출력

       : gunzip 명령어 : .gz로 압축된 파일의 압축해제

    - bzip2 명령어

       : “.bz2” 확장자 형태로 압축

       : gzip 명령어보다 압축률이 높지만 속도가 약간 느림

       : gzip 명령어와 옵션이 동일

       : bzcat 명령어 : .bz2로 압축된 파일의 내용을 출력

       : bunzip2 명령어 : .bz2로 압축된 파일의 압축해제

    - xz 명령어

       : “.xz” 확장자 형태로 압축

       : 압축률이 가장 높은 명령어

       : gzip, bzip2 명령어와 옵션이 동일

       : xzcat 명령어 : .xz로 압축된 파일의 내용을 출력

       : unxz 명령어 : .xz로 압축된 파일의 압축해제

    - zip 명령어

       : “.zip” 확장자 형태로 압축

       : 윈도우와 호환되는 압축 파일

       : 형식 : # zip [압축파일명 zip] [압축할 파일들] 기존 압축 명령과 형식이 다름

       : unzip 명령어 : .zip으로 압축된 파일의 압축해제

    - compress 명령어

       : “.Z” 확장자 형태로 압축

       : uncompress 명령어 : .Z로 압축된 파일의 압축해제

    - 압축 명령어들의 압축률 순서

 

       : xz > bzip2 > gzip > compress

 

 

 


해당 블로그를 참고하여 정리했습니다.

https://bangu4.tistory.com/139

 

[Linux Master] 리눅스 마스터 공부법, 기출문제, 요약집

www.ihd.or.kr/main.do KAIT 자격검정 시험접수 정보통신 자격검정 시험 원서등록을 하실 수 있습니다 www.ihd.or.kr 시험에 대한 모든 내용이 홈페이지에 있지만 다시한번 정리하겠습니다. 1급 기준으로 1

bangu4.tistory.com