본문 바로가기
클라우드 아키텍트 양성과정

리눅스(CentOS) 소프트웨어 패키지 관리(rpm, yum)

by 종바깅 2021. 4. 26.

소프트웨어 관리

소프트웨어 패키지 관리

  1. 소프트웨어 소스코드 컴파일 : 직접 소스코드에 대한 컴파일 명령을 수행

    • 소프트웨어 소스코드 컴파일
    • 컴파일(Compile) : 프로그래머가 작성하는 소스코드를 기계어로 변환
      • 인터프리터(Interpreter)방식 : 소스코드를 직접 실행
  2. 컴파일 과정을 간편화 : 'Makefile'

     # ./configure        //설치 환경 설정
     # make                    //컴파일
     # make install    //컴파일된 파일 적정위치로 복사
  3. 소프트웨어 패키지

    • 동작환경에 맞게 사전에 컴파일 된 파일을 모아놓은 덩어리
    • 패키지 설치 : 파일을 적정한 위치로 복사, 기타 추가작업 수행
    • 리눅스의 각 배포판에 따라 패키지 설치 방식에 차이가 있음
      • EL : rpm(Redhat package Manager) - http://rpmfind.net/ : rpm 패키지 검색/다운로드
      • Ubuntu : deb
  4. 소프트웨어를 저장소(Repository) 를 통해 설치

    • 저장소(Repository) : 여러가지 필요한 패키지 파일을 보유
    • 패키지 설치시 의존성 문제를 스스로 해결할 수 있음
    • 배포판에 따라 도구 및 패키지의 차이가 있음
      • EL : yum(Yellowdog Update Modified), dnf
      • Ubuntu : apt

rpm(Redhat Package Manager)

  • <소프트웨어 이름>-<버전>-<릴리즈 번호>-<운영채제>-<아키텍처>.rpm 파일 설치시 사용
  • 옵션
    • -i : 설치
    • -v : Verbose(상세한 정보)
    • -h : Hash. 설치 진행상황을 # 기호로 표시
      • [######## ] 30%
    • -U : 업데이트
    • -ivh : 일반적인 설치옵션
      • rpm -ivh wireshark.
    • -Uvh : 일반적인 업데이트 옵션
  • 쿼리옵션(Query) : 질의
    • -q : 쿼리 옵션에 기본 포함
    • -qa : 현재 설치된 패키지 목록 확인
    • -ql : 패키지 설치시 생성된 파일 리스트
    • -qf : 특정 파일이 포함된 패키지 확인
    • -qs : 패키지 내 파일 상태(변경 여부 등)
    • -qd : 패키지 내 문서(매뉴얼) 파일 조회
    • -qc : 패키지 내 설정 파일(Configurration)
    • -qi : 특정 패키지의 상세정보
    • -gR : 의존성(Dependency) 정보 확인

yum(Yellowdog Update Modified)

  • rpm의 문제인 종속성 문제를 쉽게 해결

  • 필요한 패키지를 직접 다운로드 하지 않고도 설치 가능

  • 관련 파일

    • /etc/yum.conf : yum 기능설정
    • /etc/yum.repos.d : 패키지 저장소(repository) 설정
    • /var/log/yum.log : 패키지 설치 로그파일
  • yum 명령어

    • 명령어 형식 : #yum <서브커맨드> [argument]

    • 패키지 정보 업데이트

      • #yum repolist
      • #yum makecache fast
    • 패키지 탐색 : #yum search

    • 패키지 정보 확인 : #yum info [패키지 이름]

    • 패키지 설치 : #yum install [패키지 이름1] [패키지 이름2]...

      • 패키지 설치 시 필요한 패키지 의존성 정보 확인 후 필요한 패키지를 레포지토리에서 다운로드 가능할 경우 함께 설치

      • -y : 질의 없이 설치

      • -y 옵션 사용하지 않을 경우 [y/d/N]

        • -d : 설치하지 않고 일단 다운로드
      • -y 옵션 사용하지 않을 경우 GPG Key 확인 요청

    • 패키지 목록 확인 : #yum list [패키지 이름]

      • 패키지 이름을 입력하지 않을 경우 : 모든 설치 가능한 패키지를 포함한 목록이 출력
      • 출력내용
        • 패키지이름 패키지버전/릴리즈 Repository
        • Repository 이름 앞 @ 기호 : 설치된 패키지
      • #yum list installed : 설치된 패키지의 목록만 출력
    • 패키지 삭제 : #yum remove [패키지 이름]

      • 설치시 의존성을 가지는 패키지를 함께 설치 했더라도 삭제시에는 지정한 패키지만 삭제됨

      • -y : 질의없이 바로 설치삭제

    • 패키지 업데이트

      • #yum update : 모든 패키지에 대하여 업데이트 수행
      • #yum update kernel : 시스템 커널 업데이트
      • 일반 패키지 업데이트 시 이전 패키지 파일 삭제후 다시 설치
      • 커널 업데이트 시 이전 커널 정보 유지 후 새로운 커널 추가
    • 패키지 그룹

      • 용도가 비슷한 패키지들을 묶어놓은 단위
      • 기존 yum명령어에 groups 서브커맨드 추가
        • #yum groups list
        • #yum groups info [그룹이름]
        • #yum groups install [그룹이름]
  • yum Repository 관리

    • /etc/yum.repos.d : 레포지토리 실행정보 저장 디렉토리

    • 설치시 기본적으로 레포지토리 미러 정보가 설정으로 저장되어 있음

    • 외부 네트워크 차단 등의 이유로 레포지토리를 사용할 수 없을 경우 접근가능한 레포지토리에 대한 설정을 직접 추가하여 사용

    • /etc/yum.ropos.d/[파일이름].repo

    • 네트워크 위치의 레포지토리 사용

    • Local Repository (DVD Media 등)

      • file:///run/media/user/CentOS\ 7\ x86_64/

        vi /etc/yum/repos.DVD.repo
        
        [DVD]
        name='DVD repo'
        baseurl=file:///run/media/user/CentOS\ 7\ x86_64/
        gpgcheck=0
        enabled=1
    • yum-config-manager

EPEL(Extra Package for Enterprise Linux)

  • epel-release 패키지 설치
    • #yum install epel-release
    • /etc/yum.repos.d/epel* : EPEL 레포지토리 파일

댓글