
Estou tentando criar um ISO do Red Hat 7.8 com um conjunto reduzido de rpms que foi atualizado para a versão mais recente. Descobri como isolar os pacotes que preciso e baixá-los, mas quando crio o novo ISO, ele inicializa, inicia o instalador, mas nunca encontra a fonte de instalação na mídia local. Eu segui estas etapas:
- Monte o ISO de origem
- Copie toda a estrutura do arquivo para uma pasta temporária
- Filtre as rpms apenas para aquelas que eu preciso
- Use yumdownloader para baixar a versão mais recente de cada RPM em um newPackages
- Exclua a pasta Pacotes original e renomeie os pacotes newPackages.
A próxima etapa é criar o novo repodata, o que faço executando o seguinte comando em Pacotes:
createrepo -dpo .. .
Ele cria os novos arquivos repo na pasta repodata e substitui o arquivo repomd.xml
Quando eu inicializo, no entanto, ele não consegue encontrar o repositório na ISO.
Existe outro arquivo que precisa ser atualizado para reconhecer o novo repositório ou alguma opção que preciso para criar um repositório compatível com ISO? Excluí um rpm necessário para a instalação inicial?
Responder1
Encontrei várias páginas que faziam referência a comps.xml e finalmente descobri que comps.xml no ISO de origem tem um nome de arquivo muito mais longo e está em um arquivo. No meu caso, o nome do arquivo era:
c0dee7823d016c47d3d8ad66d65f6cbce5284a00f349dc4d7a72a971c283edd0-comps.xml.gz
Depois de descobrir isso, extraí o arquivo e coloquei-o na pasta pai da minha nova árvore ISO. Então, usando o seguinte comando, consegui atualizar o repositório original com a lista reduzida de pacotes da minha pasta Pacotes (execute este comando na sua pasta Pacotes):
createrepo --update -g ../../comps.xml -dpo .. .
Dividindo o comando:
- --update diz ao createrepo para atualizar os arquivos existentes na pasta repodata
- -g ../../comps.xml copia os grupos de pacotes do arquivo comps.xml de origem
- -dp o sinalizador -d cria os arquivos de banco de dados e -p torna os arquivos XML bonitos
- -o especifica o local da saída. Neste caso, a pasta pai onde estava a pasta repodata original
O ponto final (.) refere-se à pasta atual, onde estão todos os pacotes.