LInux(CentOS) 패키지 관리

박종현·2022년 5월 16일
0

리눅스(CentOS)

목록 보기
5/13

소프트웨어 패키지 관리

  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
    • 네트워크 위치의 레포지토리 사용
      • 테스트 레포지토리 주소 : http://ftp.daumkakao.com/centos/releasever/os/releasever/os/basearch/

         ##repo 파일 작성 예시
         vi /etc/yum/repos.d/test.repo
         
         [test]
         name='test repo'
         baseurl=http://ftp.daumkakao.com/centos/$releasever/os/$basearch/
         gpgcheck=0
         enabled=1
    • 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
      • -add-repo
        • yum-config-manager --add-repo="[http://mirror.kakao.com/centos/7.9.2009/os/x86_64/](http://mirror.kakao.com/centos/7.9.2009/os/x86_64/)"
      • yum-utils 패키지가 설치되어있어야 사용가능

EPEL(Extra Package for Enterprise Linux)

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

0개의 댓글