강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

rpm실무3편: RPM패키지 설치여부 확인에 대한 3가지 검색방법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

rpm실무3: RPM패키지 설치여부 확인에 대한 3가지 검색방법

 

 

 

 

 

앞의 강좌에서는 시스템에 설치된 모든 패키지들을 확인하는 방법에 대해서 알아보았다.

 

 

 

 

 이번 절에서는 RPM 설치와 관련된 검색방법 3가지에 대해서 알아보도록 할 것이다.

 

 

 

 

 여기서 얘기하는 3가지 방법은 각각 별도의 검색방법이 아닌 상호 밀접하게 연관된 방법임을 알아야 한다.

 

 

 

 

 예를들어 특정 패키지가 시스템에 설치되어 있는가를 확인하는 방법, 그리고 특정 패키지가 설치되어있다면 그 패키지에 의해서 생성된 파일들을 모두 확인하는 방법, 그리고 세번째는 앞의 경우와는 반대로 특정 파일이 어떤 패키지에 의해서 생성된 것인가를 확인하는 방법에 대해서 알아야 한다.

 

 

 

 

 이 세가지 확인방법은 각각 다르지만 상호 매우 밀접하게 연결되어 있다는 것을 알아야 한다.

 

 

 

 

 

 

, 그렇다면 이제 이 세가지 방법에 대해서 알아보도록 하자.

 

첫번째로 특정 패키지가 시스템에 설치되어 있는가를 확인하는 방법이다.

 

 

 

 

 

 

즉 특정 RPM패키지가 시스템에 설치되어 있는가를 확인하는 방법에 대한 설명으로서 앞의 예에서 배웠던 현재 시스템에 설치되어 있는 모든 패키지를 확인하는 방법의 응용이라고 할 수 있다.

 

 

 

 

 즉 특정 패키지가 시스템에 설치되어있는가를 확인하고자 한다면 아래와 같은 형식을 사용하기 바란다.

 

 

 

 

 

 

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

      

 


      
)sendmail관련패키지 설치여부확인 : rpm -qa | grep sendmail

       )httpd관련패키지 설치여부확인    : rpm -qa | grep httpd

 

 

 

 

위와 같은 형식으로 특정 패키지의 설치여부를 확인할 수 있다.

 

 

 

 

 다음 예는 현재 시스템에 quota관련 패키지가 설치되어 있는가를 확인한 것으로서 “rpm -qa | grep quota”라는 명령어의 결과를 나타낸 것이다.

 

 

 

 

  그 결과 “quota-3.16-5”라는 quota패키지가 설치되어 있다는 것을 알 수 있다.

 

 

 

 

 

 

[root@sulinux ~]#rpm -qa | grep quota

quota-3.13-1.2.3.2.SUL2

[root@sulinux ~]#

 

 

 

 

“rpm -qa”의 결과는 모든 패키지를 출력하는 것이다.

 

 

 

 

  그리고 “| grep quota”“rpm -qa”의 결과 값 중에서 “quota”문자열이 존재하는 행만을 출력한 것이다.

 

 

 

 

 “|”파이프명령어와 grep명령어를 조금 응용한 것이라고 할 수 있다.

 

 

 

 

 

 

다른 패키지의 설치여부도 이와 같은 방법으로 확인이 가능하므로 여러분들께서 직접 확인하기 바란다.

 

 

 

 

 

 

 

두번째로 특정 패키지에 의해서 설치된 모든 파일들을 확인해 보도록 하자.

 

즉 특정 RPM패키지에 의해서 설치되는 파일들을 모두 확인하는 것이다.

 

 

 

 

 이번에 설명하는 내용은 특정 패키지의 설치로 생성된 모든 파일들을 확인하는 것이다.

 

 

 

 

 다음은 사용하는 형식이다.

 

 

 

 

 

 

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

 

 

 

 

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

 

 

 

 

 다음 예는 “procps-3.2.7-9.SUL2”패키지의 설치로 인하여 생성된 모든 파일들을 확인하기 위하여 “rpm -ql procps-3.2.7-9.SUL2”명령어를 실행한 것이다.

 

 

 

 

 

 

[root@sulinux ~]#rpm -qa | grep procps

procps-3.2.7-9.SUL2

[root@sulinux ~]#

[root@sulinux ~]#rpm -ql procps-3.2.7-9.SUL2

/bin/ps

/lib/libproc-3.2.7.so

/sbin/sysctl

/usr/bin/free

/usr/bin/pgrep

/usr/bin/pkill

/usr/bin/pmap

/usr/bin/pwdx

/usr/bin/skill

/usr/bin/slabtop

/usr/bin/snice

/usr/bin/tload

/usr/bin/top

/usr/bin/uptime

/usr/bin/vmstat

/usr/bin/w

/usr/bin/watch

/usr/share/doc/procps-3.2.7

/usr/share/doc/procps-3.2.7/BUGS

/usr/share/doc/procps-3.2.7/FAQ

/usr/share/doc/procps-3.2.7/NEWS

/usr/share/doc/procps-3.2.7/TODO

/usr/share/man/man1/free.1.gz

/usr/share/man/man1/pgrep.1.gz

/usr/share/man/man1/pkill.1.gz

/usr/share/man/man1/pmap.1.gz

/usr/share/man/man1/ps.1.gz

/usr/share/man/man1/pwdx.1.gz

/usr/share/man/man1/skill.1.gz

/usr/share/man/man1/slabtop.1.gz

/usr/share/man/man1/snice.1.gz

/usr/share/man/man1/tload.1.gz

/usr/share/man/man1/top.1.gz

/usr/share/man/man1/uptime.1.gz

/usr/share/man/man1/w.1.gz

/usr/share/man/man1/watch.1.gz

/usr/share/man/man5/sysctl.conf.5.gz

/usr/share/man/man8/sysctl.8.gz

/usr/share/man/man8/vmstat.8.gz

[root@sulinux ~]#

 

 

 

 

 

위의 결과를 보면 procps-3.2.7-9.SUL2패키지의 설치로 생성되는 여러가지 명령어들과 설정파일들과 man페이지(매뉴얼)파일들을 확인할 수 있다.

 

 

 

 

 그리고 procps-3.2.7-9.SUL2패키지의 설치로 생성되는 위의 여러가지 명령어들이 상호 관련된 중요한 명령어들이라는 것도 알 수가 있을 것이다.

 

 

 

 

 

 

이렇게 단순히 어떤 명령어의 사용법만을 안다는 것과 이 명령어의 사용으로 어떤 정보를 얻고 활용할 수 있다라는 것은 조금 다른 문제이다.

 

 

 

 

  필자는 단순한 방법으로 확인 가능한 특정 패키지의 설치로 생성되는 파일들을 설명하였지만 이 파일들이 시스템 관리의 중요한 명령어의 리스트라는 것을 얼른 알아차리고 이들 명령어가 어떤 이유로 인하여 변조되거나 이상이 생겼을 경우에 procps-3.2.7-9.SUL2패키지만을 재설치함으로써 정상화 시킬 수 있겠다라는 점을 강조하기 위한 것이다.

 

 

 

 

  또한 다른 모든 패키지들도 이와 같은 방법으로 활용이 가능하다라는 것을 확장하여 전체적인 시스템관리의 측면에서 볼수 있기를 간절히 바라는 마음이다.

 

 

 

 

 

 

그리고 위의 결과가 너무 많아서 지면 관계상 일부결과를 생략하였다.

 

 

 

 

 참고로 위의 패키지로 생성된 파일이 몇개인가를 확인하려면 다음과 같이 간단히 확인하면 된다.

 

 

 

 

 

 

[root@sulinux ~]#rpm -ql procps-3.2.7-9.SUL2 | wc -l

39

[root@sulinux ~]#

 

 

 

 

procps패키지에 의해 생성된 파일은 모두 39개임을 알 수 있다.

 

 

 

 

 

 

 

세번째로 특정 파일이 어떤 패키지에 의해 설치된 것인가를 확인하는 방법이다.

 

 

 

 

 

 

현재 리눅스 시스템에 존재하는 특정 파일이 어떤 패키지의 설치로 생성된 파일인가를 확인하는 방법이 있다.

 

 

 

 

  이 방법을 확인하는 방법은 때때로 RPM으로 설치된 특정파일을 업그레이드 해야할 때에 굉장히 유용하게 사용된다.

 

 

 

 

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

 

 

 

 

 

 

즉 리눅스 시스템에 설치되어있는 특정 파일이 어떤 패키지의 설치로 인하여 생성된 파일인가를 확인하는 방법이다.

 

 

 

 

  rpm명령에서 -qf옵션을 사용하면 된다.

 

 

 

 

  사용하는 형식은 다음과 같다.

 

 

 

 

 

 

       사용형식 : rpm -qf  파일명

 

 

 

 

이때에 사용하는 경우의 파일명은 절대경로로 지정해 주는 것이 좋다.

 

 

 

 

 그리고 확인하고자 하는 모든 파일이 가능한 것은 아니며 RPM으로 설치된 파일일 경우에만 확인이 가능하다는 점에 유념하기 바란다.

 

 

 

 

 

 

다음 예는 /bin/ps명령어가 어떤 패키지의 설치로 생성된 파일인가를 확인하기 위하여 ls명령어로 먼저 확인한 후에  “rpm -qf /bin/ps”명령어를 실행하였다.

 

 

 

 

 

 

[root@sulinux ~]#ls -l /bin/ps

-r-xr-xr-x 1 root root 79068  7 10  2018 /bin/ps

[root@sulinux ~]#

[root@sulinux ~]#rpm -qf /bin/ps

procps-3.2.7-9.SUL2

[root@sulinux ~]#

 

 

 

 

 

위의 결과로 /bin/ps명령어는 “procps-3.2.7-9.SUL2”패키지의 설치로 인하여 생성된 파일임을 알 수 있다.

 

 

 

 

 이렇게 특정 파일의 생성원인이 되는 패키지를 확인하는 이유에 대해서 잠깐 설명하면 다음과 같다.

 

 

 

 

 

 

만약 시스템관리자의 실수로 이 파일(/bin/ps)이 변경되었다든가 혹은  크래킹으로 인해 이 파일이 변조되었다든가 또는 /bin/ps파일을 원래대로 되돌리려고 한다면 “procps-3.2.7-9.SUL2”패키지만을 재설치하면 될 것이다.

 

 

 

 

  이것이 궁극적인 이유가 되는 것은 아니지만 필자의 경험으로 본다면 실무에서 특정파일의 생성원인이 되는 패키지명을 확인하는 대부분의 이유는 시스템정상화를 위한 패키지재설치였기 때문에 이와같이 설명한 것이다.

 

 

 

 

 

 

위와 같이 특정파일이 어떤 패키지의 설치로 인하여 생성되었는가를 확인한 후에 확인한 패키지명으로 설치되는 모든 파일을 확인할 수 있다는 것이다.

 

 

 

 

  이 말의 의미는 다음과 같다.

 

 

 

 

 

 

특정 파일과 연관된 파일들을 확인하려고 한다면 어떤 패키지에 의해서 설치되는 파일들인가를 확인하는 것이 가장 현명한 방법이다.

 

 

 

 

  따라서 앞 절의 방법과 이번 절의 방법으로 다음과 같은 2단계로 이것이 가능해진다.

 

 

 

 

 

 

1단계 : 특정파일이 어떤 패키지의 설치로 생성되었는가를 확인하여 정확한 패키지명을 확인한다.

 

 

 

 

 

 

2단계 : 확인한 패키지명을 이용하여 그 패키지의 설치로 생성되는 모든 파일들을 확인한다.

 

 

 

 

 

 

즉 이렇게 확인한 파일들은 모두 특정 패키지의 설치로 생성되는 파일들이기 때문에 특정 서비스를 위한 실행데몬 파일들과 환경설정파일들과 관련로그파일들, 그리고 문서파일들을 모두 확인할 수 있다.

 

 

 

 

 

 

따라서 앞 절의 내용과 이번 절의 설명을 간단히 간추려본다면 /bin/ps파일과 연관된 파일들을 확인하기 위하여 먼저 /bin/ps파일이 procps-3.2.7-9.SUL2 패키지의 설치로 생성된 파일임을 확인한 후에 procps-3.2.7-9.SUL2패키지로 설치된 파일들의 리스트를 확인하였다.

 

 

 

 

 

 

이제 필자의 설명이 이쯤 되었다면 리눅스시스템에 가장 흔한 솔루션으로 사용되고 있는  sendmail서비스에 필요한 파일들을 모두 확인하고픈 욕구가 생길 수 있으며 혹은 웹서버인 Apache의 설정파일인 httpd.conf파일에 관련된 파일들의 위치를 모두 확인하고픈 욕구가 생길 것이다.

 

 

 

 

 

 

지금까지의 설명한 이번 절의 3가지 확인방법을 잘 이해하고 Apache Sendmail에 대해서여러분들이 직접 확인해보기 바란다.

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,798 개
  • 현재 접속자 :  111 명