먼저 제가 킥스타트를 처음 접한다는 점을 말씀드리고 싶습니다. 따라서 잘못된 용어를 사용했다면 미리 사과드립니다.
내가 달성하려는 것 : CentOS와 제가 작성한 웹 기반 애플리케이션을 설치하기 위해 게스트 ISO를 만들려고 합니다. 다른 것이 아닌 애플리케이션을 실행하는 가상 머신이나 베어메탈 서버를 쉽게 배포할 수 있는 "어플라이언스" 유형 설치를 만들고 싶습니다.
RHEL을 기반으로 다른 회사에서 만든 ISO 샘플이 있고 그 회사의 지침을 따라 필요에 맞게 사용자 정의하려고 합니다.
질문: 설치할 패키지를 정의하는 샘플 iso에서 ks.cfg 파일을 보고 있는데, 결국 ISO 루트에 있는 RPM 목록이 될 것 같습니다. 다음은 ks.cfg 파일에서 발췌한 내용입니다.
#Package install information
%packages
@ base
@ core
@ acme-base
@ acme-platform
@ acme-application
iso의 디렉토리를 살펴보면 @acme-platform으로 인해 /acme/acmeplatform/RPMS/*.rpm이 설치될 것으로 생각됩니다.
제 질문은 @acme-platform에서 실제 RPM이 저장되는 ISO의 디렉터리로의 매핑을 정의하는 방법입니다.
편집: 첫 번째 답변을 읽은 후 질문을 명확히 하고 싶습니다. 실제로 어떤 파일이 RPM 위치를 파일에서 참조된 그룹에 매핑하는지 찾고 있습니다 ks.cfg
. 이 그룹을 구성하는 실제 패키지는 다음에 정의되어 있습니다./repodata/comps.xml
답변1
나열된 패키지는 실제로 yum
패키지 그룹입니다. 팀은 개별 패키지를 수동으로 나열할 필요가 없다는 사실(또는 특정 효과에 권장되는 패키지를 알아야 함)에 익숙합니다. 예를 들어 RHEL 6(CentOS 6으로 가정)에서 텍스트만 사용하는 경우 yum groupinstall Desktop
"Desktop"이라는 그룹을 충족하는 데 필요한 모든 패키지를 설치할 수 있으며 궁극적으로 Red Hat이 생각하는 GNOME Desktop 및 기타 응용 프로그램을 설치할 수 있습니다. 당신은 그것이 유용하다는 것을 알게 될 것입니다. 이는 기본적으로 "데스크톱을 원합니다"라고 말하는 것처럼 프로세스를 쉽게 만들기 위한 것입니다.
core
그룹은 RHEL base
/CentOS 기본의 일부이며 이러한 acme-*
그룹은 관련 장치에 적용될 수 있습니다. 아마도 rpm을 같은 디렉토리에 두었을 것입니다.
설치부터 시작하겠습니다루프백에 설치된 ISO를 보려면 yum 저장소를 만듭니다.yum groupinfo
그런 다음 필요한 명령을 실행하여 각 그룹에 사용할 수 있는 개별 패키지를 확인하십시오. 예를 들어 base
그룹의 패키지를 보려면 yum groupinfo base
Glory를 입력하고 볼 수 있습니다.
그것이 제공하는 패키지 이름은 DVD 어딘가에 있는 RPM이 될 것이며(기억은 안 나지만 "RPMS" 디렉터리가 있는 것 같습니다), 패키지 이름은 RPM 파일 이름의 첫 번째 부분을 구성합니다.
예를 들어, filename이라는 패키지가 있으면 btparser
호출될 수 있습니다 . 하지만 찾으려면 btparser-0.17-2.el6.x86_64.rpm
a를 실행하면 됩니다 .find /path/to/mountedISO -name 'btparser*
이렇게 하면 올바른 방향으로 갈 수 있습니다.
답변2
/etc/yum.conf 및 /etc/yum.repos.d/의 .repo 파일은 사용할 저장소를 결정합니다. 이러한 저장소에는 위치 필드를 통해 RPM의 위치를 지정하는 repodata/primary.xml 파일이 있습니다.
아마도 소프트웨어를 기본 CD 저장소에 통합하고 싶지 않을 것입니다. iso의 다른 곳에 생성하고 createrepo를 사용합니다. 킥스타트 구성에서 "repo" 명령을 추가하여 이 저장소를 추가할 수 있습니다(예: "repo --name=acme --baseurl=file://mnt/cdrom/local/repos/acme.txt" 사용).