[RHEL6] 패키지 관리 명령어 3탄(rpm, rpm2cpio, rpmbuild, yum)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 패키지 관리 명령어 3탄(rpm, rpm2cpio, rpmbuild, yum)

by 찬찬이 아빠 2020. 5. 7.
반응형
  10. rpm(레드햇 패키지 매니저)

 1) 경로 : /usr/bin/rpm

 2) 요약 : 레드햇 기반의 패키지를 관리

 3) 사용 방법 : rpm [옵션]

 4) 옵션

 -vv : 상세한 디버깅 정보를 출력

 --keep-temps : 임시 파일을 삭제하지 않음(/tmp/rpm-*).rpm을 디버깅할 때만 주로 사용

 --quiet : 에러 메시지만 출력

 --help : 사용법 출력

 --version : 버전 정보 출력

 --rcfile <파일> : /etc/rpmrc 또는 $HOME/.rpmrc을 사용하지 않고, <file>을 사용

 --root <dir> : 모든 동작에 대하여 최상위 디렉터리를 주어진 디렉터리로 설정하고 작업

 

 설치 모드 : rpm -i [설치옵션] <패키지 파일>+

 질문 모드 : rpm -q [질문옵션]

 검증 모드 : rpm -V|-y|--verify [검증옵션]

 서명확인 모드 : rpm --checksig <패키지파일>+

 제거 모드 : rpm -e <패키지명>+

 제작 모드 : rpm -BO(영어 대문자오) [제작옵션] <패키지스펙>+

 

<설치 옵션>

rpm 설치 명령의 일반적인 형태는 다음과 같습니다.

# rpm -i [설치옵션들] <패키지 파일>

 force : --replacepkgs, --replacefiles, --oldpackage를 모두 사용한 것과 같음

 h, --hash : 패키지를 풀 때 해쉬마크(#)를 표시. 표시되는 해시마크 총 수는 50개. 더 상세한 출력을 위해서는 -v를 함께 사용

 oldpackage : 새로운 패키지를 지우고 더 예전 패키지로 교체할 때 사용

 percent : 패키지 파일을 풀 때 진행률을 퍼센트로 표시

 replacefiles : 이미 설치된 다른 패키지의 파일을 덮어쓰면서 패키지를 강제로 설치

 replacepkgs : 패키지가 이미 설치되어 있더라도 다시 설치

 root <디렉터리> : <디렉터리>를 루트로 하는 시스템에 설치를 수행. 데이터베이스는 <디렉터리> 밑에서 갱신되고,   pre 또는 post 스크립트는 <디렉터리>로 chroot() 한 후 실행함을 의미

 noscripts : preinstall, postinstall 스크립트를 실행하지 않음

 excludedocs : 문서라고 표시되어 있는 파일(맨 페이지와 texinfo문서)은 설치하지 않음

 includedocs : 문서 파일을 포함. 이 옵션은 rpmrc 파일에 excludedocs:1 이라는 것이 명시되어 있을 때만 필요

 nodeps : 패키지를 설치하기 전에 의존성을 검사하지 않음

 noscripts : preinstall, postinstall 스크립트를 실행하지 않음

 test : 패키지를 실제로 설치하지 않고, 충돌 사항이 있는지만 점검하고 보고

 -U, --upgrade : 현재 설치되어 있는 패키지를 새로운 버전의 RPM으로 업그레이드. -i 옵션과 같지만 예전 버전의 것이 자동으로 지워진다는 점이 다름

 

 

<질문 옵션>

rpm 질문 옵션의 일반적인 형식은 다음과 같습니다.

# rpm -q [질문옵션]

 

여기에서는 패키지 정보가 표시할 형식을 결정해 주어야 합니다. --queryformat 옵션 뒤에 형식 문자열을 적어줍니다. 질문 형식은 표준 printf 형식을 약간 변형한 것입니다. 형식은 정적 문자열과 (개행 문자, 탭, 그리고 다른 특수문자에 대한 표준 C 문자 이스케이프 표기) printf 형식 지정자로 구성되어 있습니다. rpm은 이미 출력 형태를 알고 있으므로 타입 지정자는 생략하고 {} 문자로 묶어서 헤더 태그의 이름으로 바꾸어야 합니다. 태그명 중 RPMTAG_ 부분은 생략해야 하며 태그명 앞에는 - 문자를 적어주어야 합니다.

 

예를 들어 질문 대상 패키지의 이름만 출력하려면 %{NAME} 을 형식 문자열로 사용해야 합니다. 패키지명과 배포판 정보를 두 개의 열로 출력하려면 %-30{NAME}%{DISTRIBUTION} 형태로 적습니다. rpm은 --querytags 옵션으로 인식하고, 있는 모든 태그의 목록을 출력합니다. 질문 옵션에는 패키지 선택과 정보 선택 두 가지가 있습니다.

 

① 패키지 선택 옵션

 <패키지명> : 지정한 패키지에 대한 질문을 수행

 a : 모든 패키지에 대하여 질문을 수행

 whatrequires <기능> : 제대로 작동하기 위해서는 지정한 기능을 쓰는 모든 패키지에 대하여 질문을 수행

 whatprovides <가상> : 지정한 가상 기능을 제공하는 모든 패키지에 대하여 질문을 수행

 f <파일> : 지정한 파일을 포함하는 패키지에 대하여 질문을 수행

 F : -f와 같지만 파일명을 표준 입력에서 읽음

 p <패키지 파일> : 설치된 또는 설치되지 않은 <패키지 파일>에 대하여 질문을 수행

 P : -p와 같지만 패키지 파일명을 표준 입력에서 읽음

 

② 정보 선택 옵션

 -i : 패키지 이름, 버전, 설명 등의 정보를 출력. 만약 --queryformat 옵션이 있다면 포맷 형식을 이용하여 출력

 R : 현재 패키지가 의존하는 패키지 목록을 출력 (--requires와 같음)

 provides : 패키지가 제공하는 기능을 출력

 l(엘) : 패키지 안의 파일을 출력

 s : 패키지 안에 든 파일의 상태를 출력. (-l(엘) 포함). 각 파일의 상태는 normal(정상), not installed설치되지 않음), replaced(교체)의 값을 갖음

 d : 문서 파일만 출력 (-l(엘) 포함)

 c : 설정 파일만 출력 (-l(엘) 포함)

 scripts : 설치, 제거 과정에 사용되는 쉘 스크립트가 있다면 그 내용을 출력

 dump : 다음과 같은 파일 정보를 덤프함.

              경로 크기 수정일, MD% 체크섬, 모드, 소유자, 그룹, 설정 파일 여부, 문서 파일 여부, rdev, 심볼릭 링크 여부. 최소한 -l, -c, -d 이들 옵션 중 하나가 사용되어야 함

 

 

<검증 옵션>

rpm 검증 옵션의 일반적인 형태는 다음과 같습니다.

# rpm -V|-y|--verify [검증옵션]

 

설치되어 있는 파일에 대하여 rpm 데이터베이스에 저장한 내용과 오리지널 패키지의 내용을 비교합니다. 검증 내용은 크기, MD5 체크섬, 퍼미션, 타입, 소유자, 그룹 등입니다. 차이점이 발견되면 출력합니다. 패키지 지시 옵션은 패키지 질문 옵션에서와 같습니다. 출력 형식은 8자의 문자열입니다. c는 설정 파일을 의미하며 파일명을 출력합니다. 각각의 8개 문자는 RPM 데이터베이스에 저장된 속성과 비교한 결과를 나타냅니다. '.'(피리어드) 문자는 이상 없음을 나타냅니다. 비교 결과 문제점이 발견되면 다음과 같은 문자가 나타납니다.

5 MD5 체크섬
S 파일 크기
L 심볼릭 링크
T 갱신일
D 장치
U 사용자
G 그룹
M 퍼미션과 파일 타입을 포함한 모드

 

 

<서명 확인>

rpm 서명 확인 명령은 다음과 같습니다.

# rpm --checksig <패키지파일>+

 

패키지의 오리지널 여부를 가려내기 위하여 패키지 안에 든 PGP 서명을 점검합니다. PGP 설정 정보는 /etc/rpmrc에서 읽어 옵니다.

 

 

<제거 옵션>

rpm 제거 명령의 일반적인 형태는 다음과 같습니다.

# rpm -e <패키지파일>+

 - noscripts : preuninstall, postuninstall 스크립트를 실행하지 않음

 - nodeps : 패키지 제거 시 의존성을 검사하지 않음

 -test : 실제로 패키지를 제거하는 것은 아니고 테스트만 수행

 

 

<제작옵션>

rpm 제작 명령의 일반적인 형식은 다음과 같습니다.

# rpm -BO [제작옵션] <패키지 스펙>+

 

 -bO(영어 대문자오)는 제작 단계와 제작할 패키지를 나타내는 것으로서 다음 중 하나의 값을 갖습니다.

  § bp : 스펙 파일의 %prep 단계를 실행. 보통 소스를 풀고 패치하는 작업

  § bl : 목록 점검 수행. %files 섹션은 확장 매크로. 이 파일들이 존재하는지 여부를 출력

  § bc : %build 단계 수행(prep 단계룰 한 후). 보통 make에 해당하는 일을 해냄

  § bi : %install 단계 수행(prep, build 단계를 거친 후). 보통 make install에 해당하는 일을 함

  § bb : 바이너리 패키지를 만듦(prep, build, install 단계를 수행 한 후). 다음 옵션도 사용 가능

  § short-circuit : 중간 단계를 거치지 않고 지정한 단계로 직접 이동. -bc와 -bi하고만 사용 가능

  § timecheck : 시간 점검을 0(불가능)으로 설정. 이 값은 rpmrc의 timecheck로 설정할 수 있음. 시간 점검 값은 초로 표시하는데 파일이 패키징에 걸리는 최대 시간을 정함. 시간을 초과하는 파일들에 대하여 경고 메시지가 출력됨

  § clean : 패키지를 만든 후 build 디렉터리를 지움

  § test : 어떠한 build 단계도 거치지 않음. 스펙 파일을 테스트할 때 유용

  § sign : 패키지 안에 PGP 서명을 넣음. 패키지를 누가 만들었는지 확인 가능

  § rpm --recompile <소프 패키지 파일> 또는 rpm --rebuild <소스 패키지 파일> : rpm은 주어진 소스 패키지를 설치하고, prep, 컴파일, 설치를 해줌. rebuild는 새로운 바이너리 패키지도 만들어줌. 제작을 마치면 build 디렉터리는 --clean 옵션에서와 마찬가지로 지워짐. 패키지로부터 나온 소스와 스펙 파일은 삭제

 

 

<기존의 RPM에 서명하기>

# rpm --resign <바이너리 패키지 파일>+

 

패키지 파일에 새로운 서명을 합니다. 기존의 서명은 삭제됩니다. 서명 기능을 사용하기 위해서는 PGP를 사용할 수 있어야 합니다. 그리고 RPM 공개키를 포함하는 공개키를 찾을 수 있어야 합니다.

기본적으로 RPM은 PGPPATH에서 지시하는 PGP 기본 설정을 사용합니다. PGP가 기본적으로 사용하는 키 링을 갖고 있지 않을 때는 /etc/rpmrc 파일에 설정해 두어야 합니다. pgp_path는 /usr/lib/rpm 대신 스일 경로 이름입니다. 이 경로에는 사용자의 키 링을 포함해야 합니다. 사용자가 만든 패키지에 서명하려면 자신의 공개키와 비밀키 한 쌍을 만들어 두어야 합니다. /etc/rpmrc에 적는 것 외에 다음 사항을 추가해야 합니다.

  - signature: 서명 휴형. 현재로서는 pgp만 지원

  - pgp_name : 사용자의 패키지에 서명할 사용자명을 적음. 패키지 제작 시 sign 옵션을 추가. 사용자의 입력을 받고 나면 패키지가 만들어지고 동시에 서명됨

 

 

<데이터베이스 재생성 옵션>

# rpm -rebuilddb​

RPM 데이터 베이스를 다시 만드는 명령어입니다.

패키지에서 나온 소스와 스펙 파일은 삭제 됩니다.

 

 

 5) 추가 설명

RPM은 강력한 패키지 관리자로서 각각의 소프트웨어 패키지를 만들고 설치하고 질문하고 검증하고 갱신하며 제거할 수 있습니다. 패키지란 설치할 파일들과 이름, 버전, 설명 등의 패키지 정보를 포함하는 저장 파일입니다. 설치, 질문, 검증, 서명 확인, 제거, 제작, 데이터베이스 재생성 모드가 있으며 각각 다른 옵션이 있습니다.

 

① RPM 파일 읽는 법

패키지 이름은 일정한 규칙으로 되어 있습니다. 한 예로 다음과 같은 아파치 RPM 패키지가 있다고 가정합니다.

apache-1.3.26.i686.rpm

 - apache : RPM 패키지 이름

 - 1.3.6 : 리눅스 패키지의 버전

 - i686 : 실행 바이너리의 시스템 아키텍처

 

② RPM 패키지 설치

보통 RPM을 설치하려면 rpm -ivh 옵션으로 설치하려는 패키지명을 지정합니다.

# rpm -ivh apache-1.3.26.i686.rpm

하지만 위의 명령처럼 쉽게 설치되면 다행이지만 설치 시 기존 파일이나 의존성 관계 등을 조사하기 때문에 때에 따라 각가지 에러나 날 수도 있습니다. 크게 세 경우로 나누어 에러 메시지별 해결법을 알아봅니다.

 

 § 이미 동일 패키지가 설치되어 있는 경우

# rpm -ivh apache-1.3.26.i686.rpm
apache package apache-1.3.26 is already installed
error : apache-1.3.26.i686.rpm cannot be installed

 --replacepkgs 옵션을 설치 시 추가로 입력하여 기존 패키지를 덮어 씁니다.

 

 § 설치될 패키지의 파일이 충돌하는 경우

# rpm -ivh apache-1.3.26.i686.rpm
apache /usr/lib/xxx.a conflicts with file from mod_ssl-2.8.4
error : apache-1.3.26.i686.rpm cannot be installed

패키지에 포함된 파일의 라이브러리가 있는데 현재 설치하는 패키지가 동일한 라이브러리의 다른 버전을 설치하려는 경우로 차근차근 원인을 해결해야 합니다. replacepkgs 옵션으로 강제 설치하는 방법이 있습니다.

 

 § 의존성 문제가 발생하는 경우

의존성 문제가 나타나는 패키지를 먼저 설치해야 합니다.

 

 

③ 패키지 제거

RPM 패키지 제거는 rpm -e 명령을 사용합니다.

# rpm -e apache

 

하지만 이 또한 의존성 문제로 에러 메시지를 출력할 수도 있습니다.

# rpm -e apache
removing these packages would break dependencies:
linux is needed by mod_ssl-2.8.4

의존성이 걸리는 패키지를 먼저 삭제해야 합니다. 만일 의존성을 무시하려면 --nodeps 옵션으로 지정한 패키지만 삭제할 수 있습니다. 이 작업에는 세심한 주의가 요구됩니다.

 

 

④ 패키지 업그레이드

이미 설치된 패키지를 새로 나온 패키지로 업그레이드 할 때는 rpm -Uvh 옵션을 사용합니다.

# rpm -Uvh apache-1.3.26.i686.rpm

만일 다운 그레이드를 해야 한다면 --oldpackage 옵션을 사용합니다.

 

 

⑤ 패키지 정보 확인

# rpm -q apache
apache-1.3.26-i686.rpm

 

rpm -ql 명령으로 지정한 패키지의 설치된 디렉터리와 파일을 살펴 볼 수 있습니다.

# rpm -ql apache
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf/access.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
rpm 467
/etc/httpd/conf/srm.conf

 

rpm -qf는 설치된 파일이 어떤 패키지에 포함되는지 알아볼 때 사용합니다. 출력 결과로 지정한 파일에 해당하는 패키지명을 출력합니다.

# rpm -qf /etc/httpd/conf/httpd.conf
apache-1.3.26.i686.rpm

 

아래와 같이 아직 설치하지 않은 패키지의 내용을 살펴볼 때는 -p 옵션을 추가 합니다. 설치할 패키지의 정보를 살펴봅니다.

# rpm -qpi apache-1.3.26.i686.rpm

 

아래와 같이 설치할 패키지의 디렉터리와 파일 목록을 살펴봅니다.

# rpm -qpl apache-1.3.26.i686.rpm

 

설치할 패키지의 의존성을 확인할 때는 -qpR 옵션이 유용합니다.

# rpm -qpR apache-1.3.26.i686.rpm

 

<rpm 관련 파일>

1. rpmrc 설정 파일

/usr/lib/rpm/rpmrc : 전반적인 rpmrc 설정

/usr/lib/rpm/redhat/rpmrc : redhat 배포판에 의존적인 rpmrc 설정

~/.rpmrc : 사용자 의존적인 rpmrc 설정

 

2. 매크로 설정 파일

/usr/lib/rpm/macros : 시스템 전반의 매크로 설정

/usr/lib/rpm/redhat/macros : redhat 배포판에 의존적인 매크로 설정

~/.rpmmacros : 사용자 의존적인 매크로 설정

 

 

 

  11. rpm2cpio(RPM 변환)

 1) 경로 : /usr/bin/rpm2cpio

 2) 요약 : 레드햇 패키지(RPM)를 cpio 파일로 변환

 3) 사용 방법 : rpm2cpio [파일명]

 4) 추가 설명

rpm2cpio 명령어는 .rpm 파일을 cpio 형태의 파일로 생성합니다. 만약 아무 인수가 없다면 표준 입력으로부터 RPM 파일을 입력 받습니다.

# rpm2cpio rpm-1.1-1.i386.rpm
# rpm2cpio < glint-1.0-1.i386.rpm

 

아래와 같이 cpio와 같이 사용하여 RPM 패키지 내용 중 특정한 파일만 풀어 낼 수 있습니다.

# cd /lib/modules/'uname -r'/kernel/drivers/net/bcm5700
# mv bcm5700.kr bcm5700.ko.orig
# cd /tmp
# rpm2cpio kernel-2.6.32-11.27.i686.rpm | cpio -idm '*bcm5700*'
# cp ./lib/modules/2.6.32-11.27/kernel/drivers/net/bcm5700/*..ko \
  /lib/modules/'uname -r'/kernel/drivers/net/bcm5700

 

위는 rpm2cpio와 cpio 명령어로 RPM 패키지를 설치하지 않고 확인하는 예입니다. 만일 커널 패키지나 시스템에 영향을 미치는 패키지일 경우 실행 시에 주의합니다.

 

 

 

  12. rpmbuild(RPM 패키지 빌더)

 1) 경로 : /usr/bin/rpmbuild

 2) 요약 : RPM 패키지를 빌드하는 명령어

 3) 사용 방법

 rpmbuild [-ba|-bb|-bp|-bc|-bi|-bl|-bs] [rpmbuild-options] 스펙파일 ...

 rpmbuild [-ta|-tb|-tp|-tc|-ti|-tl|-ts] [rpmbuild-options] 타르볼 ...

 rpmbuild [--rpmbuild|--recompile] 소스 패키지...

 rpmbuild --showrc

 

 4) 옵션

<일반 옵션>

 -?, --help : 사용법 출력

 --version : 버전 정보 출력

 --quiet : 가능한 적은 에러 메시지를 출력

 -v : 상세한 정보 출력

 -vv : 많은 디버그 정보 출력

 --rcfile : 지정한 rcfile를 사용

 --root DIRECTORY : 지정한 디렉터리를 빌더 루트 디렉터리로 사용

 

<빌드 옵션>

 -ba : 바이너리와 소스 패키지를 빌드(%prep, %build, %install 단계 후)

 -bb : 바이너리를 빌드(%prep, %build, %install 단계 후)

 -bp : spec 파일 내 %prep 단계만 수행. 패치 파일이 적용된 소스를 BUILD 디렉터리에서 확인 할 수 있음

 -bc : %build 단계를 수행(%prep 단계후). make와 같음

 -bi : %install 단계를 수행(%prep, %build 단계 후). make install과 같음

 -bl : list check를 실행. %files 섹션으로 확장

 -bs : 단지 소스 패키지만 빌드

 --buildroot DIRECTORY : 패키지를 빌드할 때, BuildRoot 플래그를 덮어 씀

 --clean : 패키지 생성 후 빌드 트리를 삭제

 --nobuild : 빌드 단계를 실행하지 않음. spec 파일을 테스트 할 때 유용

 --rmsource : 빌드 후 소스를 삭제(ex) rpmbuild --rmsource foo.spec)

 --rmspec : 빌드 후 spec 파일을 삭제(ex) rpmbuild --rmspec foo.spec)

 --sign : GPG 사인을 패키지에 포함

 --target PLATFORM : PLATFORM을 arch-vendor-os로 인식하고, 매크로 %_target, %_target_cpu, %_target_os를 알맞게 설정

 

<리빌드 및 재컴파일 옵션>

 rpmbuild --rebuild|--recompile SOURCEPKG ... : --rebuild 옵션은 새로운 바이너리 패키지를 생성하고, SOURCES 및 SPEC 디렉터리를 삭제

 

 5) 추가 설명

rpmbuild 명령은 레드햇 패키지를 생성하기 위해 필요한 명령어입니다. 간단하게 소스 패키지를 내려받고 컴파일하는 절차를 살펴보도록 합니다. 먼저 아래와 같이 bash 패키지의 소스를 yumdownloader 명령으로 내려받습니다.

# yumdownloader -source bash

 

홈 디렉터리에 .rpmmacros 파일을 생성하고, 빌드 루트 디렉터리를 위해 %_topdir 매크로를 /home/user로 지정합니다. 이는 rpmbuild의 기본 빌드 루트 디렉터리인 /usr/src/redhat을 사용하지 않고, 사용자가 지정한 홈 디렉터리를 빌드 루트로 삼겠다는 의미입니다.

# echo "%_topdir /home/user" > ~/.rpmmacros

 

소스 패키지를 아래 명령으로 디렉터리에 설치합니다.

# rpm -Uvh bash-3.2-23.fc9.src.rpm

 

아래 예제에서 빌드에 필요한 디렉터리들이 생성된 것을 확인할 수 있습니다. spec 파일은 /home/user/SPECS 디렉터리에, 관련 원본 파일은 /home/user/SOURCES 디렉터리에 설치합니다.

# ls /home/user
BUILD RPMS SOURCES SPECS SRPMS

# ls /home/user/SPECS
bash.spec

 

소스 수정 후 패치 파일을 소스 디렉터리에 복사하고, SPECS 디렉터리로 이동합니다. 사용자가 적용하고자 하는 spec 파일을 수정하고, rpmbuild -ba 명령으로 패키지를 빌드할 수 있습니다.

# rpmbuild -ba bash.spec

 

만일 소스 및 spec 파일 수정 후 빌드가 성공적으로 이루어지면 RPMS 디렉터리와 SRPMS 디렉터리에 각각 바이너리와 소스 패키지가 생성됩니다.

 

 

 

  13. yum(RPM 업데이터)

 1) 경로 : /usr/bin/yum

 2) 요약 : RPM 기반의 시스템에서 업데이터 기능을 제공

 3) 사용 방법 : yum [옵션] [명령] [패키지 ...]

 4) 옵션

 -h, --help : 사용법 출력

 -C : 캐쉬 정보에서 실행하지만, 캐쉬는 갱신하지 않음

 -c [config file] : 설정 파일을 지정

 -R [minutes] : 최대 명령어 대기 시간

 -d [debug level] : 디버깅 출력 레벨

 --showduplicates : 목록이나 찾기 명령에서 최신 버전만 출력하는 대신, 저장소와 중복된 것도 출력

 -e [error level] : 에러 출력 레벨

 -q, --quiet : 에러를 출력하지 않음

 -v, --verbos : 상세한 정보 출력

 -y : 모든 물음에 yes로 대답

 --version : 버전 정보 출력

 --installroot=[path[ : 인스톨 루트 디렉터리를 설정

 --enablerepo=[repo] : 하나 이상의 저장소를 활성화 (와일드 카드 허용)

 --disablerepo=[repo] : 하나 이상의 저장소를 비활성화(와일드 카드 허용)

 -x [package], --exclude=[package] : 이름이나 패턴 매칭으로 패키지를 제외

 --disableexcludes=[repo] : 설정 파일에서 지정한 제외를 비활성화

 --obsoletes : 업데이트 동안 yum의 쓸모없는 프로세스 로직을 활성화

 --noplugins : yum 플러그인을 비활성화

 --nogpgcheck : gpg 시그니처 체크를 비활성화

 --disableplugin=[plugin] : 이름으로 플러그인 비활성화

 --enableplugin=[plugin] : 이름으로 플로그인 활성화

 --skip-broken : 의존성 문제를 가진 패키지를 건너 뜀

 --color=COLOR : 색상을 사용할지 컨트롤함

 

 5) 명령

 check-update : 가능한 패키지 업데이트가 있는지 체크

 clean : 캐쉬 데이터를 제거

 deplist : 패키지 의존성 목록을 출력

 downgrade : 패키지를 다운그레이드 함

 erase : 시스템에서 패키지나 패키지들을 제거

 groupinfo : 패키지 그룹에 관한 상세한 정보 출력

 groupinstall : 시스템에 그룹으로 패키지를 설치

 grouplist : 가능한 패키지 그룹 목록 출력

 groupremove : 시스템에서 그룹의 패키지 제거

 help : 사용법 출력

 history : 트랜잭션 히스토리를 출력하거나 사용

 info : 패키지나 패키지 그룹의 상세한 정보 출력

 install : 시스템에 패키지나 패키지들을 설치

 list : 패키지나 패키지 그룹 목록 출력

 localinstall : 로컬 RPM을 설치

 makecache : 메타 데이터 캐쉬를 생성

 provides : 주어진 값에 제공하는 패키지를 찾음

 reinstall : 패키지를 재설치

 repolist : 설정 소프트웨어 저장소를 출력

 resolvedep : 주어진 의존성에서 제공하는 패키지를 결정

 search : 주어진 문자열에 대한 패키지의 상세한 정보를 찾음

 shell : 상호 작용 yum 쉘을 실행

 update : 시스템에 패키지나 패키지들을 업데이트

 upgrade : update --obsoletes와 같음

 version : 버전 정보 출력

 

 6) 추가 설명

apt-get이 .deb로 긑나는 데비안 계열의 저장소에서 패키지를 관리하는 명령이라면 yum은 .rpm으로 끝나는 레드햇 계열의 저장소에서 패키지를 관리하는 명령어입니다.

 

yum으로 업데이트를 하려면 먼저 yum check update 명령으로 저장소 목록을 업데이트 합니다.

# yum check update

 

yum search 명령은 다운로드 가능한 패키지를 검색할 수 있습니다.

# yum search kernel

 

서버에서 패키지를 설치하려면 yum install 명령을 사용합니다.

# yum install kernel

 

만약 설치할 패키지의 일부 아키텍처 버전만 설치하려면 '패키지 이름.arch'로 지정합니다.

# yum install kernel.i585.arch

 

yum install 명령에서 여러 패키지를 나열하여 한꺼번에 설치할 수 있습니다.

# yum install kernel gcc g++

 

시스템에 설치된 패키지를 삭제하려면 yum remove  명령을 사용합니다.

# yum remove gcc

 

서버에서 업데이트 가능한 전체 패키지를 yum update 명령으로 한꺼번에 업데이트할 수 있습니다. 만일 패키지 이름을 지정하면 지정한 패키지만 업데이트 합니다.

# yum update
# yum update kernel

 

패키지를 업데이트 하기 전에 업데이트된 패키지가 있는지 확인합니다.

# yum check-update

 

업데이트 목록을 다운로드하면 실제로 설치할지를 확인하지만 -y 옵션은 이를 무조건 yes로 대답합니다.

# yum update -y

 

시스템에 설치된 패키지나 저장소 서버에 있는 패키지는 yum list 명령으로 확인할 수 있습니다. 시스템에 설치한 전체 패키지를 확인하려면 rpm -qa 도는 yum list 명령을 사용합니다.

# rpm -qa
# yum list installed

 

시스템에 설치된 일부 패키지는 다음과 같이 확인할 수 있습니다.

# rpm -qa | grep kernel
# yum list installed kernel

 

시스템에 설치 가능한 저장소 서버의 패키지 목록을 모두 출력하려면 다음과 같습니다.

# yum list all

 

모든 패키지는 그룹으로 관리됩니다. 패키지가 어떤 그루벵 해당되는지 확인하려면 yum grouplist 명령을 사용합니다.

# yum grouplist

 

yum groupinstall 명령은 해당하는 그룹에 속한 모든 패키지를 설치합니다.

# yum groupinstall "Development Tools"

 

그룹에 속한 패키지 전체를 업데이트하려면 yum groupupdate 명령을 사용합니다.

# yum groupupdate "Development Tools"

 

그룹에 해당되는 패키지를 모두 삭제하려면 yum groupremove 명령을 사용합니다.

# yum groupremove "Development Tools"

 

설치된 파일에서 이에 해당하는 패키지 이름을 역추적하려면 rpm -qf 또는 yum provides나 yum whatprovides를 사용합니다.

# rpm -qf /boot/vmlinuz-2.6.32-22.generic
# yum provides /boot/vmlinuz-2.6.32-22-generic

 

yum info 명령은 저장소 서버 목록에 있는 패키지 정보를 출력합니다.

# yum info kernel

 

최근에 업데이트한 패키지 정보는 아래 명령으로 확인할 수 있습니다.

# yum info updates

 

<yum 관련 파일>

/etc/yum.conf : yum 기본 설정 파일

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

/etc/yum/pluginconf.d/ : 플러그인 설정 파일 디렉터리

/var/cache/yum : 로컬 캐쉬 디렉터리

반응형

댓글