본문 바로가기
IT/Linux

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

by 혁클 2021. 4. 10.

소프트웨어 패키지 관리

 

  1. 소프트웨어 소스코드 컴파일 : 직접 소스코드에 대한 컴파일 명령을 수행
  • 컴파일(Compile) : 프로그래머가 작성하는 소스코드를 기계어로 변환
  • 인터프리터(Interpreter) 방식 : 소스코드를 직접 실행


    2. 컴파일
    과정을 간편화 : ‘Makefile’
  • #./configure // 설치 환경 설정
  • # make // 컴파일
  • # make install // 컴파일된 파일 적정 위치로 복사

    3. 소프트웨어 패키지 설치
  • 소프트웨어 패키지 : 동작 환경에 맞게 사전에 컴파일된 파일을 모아놓은 덩어리
  • 패키지 설치: 파일을 적정한 위치로 복사, 기타 추가 작업 수행
  • 리눅스의 각 배포판에 따라 패키지 설치 방식에 차이가 있음
    • EL : rpm(Redhat Package Manager)
    • ubuntu : deb

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

 

rpm(Redhat Package Manager)

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

 

YUM(Yellowdog Update Modified)

  • rpm의 문제인 종속성에 대한 문제를 쉽게 해결
  • 필요한 패키지를 직접 다운로드하지 않고도 설치 가능
  • 관련 파일
    • /etc/yum.conf : YUM 기능 설정
    • /etc/yum.repos.d/ : 패키지 저장소(레포지토리) 설정
    • /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 localinstall [RPM파일 이름]
      • rpm 파일을 yum으로 설치 
      • 의존성 해결
  • 패키지 목록 확인
    • # 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.repos.d/[파일 이름]. repo

name=test repo

baseurl=http://ftp.daumkakao.com/centos/$releasever/os/$basearch/

gpgcheck=0

enabled=1

  • Local Repository (DVD Media 등)
    • 마운트 한 DVD 미디어 경로: file:///run/media/user/CentOS\ 7\ x86_64/
    • repo 파일 작성 예

[DVD]

name=DVD repo

baseurl=file:///run/media/user/CentOS\ 7\ x86_64/

gpgcheck=0

enabled=1

 

EPEL(Extra Packages for Enterprise Linux)

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

 

==========================================================

 

yum repository 미러 관리

  • 기본 CentOS 레포지토리는 baseurl이 아닌 mirrorlist 형태로 지정됨
  • 미러 목록 중 가장 빠른 미러를 확인하여, 해당 repository를 사용하도록 설정됨
  • 필요시 사용자가 갱신 가능

# yum clean all // 현재 repository 미러 캐시 삭제

# yum makecache fast // 미러 갱신

 

*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.

'IT > Linux' 카테고리의 다른 글

파일 기반 공유 스토리지  (0) 2021.04.14
SSH  (0) 2021.04.13
네트워크 관리(기초,NetworkManger,호스트이름)  (0) 2021.04.08
NTP  (0) 2021.04.07
부팅 문제 해결  (0) 2021.04.06

댓글