rpm으로 보고된 설치된 패키지 목록이 yum으로 보고된 것과 다릅니다.

rpm으로 보고된 설치된 패키지 목록이 yum으로 보고된 것과 다릅니다.

서버 B가 서버 A와 정확히 동일한 설정을 갖기를 원합니다. 서버 A와 B는 동일한 Arch와 동일한 하드웨어를 가지고 있습니다.

내 계획은 서버 A에 설치된 모든 항목을 나열하고 서버 B의 목록을 사용하여 다음과 같이 설치하는 것입니다.

yum -y install $(cat installed.txt)

서버 A에서는 다음을 사용해야 합니다.

rpm -qa > installed.txt

또는:

yum list installed > installed.txt  

목록이 다른 것 같은데 이유를 모르겠습니다.

yum list installed930줄이 있고 rpm -qa895줄이 있는데 무슨 차이가 있나요?

답변1

yum listinstalled에는 930줄이 있고 rpm -qa에는 895줄이 있습니다. 차이점은 무엇입니까?

아마도 형식의 차이 일 것입니다. yum list는 터미널 크기에 맞게 일련의 영리한 래퍼를 수행합니다.

아마도 당신이하고 싶은 것은 다음을 사용하는 것입니다 :

# Run this on the master server
yum-debug-dump

# Run this on the new server, with the input from the above.
yum-debug-restore

답변2

차이점은 무엇입니까?

줄 수가 다른 주된 이유는 생성된 출력의 yum형식이 각 필드가 세로로 정렬되도록 지정되기 때문입니다(패키지 이름 및/또는 버전 번호의 길이에 관계없이). 두 줄을 사용하여 해당 패키지를 나열하고 두 번째 줄을 공백 문자로 채워 필드를 적절하게 정렬함으로써 이를 수행합니다. 다음 출력(CentOS 6 시스템의)은 두 줄을 사용하여 패키지를 나열하는 것을 보여줍니다 device-mapper-persistent-data.x86_64.

device-mapper-libs.x86_64         1.02.95-3.el6_7.4    @clearos-verified-updates
device-mapper-persistent-data.x86_64
                                  0.3.2-1.el6          @clearos
dhclient.x86_64                   12:4.1.1-49.P1.v6    @clearos-verified-updates

그러나 이것은 그렇지 않습니다.오직그 이유는 두 명령의 출력을 비교하면 알 수 있습니다.

명령 출력의 경우 rpm:

  1. 대문자로 시작하는 패키지가 소문자 앞에 나타나도록 정렬합니다.

    rpm -qa | LC_ALL=C sort
    
  2. sed패키지 버전 번호를 삭제하려면 다음 명령을 사용하십시오 .

    rpm -qa | LC_ALL=C sort r | sed 's/-[^-]*-[^-]*$//' >| installed.rpm
    

명령 출력의 경우 yum:

  1. 처음 두 헤더 행( Loaded pluginsInstalled Packages)을 제거합니다.

    Loaded plugins: etckeeper, fastestmirror
    Installed Packages
    

    우리는 sed이것을 위해 사용할 수 있습니다:

     yum list installed | sed '1,2d;'
    
  2. 또한 이를 사용하여 sed패키지 목록의 모든 연속 줄을 제거할 수도 있습니다(이 줄은 모든 패키지 버전이 정렬되도록 여러 공백으로 시작합니다).

    yum list installed | sed '1,2d;/^ /d;s/\..*//' >| installed.yum
    

이제 이 diff명령을 사용하여 두 파일의 출력을 비교할 수 있습니다. CentOS 6 시스템에 대한 결과는 다음과 같습니다.

# diff installed.{rpm,yum}
239,243d238
< gpg-pubkey
< gpg-pubkey
< gpg-pubkey
< gpg-pubkey
< gpg-pubkey

결론적으로

rpm -qa이는 패키지 서명을 위해 신뢰할 수 있는 공개 키가 있는 패키지 목록도 포함되어 있으며 yum이러한 패키지가 명령에 의해 무시됨을 나타냅니다 .

답변3

yum list installed패키지 이름과 패키지 버전이 긴 경우 두 줄의 출력을 생성할 수 있습니다.

답변4

yum list installed다음과 같이 출력해 보세요.

pam_krb5.i386                        2.2.14-22.el5                     installed

이제 rpm -qa할 말은 이렇습니다.

pam_krb5-2.2.14-22.el5

두 명령 모두 출력과 동일한 수의 줄을 제공합니다. 나는 rpm -qa목록을 선택하겠습니다 .

게다가,이것답변, 아래 메시지가 보입니다.

작업이 필요한 패키지에서 특별히 작동하는 프로그램 "rpm"과 종속성을 찾아 시스템에 없어도 .rpm 파일을 다운로드할 수 있는 보다 스마트한 관리 시스템인 "yum"이 있습니다.

따라서 차이점은 yum종속성이 해결되었지만 rpm모든 종속성이 설치되어 더 완전한 목록을 제공한다는 점일 수 있습니다.

yum내가 본 와 사이의 실제 차이점 rpm은 다음과 같습니다.

가장 눈에 띄는 문제 rpm는 대부분의 사람들이 일반적으로 국가라고 부르는 것입니다.의존성 지옥. 이 문제는 다른 많은 패키지에 의존하는 패키지에서 발생하며, 그 중 일부는 다른 많은 패키지에도 의존합니다. 우리 모두 알고 있듯이 프로그램이 제대로 작동하려면 모든 종속성을 설치해야 합니다. rpm이 작업을 자동으로 수행할 수 있는 방법은 없습니다. 필수 패키지를 설치하기 전에 필수 패키지가 모두 설치되었는지만 확인할 수 있습니다. 처음에 단일 패키지만 설치하려는 대부분의 사람들에게는 각 종속성을 수동으로 추적하고 설치하는 것이 중요한 작업입니다.

yum사용자가 설치하려는 패키지를 설치하기 전에 패키지 종속성을 추적하고 설치할 수 있는 기능. 이렇게 하면 설치하려는 패키지 이름만 알면 되고 필요한 패키지가 이미 설치되어 있는지 걱정할 필요가 없기 때문에 전체 프로세스가 단순화됩니다. 시스템에서 찾을 수 없는 패키지에 대해 시스템에서 사용 가능한 저장소를 검색합니다.

인용하다

http://www.difference Between.net/technology/difference- Between-yum-and-rpm/

관련 정보