yum 저장소에 대한 사용자 정의 패키지 그룹을 생성하면 "comps 파일이 비어 있거나 손상되었습니다"가 발생합니다.

yum 저장소에 대한 사용자 정의 패키지 그룹을 생성하면 "comps 파일이 비어 있거나 손상되었습니다"가 발생합니다.

RHEL7.6에서 사용자 정의 yum 저장소에 대한 사용자 정의 패키지 그룹을 설정하는 데 문제가 있습니다.

먼저, 사용자 정의 yum 저장소를 생성하기 위해 수행한 단계는 다음과 같습니다.

  1. 모든 RPM을 포함하는 디렉터리를 만들고 관련 항목을 복사합니다.

    $ mkdir MyRepo
    $ cp /path/to/some/*.rpm MyRepo/
    
  2. 저장소에 대한 메타데이터를 생성합니다.

    $ cd MyRepo
    $ createrepo .
    

이제 Custom Repository가 생성되었으니 아래와 같이 패키지 그룹을 생성해보겠습니다.

  1. 다음 위치에 comps.xml파일을 만듭니다 MyRepo/repodata/.
    $ touch repodata/comps.xml
    
    다음 형식의 메타데이터를 포함합니다.
    <comps>
    <!--  <meta> -->
    <!-- Meta information will go here eventually... -->
    <!--  </meta> -->
      <group>
        <id>myrepo</id>
        <name>MyRepo</name>
        <default>true</default>
        <description>My custom repository</description>
        <uservisible>true</uservisible>
        <packagelist>
          <packagereq type="mandatory">octave</packagereq>
          <packagereq type="mandatory">octave-devel</packagereq>
          etc...
        </packagelist>
      </group>
    </comps>
    
  2. 그런 다음 그룹 데이터를 설명하기 위해 이전에 생성한 메타데이터를 업데이트합니다.
    createrepo -g repodata/comps.xml .
    
  3. myrepo.repo마지막으로 디렉터리를 만들고 /etc/yum.repos.d/다음 내용을 여기에 넣습니다.
    [myrepo]
    name=MyRepo
    baseurl=file:///path/to/MyRepo
    enabled=1
    

그 일이 끝나면 yum clean all불평 없이 일했어요. 하지만 테스트하러 갔을 때 yum --noplugins groupinfo MyRepo상황이 끔찍하게 잘못되었습니다. 다음 오류가 발생합니다.

There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Failed to add groups file for repository: MyRepo - comps file is empty/damaged
Warning: group/environment MyRepo does not exist.

내 comps 파일이 비어 있지 않고 해당 해시 값이 동일합니다 repodata/repomd.xml. 이를 디버깅하는 방법이 매우 혼란스럽습니다. 내가 뭘 잘못했나요? 패키지 이름을 잘못 입력하면 그렇게 큰 실수가 발생할 수 있나요?

도움을 주셔서 미리 감사드립니다.

답변1

"여기에 설치된 그룹 파일이 없습니다." 및 "저장소에 그룹 파일을 추가할 수 없습니다. base-comps 파일이 비어 있거나 손상되었습니다."라는 동일한 메시지가 나타납니다.

공식 저장소에서 기본 설치를 수행하고 있습니다.

캐시 문제인 것으로 나타났습니다.

sudo yum rm -rf /var/cache/yum

모든 것이 지워졌습니다

관련 정보