[RPM] 설치된 RPM 패키지 변경가능성 여부 검증하기

 1. 설치된 RPM 패키지 변경가능성 여부 검증하기

 – 사용형식 : rpm -V [옵션] 패키지명

 –
RPM 패키지 관리에 있어서 무엇보다 중요한 것은 설치한 패키지들의 무셜성을 확인하는 것임. 특정 패키지를 설치한 후에 이
패키지에 의해 설치된 파일들이 변조된 흔적을 조사하기 위하여 주기적으로 특정 패키지의 특정 패키지의 무결성을 확인해야할 필요성이
있음.

 – 검증시 확인 되는 8가지 문자열의 의미

표시문자       |         의           미           |            설                명
—————————————————————————————————————————————–
      5               |      MD5 체크섬           | 현재파일의 내용이 설치당시의 내용과 같은가를 확인함.
      S              |       파일크기                 | 파일의 크기를 설치당시의 크기와 비교 검사함
      L               |       심볼릭링크           | 심볼릭 링크를 검사함
      T               |     파일최종변경시간  | 최근 갱신날짜를 설치당시의 날짜와 비교 검사함
      D              |             장치                 | 장치 정보를 검사함
      U              |          사용자                | 파일의 소유자를 설치당시의 소유자 정보와 비교 검사함
      G             |           그룹                    | 파일의 소유그룹을 설치당시의 소유그룹과 비교검사함
      M            | 파일허가권 또는 파일형식 모드 | 파일의 퍼미션( permission ) 을 설치당시의 퍼미션과
                                                                                 비교 검사함.

[RPM] RPM 패키지 설치정보 확인하기

 1. 패키지의 설치정보를 확인하기 위한 사용형식

 – 사용형식 : rpm -q[ 옵션 ] 패키지명

 2. 현재 시스템에 설치되어 있는 모든 패키지를 출력하기

 – -qa 옵션을 사용함.

 – rpm -qa

 – 해당 결과를 파일에 저장하여 확인하는 방법
 rpm -qa > rpmlist
 만약 기존에 존재하는 내용에 추가하여 결과를 저장하고자 한다면
 rpm -qa >> rpmlist
 특정 파일에 저장하지 않고 화면에서 바로 한화면씩 확인하고자 한다면
 rpm -qa | more

 3. 특정 파일이나 이름으로 패키지의 설치여부 확인하기

 – 사용형식 : rpm -qa | grep 확인하고자하는패키지이름문자열

 4. 특정 파일명이 어떤 패키지에 속해있는지 확인하기

 – 사용형식 : rpm -qf 파일명

 – 어떤 파일을 수정하거나, 삭제,  또는 변경하려고 할 때, 혹은 특정 파일을 실수로 삭제하였는데 이를 RPM 재설치 방법으로 복구하여야 할 경우에 매우 유용하게 사용됨.

 – rpm 명령어 사용시 사용되는 파일명을 절대경로를 지정하여 주는 것이 좋음.

 – 확인하고자하는 모든 파일이 가능한 것은 아니며 RPM 으로 설치된 파일일 경우에만 확인이 가능하다는 점에 유의할 것.

 5. 특정 패키지에 의해 설치된 파일들 확인하기

 – 사용형식 : rpm -ql 패키지명

 – 특정 패키지를 설치할 때에 생성되는 파일들의 리스트를 확인하고자 한다면 위의 방법으로 확인이 가능함.

 6. 특정 패키지의 상세한 정보 확인하기

 – 사용형식 : rpm -qi 패키지명

 –
특정 패키지의 이름과 버전, 패키지 개발사, 그리고 배포횟수( release ) , 컴파일 날짜, 설치날짜, 패키지용량(
size ) , 라이센스정보, 소스 RPM 명, 용도( Summary ) , 간단한 설명( Description ) , 등에
대한 정보를 확인하는 명령어임.

 7. 특정 패키지에 의해 설치된 파일들의 정상여부 점검하기

 – 사용형식 : rpm -qs 패키지명

 – 특정 패키지를 설치한 후에 이 패키지에 의해서 설치된 모든 파일들이 현재 시스템에서 이상없이 정상적으로 사용이 되고 있는가를 확인하려면 rpm 명령어에 -qs 옵션을 사용하면 됨.

 – 특정 패키지의 설치로 생성된 모든 파일들의 정상여부를 확인한다는 의미는 특정 서비스를 위한 패키지의 정상여부 또는 시스템의 정상여부를 확인하는 한 부분이 되기도 함.

 8. 특정 패키지의 설정파일들 확인하기

 – 사용형식 : rpm -qc 패키지명

 – 특정 패키지의 설치로 생성되는 많은 파일들 가운데 설정파일들만을 확인하는 방법임.

 
 9. 설치된 패키지의 문서파일위치 확인하기

 – 사용형식 : rpm -qd 패키지명

 – 특정 패키지에 의해 설치되는 모든 파일들 가운데에 메뉴얼파일, 즉 man 페이지 관련 파일들만을 확인하는 방법임.

 10. 패키지 의존성 관계 확인하기

 – rpm -qRp 패키지명

 – rpm 명령어에 -qRp 옵션을 사용하여 특정 패키지의 의존성 관계를 확인할 때에 패키지명은 전체 패키지파일명으로 지정을 해야 함.

[RPM] 설치된 RPM패키지 삭제( 제거 ) 하기

 1. 이미 설치된 RPM 패키지를 삭제하려면 간단히 -e 옵션을 사용하면 됨.

 
 2. RPM 패키지 삭제의 가장 일반적인 방법

 – 패키지를 삭제하는 가장 간단한 방법은 rpm 명령어에 -e 옵션을 사용하면 됨.

 – rpm -e qouta-3.06-9

 3. RPM 패키지 삭제시 의존성문제 해경방법 #1 : 의존하는 패키지 선 삭제후 삭제하기

 – 패키지 삭제시 가장 흔하게 발생하는 에러가 ” 패키지 의존성 에러 ” 로 인한 패키지 삭제 실패임. 특정 패키지를 삭제할 때에 의존성문제로 인하여 패키지가 삭제되지 않을 경우에는 두가즤 해결방법이 있음.

 – 첫번째는 의존성문제를 해결한 후에 삭제하는 방법임. 의존성관계에 있는 패키지를 모두 삭제해 준 후에 삭제하고자하는 원래의 패키지를 삭제하는 것.

 – 두번째는 의존성문제를 무시하고 지정된 패키지만 삭제하는 방법임. 이방법은 –nodeps 옵션으로 간단히 해결할 수 있음.

 – 확실하게 불필요하다는 것을 확인하지 않은 상태에서 의존성 관계에 있는 모든 패키지를 삭제한다는 것은 자치 시스템 장애를 발생할 수 있음.

 4. RPM 패키지 삭제시 의존성문제 해결방법 #2 : 의존성 무시 삭제하기

 –
의존성 관계에 있는 모든 패키지들을 삭제한 후에 원래 삭제하고자 했던 패키지를 마지막에 삭제하는 방법이 있지만 이 방법으로
삭제를 하게되면 의존성관계를 파알하는 시간도 많이 소요될 뿐아니라 자칫 시스템에 꼭 필요한 패키지까지 삭제를 하게되는 잘못을
범하게 될 수도 있음.

 – 의존성 관계를 무시하고 삭제하고자하는 원래 패키지 하나만을 삭제하는 것이 보다 바람직할 것임.

 – 의존성 관계를 무시하고 살제하고자 한다면 –nodeps 옵션을 사용하면 됨.

[RPM] rpm 명령어로 패키지 업그레이드 및 설치하기 실무

 1. RPM 패키지를 설치할 때에 주로 -ivh 옵션을 사용하여 설치 함. 하지만 실제 실무에서는 -ivh 옵션 보다는 -Uvh 옵션을 사용하여 보다 안전하게 설치하는 방법을 사용함.

 – -U 옵션을 사용하여 설치하면 기존에 설치되어 있던 RPM 패키지의 파일들을 삭제하는 것이 아니라 ” 기존파일명.rpmsave ” 라는 파일명으로 보관한 후에 새롭게 설치하게 됨.

 –
-i 옵션이 패키지 설치시에 사용하는 옵션이라면 -U 옵션은 패키지 업그레이드에 사용하는 옵션임. -U 옵션을 독립적으로
사용하여도 패키지 업그레이드가 가능하지만 -Uvh 옵션을 함께 사용하여 보다 자세한 업그레이드 내역을 보여주면서 설치하도록 하는
것이 보다 일반적인 패키지 업그레이드 방식임.

 – -Uvh 옵션을 사용하여 패키지를 업그레이드 할 때에
설치하고자하는 패키지가 설치되어 있지않을 경우에는 설치를 하게 되고, 만약 하위버전이 설치되어 있을 경우에는 기존의 설치된
패키지 파일들을 ” 기존파일명.rpmsave ” 라는 파일명으로 보관한 후에 업그레이드 해주기 때문임.

 – -Uvh 옵션은 설치와 업그레이드를 자동으로 알아서 해주며 기존파일을 보관하므로 보다 안전한 설치방법이 되기 때문.

 –
-Uvh 옵션을 사용하여 업그레이드를 할 때에 이미 동일한 버전의 패키지가 설치되어 있다면 ” Package 패키지명 is
already installed ” 라는 메시지를 출력하면서 중복설치의 위험성을 사전에 차단할 수 있음.

 –
-Uvh 옵션으로 패키지를 업그레이드 할 때에 이미 상위버전이 설치되어 있다면 ” package 패키지명 ( which is
newer ) is already installed ” 라는 메시지를 출력하면서 시스템에 현재 패키지보다 상위버전이 이미
설치되어 있음을 알려줌.

 – -Uvh 옵션을 사용하면 패키지 의존성 문제가 발생하였을 경우에 ” failed dependencies ” 라는 메시지를 출력하면서 의존성 관계를 알려줌.

 2. RPM 패키지의 간단한 업그레이드 설치방법

 – rpm -U qouta-3.06-9.i386.rpm

 3. RPM 패키지의 가장 일반적인 업그레이드 설치방법

 – rpm -Uvh qouta-3.06-9.i386.rpm

 – 대부분의 실무관리자들은 -U 옵션보다는 -Uvh 옵션을 선호함.

 – -v 옵션 : 패키지 업그레이드 설치시에 자세한 설치상황을 알려 줌.

 – -h 옵션 : 설치과정을 해쉬문자( # ) 로 표시해 줌.

 4. 이미 설치된 중복패키지 문제 해결방법

 –
-Uvh 옵션으로 패키지를 업그레이드 할 경우에 업그레이드 하고자 하는 패키지가 이미 시스템에 설치되어 있을 경우에는 ”
package 패키지명 is aleady installed ” 라는 메시지와 함께 중복설치되지 않으므로 업그레이드 되지 않음.

 – 이런 경우 –replacepkgs 라는 옵션을 사용하면 설치하고자하는 패키지가 이미 시스템에 있는 경우라도 이를 무시하고 업그레이드 설치를 할 수 있음.

 5. 다른 패키지의 파일과 충돌문제 해결 방법

 – 패키지 업그레이드나 설치에서 문제가 되는 경우는 설치하고자하는 패키지의 파일이 이미 설치되어 있는 다름 패키지의 파일과 충돌( conflict ) 이 발생하는 경우도 있음.

 – 패키지 충돌( conflict ) 이 발생하는 경우에 이를 무시하더라도 설치를 해야한다면 –replacefiles 라는 옵션을 사용하면 됨.

 6. 중복과 충돌문제 발생시 무시하고 강제 설치하기

 – –force 옵션을 함께 사용

 –
업그레이드 설치를 하고자하는 패키지가 현재 시스템에 이미 설치되어 있어 중복이 되거나 또는 이미 설치되어 있는 다른 패키지의
일부 파일들과 충돌( conflict ) 이 발생하는 경우네는 업그레이드가 되지 않음. 앞의 두가지 옵션
–replacepkgs 옵션과 –replacefiles 옵션 그리고 –oldpackage 옵션을 동시에 사용하는 효과를 볼
수 있는 옵션이 –force 옵션임.

 7. 의존성문제 무시하고 설치하기

 – –nodeps 옵션을 사용.

 – –nodeps 옵션을 사용하면 패키지 의존성을 완전히 무시하고 지정한 패키지를 업그레이드 설치를 하게 됨.

[RPM] rpm 명령어로 패키지 설치하기 실무

 1. 리눅스 서버에서 특정 프로그램을 설치하기 위한 방법

 – 소스를 직접 컴파일하여 설치하는 방법

 – rpm 명령어로 패키지를 설치하는 방법

 – yum 명령어를 이용하여 설치하는 방법

 2. -i 옵션을 사용한 패키지 설치하기

 – RPM 을 설치하는 방법은 간단히 -i 옵션을 사용하면 됨.

 – rpm -i quota-3.06-9.i386.rpm

 3. -ivh 옵션을 사용한 패키지 설치하기

 – 실제 패키지설치에서는 -i 옵션만을 사용하여 설치하는 방법보다는 -ivh 옵션을 사용함.

 – rpm -ivh quota-3.06-9.i386

 –
RPM 패키지 설치시에 -v 옵션( verbose ) 을 사용하면 자세한 설치과정을 보여줌. 그리고 설치시에 -h 옵션을
사용하면 설치과정을 ” # ” 표시를 하면서 그 진행과정을 표시해 줌. 따라서 거의 대부분의 RPM 패키지 설치시에는 -ivh
옵션을 함께 사용함.

 4. 이미 설치된 패키지 무시하고 패키지 설치하기

 – 패키지 설치시에 –replacepkgs 옵션을 사용하면 현재 설치하고 있는 패키지가 이미 시스템에 설치되어 있을 경우라 하더라도 설치를 하게 됨.


이 옵션( –replacepkgs ) 은 이미 설치한 패키지의 설정이 잘못되어 동일한 패키지로 깨끗하게 새로 설치할 경우,
또는 기존에 설치된 패키지를 삭제과정없이 무시하고 새로 설치하려고 할 경우에 유용하게 사용되는 옵션임.

 – –replacepkgs 옵션 사용에서 주의해야 할 것은 기존의 패키지의 설정과 파일들이 모두 삭제되므로 주의해야함. 즉 완전히 새로운 패키지를 처음 설치한 환경으로 돌아가게 됨.

 5. 다른 패키지으 피아릭과 중복될 경우에 무시하고 설치하고 설치하기

 –
RPM 패키지를 설치할 때에 현재 설치하는 패키지의 파일중 어떤 하나와 이미 시스템에 설치되어 있는 다른 패키지의 하나가 중복이
되는 경우가 흔하지는 않지만 가끔씩 발생함. 실제로는 하나의 파일뿐 아니라 여러 개의 파일에서 중복되어 충돌이 발생할 수 있으며
동일한 패키지의 중복설치시에도 파일중복으로 충돌에러가 발생할 수 있음. 즉, ” 패키지명 conflicts with file
from 패키지명 ” 이라는 메시지를 출력하면서 설치가 되지 않음.

 – 현재 설치하려고자 하는 패키지의 일부 파일과 이미 설치되어 있는 다른 패키지의 일부 파일과 중복되어 설치가 되지 않을 경우에 –replacefiles 라는 옵션을 사용하면 기존의 파일을 무시하고 새파일로 설치하게 됨.

 6. 패키지중복 또는 다른 패키지의 파일과 충돌발생시 무시하고 설치하기

 – –force 옵션을 사용.

 –
–force 옵션은 –replacepkgs 옵션과 –replacefiles 옵션, 그리고 –oldpackage 라는
옵션을 모두 하용하는 것과 동일한 효과를 가지고 있음. 따라서 패키지 설치시에 발생할 수 있는 중복과 충돌, 버전문제로 인한
에러발생시에는 –force 옵션을 사용하므로서 해결할 수 있게 됨.

 – –oldpackage 옵션은 현재
설치하려고 하는 패키지의 버전이 이미 설치되어 있는 패키지의 버전보다 낮은 버전일 경우에 에러가 발생함. 현재 설치하고자하는
버전이 더 낮은 버전일 경우에 이를 무시하고 설치하도록 하는 옵션이 –oldpackage 옵션임.

 7. 패키지 의존성문제를 무시하고 패키지 설치하기

 –
패키지를 설치하면서 발생할 수 있는 가장 흔한 에러가 ” 패키지 의존성 에러 ” 임. ” 패키지 의존성 에러 ” 란 패키지를
설치하거나 삭제할 때에 발생하는 에러로서 어떤 패키지를 설치( 삭제 ) 하려고 할 때에 그 패키지가 정상적으로 설치되기 위해서는
다른 패키지를 먼저 설치( 삭제 )가 되어야만 하는 것을 의미함.

 – ” 패키지 의존성 에러 ” 를 무시하고 설치 또는 삭제를 할 수 있는 옵션이 –nodeps 라는 옵션임.

 –
–nodeps 옵션은 패키지 설치시에 사용하는 것은 바람직하지 않다고 할 수 있음. 왜냐하면 패키지 의존성이란 설치하고자하는
패키지의 정상적인 작동을 위해서는 다른 패키지가 설치되어야만 한다는 것을 의미하는데 –nodeps 옵션을 사용하여 이를
무시하고 패키지를 설치하여도 설치된 패키지가 정상적으로 작동하지 않을 가능성이 크기 때문.

 – 가능한 패키지 설치시에는 –nodeps 옵션을 사용하는 것을 자제하도록 바람. 반면, –nodeps 옵션은 이미 설치되어 있는 패키지를 제거( 삭제 ) 할 때에는 매우 유용하게 사용됨.