상세 컨텐츠

본문 제목

[ Linux 마스터 2급 ] 리눅스 rpm 패키지와 패키지 관리 툴

IT/Network

by pandada 2019. 7. 22. 15:09

본문

반응형

 

리눅스 rpm 패키지와 패키지 관리 툴

 

 

 

리눅스에서 프로그램을 설치하기 위한 단계

  - 압축 풀기 -> 디렉토리 이동 -> configure -> make -> make install

 

 

컴파일러

  - 소스코드는 컴퓨터가 이해할 수 있는 binary file로 변환해주는 컴파일작업을 함.

  - 컴파일러는 컴파일을 해주는 프로그램.

  - 종류 : gcc, g++ 등등.

 

 

configure 스크립트

  - 사용자가 프로그램의 일부 기능을 제외하여 설치하고자 하는 경우 옵션이 필요.(환경설정이 필요)

  - 사용자가 환경설정을 하는 것이 어려우므로 configure script가 실행. (설치 옵션에 사용자는 체크만)

  - configure script의 설치 옵션 내용을 토대로 makefile이 작성됨.

 

 

make 유틸리티

  - 복잡한 컴파일 작업을 손쉽게 하기 위한 유틸리티.

  - 확장자 없는 makefile 제목의 파일에 소스코드들 간의 관계나 역할

  - 컴파일 과정이나 이용되는 컴파일러 등을 기록하고 이를 이용하여 컴파일을 쉽게 해줌.

  - configure에 의해 변경된 내용을 반영하고 타겟과 의존성 관련작업을 하여 실행파일 생성.

  - make install : 생성된 실행파일을 지정된 디렉토리에 설치하는 작업.

 

 

cmake

  - make유틸리티의 대체 프로그램으로 멀티 플랫폼 지원하기 위해 등장한 오픈소스 프로젝트.

  - 유닉스 계열 운영체제 외에 MAC OS X, 윈도우 운영체제의 프로그래밍 도구도 지원.

 

 

tar(Tape archive)

  - 여러 파일들을 하나의 파일로 묶어주는 명령.

  - 확장자 형식 : tar.Z / gzip(tar.gz) / bzip2(tar.bz2) / xz(tar.xz)

  - 파일을 압축하고 해제하는 방법.

  - 압축 형식 : tar [옵션] 생성파일명 압출할파일명.

  - 압축해제 : tar [옵션] 파일명

    * -z : gzip으로 압축하거나 해제.

    * -Z : 압축관련 유닉스 계열 표준 압축파일인 tar.Z에 사용.

    * -x : 압축된 파일로부터 압축을 해제.

    * -c : 새 저장 tar파일을 생성.

    * -s : 저장 파일목록과 똑같은 순서로 압축을 해제.

    * -j : bzip2 필터를 이용하여 .bz2파일을 해제.

    * -J : 압축파일 .tar.xz 파일을 해제.

    * -v : 처리중인 파일을 자세하게 보여줌.

    * -t : tar파일 안에 묶여 있는 파일의 목록을 출력.

    * -p : 파일이 생성되었을 때의 권한을 그대로 유지하게 함.

    * -f 파일명 : 작업대상이 되는 tar파일의 이름을 지정.

    * -r : 기존 파일에 추가를 하여 압축.

    ex) tar cvzf wonderful.tar.gz ~ -> root디렉토리의 파일들을 .wonderful.tar.gz로 압축 해주세요. 

        (처리중인 파일과 tar파일 안에 묶여있는 파일도 보여줘)

    ex) tar xvzf wonderful.tar.gz ~ -> wonderful.tar.gz파일을 압축 해제 해줘.

        (처리중인 파일과 tar파일 안에 묶여있는 파일도 보여줘)

 

 

 

 

패키지 설치 - RPM(Redhat Package Management)

  - 패키지 이름 - 버전 - 릴리즈.아키텍처.rmp 구조로 되어있다.

  - 패키지 이름 : 어떤 패키지인가를 설명해주는 패키지의 이름. (쉽게말하면 이름) / mysql

  - 버전 : 패키지 버전 / 5.0.22

  - 릴리즈 : 한 버전의 패키지를 몇 번 빌드했는지 알 수 있다. / 2.1

  - 아키텍처 : 패키지가 사용가능한 시스템 / i386

    ex) mysql -5.0.22 -2.1.i386.rmp

 

 

 

패키지 관리

  - RedHat에서 개발한 패키지 관리 기법.

  - 형식 : rpm [옵션] <설치할 패키지명 또는 삭제할 패키지명 또는 조회할 패키지명>

    * -i : 설치 옵션, 이전 버전이 설치되어 있을 경우 설치하지 않음.

    * -U : 이전 버전이 설치되어 있다면 업그레이드, 설치되어 있지 않은 경우 새롭게 설치.

    * -F : 이전 버전이 설치되어 있을 경우에만 설치, 설치되어 있지 않은 경우 새롭게 설치.

    * --force : 강제로 설치할 때 사용.

    * -v : 설치 중 메시지를 출력.

    * -h : 진행과정을 #으로 표시.

    * --test : 실제로 파일에 기록하는 작업을 제외한 대부분에 대한 테스트를 함

    * -q : 패키지가 설치되어 있는지 검색, 설치되어 있다면 패키지 이름과 버전을 출력.

    * -qa : 현재 설치된 모든 패키지 목록을 검색.

null

    * -ql : 현재 설치된 패키지의 간략한 정보와 설치된 파일을 출력.

    * -e : 패키지 삭제.

    * --allmatches : 동일한 이름을 갖는 패키지가 중복 설치되어 있는 경우에 모두 제거.

    * --nodeps : 의존성 문제를 무시하고 설치하거나 삭제.

      ex) rpm -e rdma -> rdma 패키지 삭제.

      ex) rpm -e rdma-nodpes -> rdma 패키지 제거시 의존성 있는 패키지 존재할 경우에도 제거.

 

 

rpm 패키지 검증 작업

  - rpm 데이터베이스에 저장되어 있는 패키지의 메타데이터 정보를 이용하여 변경된 정보를 찾아내는 것을 의미.

  - 옵션 -V를 이용하여 파일의 크기, 허가권, 소유권, 파일 형식에 대한 변경 정보를 출력.

null

 

YUM(Yellowdog Updater Modified)

  - RPM 명령의 의존성 문제를 해결.

  - RPM 기반의 시스템에서 손쉽게 패키지 설치하고 자동으로 업데이트 수행하는 명령행 기반의 유틸리티.

  - RPM 패키지가 저장된 서버에 접속하고 설치하고자 하는 RPM을 다운로드 하여 설치.

  - 형식 : yum [옵션] [모드] 패키지

    * -y : 설치여부를 묻지 않고 바로 설치. (모두 yes)

    * -v : 자세한 정보를 출력.

null

  - 모드

    = list [항목] : 전체 패키지에 대한 정보를 출력.

    = install : 패키지 설치.

    = check-update : 설치된 패키지 중에서 업데이트가 가능한 패키지의 목록을 출력.

    = update : 패키지를 업데이트.

    = remove : 패키지를 삭제.

null

    = info : 패키지의 정보를 출력.

    = grouplist : 패키지 그룹에 대한 정보를 출력.

    = groupinfo 패키지 그룹명 : 해당 패키지 그룹명과 관련된 패키지 정보를 보여줌.

    = groupupdate 패키지 그룹명 : 해당 그룹 패키지 업데이트.

    = groupinstall 패키지 그룹명 : 해당 그룹의 패키지를 설치.

    = groupremove 패키지 그룹명 : 해당 그룹의 패키지를 제거.

 

 

 

YUM관련 파일 및 디렉토리 정보

  - YUM에서 패키지를 설치/업데이트하기 위한 저장소 파일들은 /etc/yum.repos.d 디렉토리에 저장.

null

  - CentOS-Base.repo의 주요 구성 항목.

    = [base] : YUM 패키지 서버의 기본 경로 설정.

    = [updates] : 업데이트된 패키지를 위한 경로 설정 항목.

    = [extras] : 유용하게 쓸 수 있는 추가 패키지 경로를 설정하는 항목.

    = [centosplus] : 존재하는 패키지들의 기능적 확장과 관련있는 패키지 경로를 설정하는 항목.

  - yum환경 설정 파일 : /etc/yum.conf

  - yum로그 작업 파일 : /var/log/yum.log

null

  - yum clean all : 이미 cache되어 있는 헤더, 패키지, 메타데이터들 다 제거한다. fastesmirror에러 날 경우 사용.

 

 

apt-get

  - 데비안 리눅스 배포판에서 패키지관리를 쉽게 하기 위해 제공된 명령행 유틸리티.

  - 패키지 설치에서 발생하는 의존성문제와 충돌문제를 손쉽게 해결.

  - etc/apt/sources.list 파일에서 패키지 관련정보를 관리.

  - 형식 : apt-get [옵션][모드] 패키지

    * -y : 설치여부를 묻지 않고 바로 설치. (모두 yest)

    * --purge : remove명령 수행시 환경설정부분까지 같이 제거할 때 사용

  - 모드

    = clean : /var/cache/apt/archive에 생성된 파일을 제거.

    = install 패키지명 : 패키지 설치. (/var/cache/apt/archive .dev파일 생성)

    = update : 패키지 목록을 업데이트.

    = upgrade : 모든 패키지를 최신버전으로 업데이트.

    = remove : 패키지를 삭제.

    ex1) gcc패키지를 설치 -> apt-get install gcc

    ex2) /var/cache/apt/archive에 생성된 파일 전부 삭제 -> apt-get clean

 

반응형

관련글 더보기

댓글 영역