
최신 버전으로 업데이트된 감소된 rpm 세트를 사용하여 Red Hat 7.8 ISO를 생성하려고 합니다. 필요한 패키지를 분리하고 다운로드하는 방법을 알아냈지만 새 ISO를 생성하면 부팅되고 설치 프로그램이 시작되지만 로컬 미디어에서 설치 소스를 찾지 못합니다. 나는 다음 단계를 따랐습니다.
- 소스 ISO 마운트
- 전체 파일 구조를 임시 폴더에 복사
- 필요한 RPM으로만 rpm을 필터링하세요.
- yumdownloader를 사용하여 각 RPM의 최신 버전을 새 패키지로 다운로드하세요.
- 원래 패키지 폴더를 삭제하고 newPackages 패키지의 이름을 바꿉니다.
다음 단계는 패키지에서 다음 명령을 실행하여 새 저장소를 생성하는 것입니다.
createrepo -dpo .. .
repodata 폴더에 새 repo 파일을 생성하고 repomd.xml 파일을 대체합니다.
그러나 부팅할 때 ISO에서 저장소를 찾을 수 없습니다.
새 저장소를 인식하기 위해 업데이트해야 하는 다른 파일이 있습니까, 아니면 ISO 호환 저장소를 만드는 데 필요한 몇 가지 옵션이 있습니까? 초기 설치에 필요한 rpm을 삭제했나요?
답변1
나는 comps.xml을 참조하는 여러 페이지를 찾았고 마침내 소스 ISO의 comps.xml이 파일 이름이 훨씬 길고 아카이브에 있다는 것을 알아냈습니다. 내 경우 파일 이름은 다음과 같습니다.
c0dee7823d016c47d3d8ad66d65f6cbce5284a00f349dc4d7a72a971c283edd0-comps.xml.gz
이 사실을 파악한 후 파일을 추출하여 새 ISO 트리의 상위 폴더에 배치했습니다. 그런 다음 다음 명령을 사용하여 내 패키지 폴더의 축소된 패키지 목록으로 원본 저장소를 성공적으로 업데이트할 수 있었습니다(패키지 폴더에서 이 명령을 실행).
createrepo --update -g ../../comps.xml -dpo .. .
명령을 분석하면 다음과 같습니다.
- --update는 createrepo에게 repodata 폴더의 기존 파일을 업데이트하도록 지시합니다.
- -g ../../comps.xml은 소스 comps.xml 파일에서 패키지 그룹을 복사합니다.
- -dp -d 플래그는 데이터베이스 파일을 생성하고 -p는 XML 파일을 보기 좋게 만듭니다.
- -o는 출력 위치를 지정합니다. 이 경우 원래 repodata 폴더가 있던 상위 폴더는
끝의 마침표(.)는 모든 패키지가 있는 현재 폴더를 나타냅니다.