본문 바로가기
리눅스

[리눅스] rpm, yum 명령어

by 깅민 2022. 11. 6.

rpm

rpm  [option]  [패키지명]

 

옵션 설명
-U 기존에 패키지 설치되어 있지 않다면 신규 설치 진행, 있다면 업그레이드 설치
-v 설치 과정 중 사용자의 선택 등이 필요한 경우 확인을 받도록 하기
-h 설치 진행과정을 화면에 출력 (#으로)
-e 패키지 삭제 (Erase)
-i 패키지 설치
-F 설치할 프로그램이 이미 시스템상에 존재할 경우에만 설치. 업그레이드와 유사하나 프로그램 전부 재설치
--force 충돌을 무시하고 강제로 설치 (--replacepkgs, --replacefiles, --oldpackage 옵션 모두 사용)
--nodeps 의존성 무시
-vv 디버깅 정보 출력
--replacepkgs 패키지 교체, 패키지가 이미 설치된 경우라도 무시하고 다시 설치
--replacefiles 동일한 파일명이 있는경우 교체
--oldpackage 예전 패키지로 교체
--excludedocs 패키시 설치시 문서 파일은 설치하지 않음
--includedocs 문서 파일 포함
--percent 패키지 파일 설치시 % 표시
--aid 의존성 검사후 의존성 패키지 설치
--test 패키지를 실제 설치/삭제하지 않고 충돌 오류 점검하여 보고
-V (--verify) 검증

 

설치 확인

rpm -q [option] [패키지명]

 

옵션 설명
-i 설치된 패키지의 간략한 정보 출력 (패키지 이름, 버전, 설명)
-a 현 시스템에 설치된 모든 패키지 목록 출력
-p 설치되거나 설치되지 않은 패키지 파일에 대한 질의
-f 파일에 대한 패키지 질의 수행
-R 대상 패키지와 의존성이 있는 패키지 목록 출력
--procides 해당 패키지가 제공하는 기능목록 출력
-l 패키지에 포함되어 있는 파일 출력
-s 패키지에 포함되어 있는 파일의 상태 출력
-d 문서 파일 출력
-c (환경) 설정 파일 출력
--script 설치와 제거 과정에서 상용되는 쉘 스크립트가 있다면 쉘 스크립트 출력
 --dump  

 

파일의 상태 

nomal = 정상/양호

installed = 설치되지 않음/설치가 필요

replaced = 다른 것으로 교체

 

 

rpm 설치

옵션 설명
rpm -i  
rpm -ivh  
rpm -ivh [패키지명] --replacepksg 설치되어 있는 패키지 교체

rpm 제거

옵션 설명
rpm -ev [패키지명]  
rpm -e  
rpm -e [패키지 파일] --nodeps 제거시 의존성 무시
rpm -e [패키지명] --test 패키지를 제거하지 않고 충돌 사항을 점검한 후 보고

rpm 조회

이미 설치된 패키지 조회

옵션 설명
rpm -qa | more 설치된 패키지 전체를 조회 ex) rpm -qa | grep 패키지명
rpm -qa [패키지명] 특정 패키지가 설치되어 있는지 확인
rpm -qf [파일] 파일이 어떤 패키지에 속해 있는지 확인하는 옵션
rpm -ql [패키지명] 패키지가 어떤 파일들을 설치했는지 확인
rpm -qi [패키지명] 단순히 설치된 패키지의 정보를 보는 옵션

패키지 업그레이드

옵션 설명
rpm -U  
rpm -Uvh 설치되어 있지 않은 패키지의 경우 -ivh 옵션과 동일
rpm -Fvh 이전 버전의 패키지가 있는 경우에만 설치
rpm -F 이전 버전의 패키지가 있는 경우에만 설치

설치하지 않은 패키지

아직 패키지를 설치하지 않고 패키지 파일만 있는 경우

옵션 설명
rpm -qlf [패키지명] 패키지 파일에 포함된 파일 확인
rpm -qip [패키지명] 패키지 파일에 대한 정보를 보여줍니다.

 


yum

Yellowdog Updater Modified

CentOS 패키지 관리 명령어

/etc/yum.conf

/etc/yum.repos.d/

 

yum [option] [명령] [패키지]

 

옵션 설명
-h, --help 해당 명령어의 도움말을 보여주고 실행이 종료됩니다.
-t, --tolerant 에러를 자동으로 잡아서 설치합니다.
-C, --cacheonly  캐시를 업데이트 하지 않고 전체 시스템 캐시 실행합니다.
-c [config file], --config=[config file]
파일 위치를 알려줍니다.
-R [minutes], --randomwait=[minutes]  최대치의 명령어 실행시 기다립니다.
-d [debug level], --debuglevel=[debug level]
최종 결과를 디버깅합니다.
--showduplicates 
중복요소를 보여줍니다.
-e [error level], --errorlevel=[error level]
결과 중 에러를 보여줍니다.
--rpmverbosity=[debug level name] 
rpm에서 결과물을 디버깅합니다.
--version
Yum 버전을 보여주고 실행이 종료됩니다.
-y, --assumeyes
모든 물음에 예를 진행합니다.
-q, --quiet
모든 작업이 종료됩니다.
-v, --verbose
작업을 자세히 보여준다.
--installroot=[path]
root권한으로 path위치에 인스톨을 진행합니다.
--enablerepo=[repo] 
1개 이상의 저장소 위치에 저장시킵니다.
--disablerepo=[repo] 
1개 이상의 저장소 위치에 저장시키지 않습니다.
-x [package], --exclude=[package]
패키지 이름을 제외시킵니다.
--disableexcludes=[repo] 이름으로 플러그인을 설치를 중단합니다.
--obsoletes
오래된 패키지는 업데이트를 하는 동안 적절히 삭제 및 교체됩니다.
--noplugins
yum plugin이 없도록 합니다.
--nogpgcheck
gpg signature를 불가능하게 합니다.
--skip-broken
문제 있는 패키지는 자동으로 스킵해서 넘어갑니다.
--color=COLOR 
컬러가 사용되었을 때 조정합니다.
--releasever=RELEASEVER 
$releasever의 값을 yum config와 repo파일에서 조정합니다.
--setopt=SETOPTS
임의로 config와 repo 옵션값을 지정합니다.
--disablepresto 
Presto 플러그인을 중단하고 deltarpm을 다운로드 받지 않습니다.

 

명령어 설명
check-update 현재 install된 프로그램 중에 업데이트 된 것을 체크해줍니다.
clean all  캐시 되어 있는 것을 모두 지웁니다.
deplist 
yum 패키지에 대한 의존성을 테스트합니다.
downgrade 패키지
yum을 통한 패키지 다운그레이드합니다.
erase 패키지  시스템에서 삭제합니다.
groupinfo 그룹 그룹 패키지의 정보를 보여줍니다.
groupinstall 그룹
그룹 패키지를 설치합니다.
grouplist 그룹 그룹 리스트에 관한 정보를 확인합니다. 
groupremove 그룹 그룹 리스트에 관해 삭제합니다. 
help  yum의 도움말을 확인합니다.
info 그룹 또는 패키지 패키지 또는 그룹의 패키지를 자세하게 확인합니다.
install 패키지 시스템으로 패키지의 Install 을 실시합니다.
list 
서버에 있는 그룹 및 패키지의 리스트를 보여줍니다.
localinstall 패키지 로컬에 설치합니다.
makecache  캐쉬를 다시 올립니다.
provides FilePath명 파일이 제공하는 패키지 정보 출력합니다.
reinstall 패키지
패키지를 재intstall 합니다. 
update 패키지 패키지를 업데이트합니다. 
upgrade 패키지 패키지를 업그레이드 합니다
search 키워드
키워드가 포함된 패키지를 검색할수 있습니다.
history 최근 작업 이력, new를 주면 모든 history를 삭제한다 (history new)

 


 

1701

다음은 RPM 패키지에 관한 명령어이다.( 괄호 ) 안에 알맞은 옵션을 넣으시오.

[root@www ~]# rpm ( ① ) /bin/mount util-linux-ng-2.17.2.x86_64
[root@ihd ~]# rpm –i ( ② ) util-linux-ng-2.17.2.x86_64.rpm

■ 조건 - 관리자의 실수로 /bin/mount 파일이 삭제되었다.
- ① : 다른 시스템을 통해 패키지명을 확인 후에 설치하려고 한다.
- ② : /bin/mount 파일을 포함한 관련 RPM 패키지를 강제로 재설치한다.

1. -qf

2. --force

 

 

1702

다음은 RPM 패키지를 삭제하는 과정이다. ( 괄호 ) 안에 알맞은 옵션을 넣으시오.

[root@ihd ~]# rpm ( ① ) httpd
error: Failed dependencies:
httpd-mmn = 20051115 is needed by (installed) mod_nss-1.0.10-1.el6.x86_64
httpd-mmn = 20051115 is needed by (installed) mod_perl-2.0.4-11.el6_5.x86_64
httpd-mmn = 20051115 is needed by (installed) mod_wsgi-3.2-7.el6.x86_64
httpd-mmn = 20051115 is needed by (installed) mod_authnz_pam-0.9.2-1.el6.x86_64
httpd-mmn = 20051115 is needed by (installed) mod_auth_kerb-5.4-13.el6.x86_64
[root@ihd ~]# rpm ( ① ) httpd ( ② )

조건
- RPM 명령으로 httpd 패키지를 삭제하려고 한다.
- httpd 패키지와 의존성 패키지를 무시하고 삭제한다.

1. -e

2. --nodeps

 

 

1502

4. 다음은 RPM 패키지를 관리해주는 데이터베이스에 문제가 발생했을 때의 경우를 나타낸다. ( 괄호 ) 안에 알맞은 내용을 적으시오.

# rpm -qi bmp free list corrupt (42)- contact rpm-list@redhat.com
# rpm ( ① )

조 건
- RPM 패키지를 관리해주는 데이터베이스를 다시 작성한다.

1. --rebuilddb

 

 

2201

4. 다음은 rpm 및 yum을 이용해서 패키지를 관리하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. sendmail 패키지의 변경된 정보를 확인하기 위해 검증을 실시한다.
# rpm ( 1 ) sendmail

나. sendmail 이라는 문자열이 있는 패키지를 검색한다.
# yum ( 2 ) sendmail

다. yum 관련 작업 이력을 확인한다.
# yum ( 3 )

라. yum 관련 작업 이력을 초기화하고 새롭게 생성한다.
#yum ( 3 )  ( 4 )

조건
- 1번에는 명령어의 옵션 하나를 기재한다.
- 2번부터 4번에는 관련 명령 및 항목 값을 하나씩 기재한다.

1. -V

2. search

3. history

4. new

 

 

2101

search
install
-ql
-e

 

 

2002

1. -qR

2. -qf

3. -qlp

4. -qc

 

 

2001

1. search

2. install

3. erase 또는 remove

4. history

 

 

1901

1. -e --nodeps

2. which (whereis)

3. ldd

4. /usr/sbin/postfix

 

ldd - 특정파일이나 프로그램이 의존하고 있는 공유 라이브러리 정보 확인

 

 

1802

1. list installed

2. search telnet

3. info

4.install


 

참고

https://www.lesstif.com/system-admin/yum-history-plugin-undo-6979667.html

http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/yum

https://codedragon.tistory.com/7695

https://harryp.tistory.com/877

https://wordpressxe.tistory.com/7

https://runtoyourdream.tistory.com/173

 

 

 

 

 

 

'리눅스' 카테고리의 다른 글

[리눅스] chomod, chown, chgrp, 특수권한(setuid)  (0) 2022.11.06
[리눅스] 권한 permission  (0) 2022.11.06
[리눅스] DHCP  (0) 2022.11.05
[리눅스] Squid 프록시  (0) 2022.11.05
[리눅스] dd 백업  (0) 2022.11.05

댓글