Como posso modificar um arquivo RPM existente para instalação em um sistema Fedora 11?

0

Eu tenho um RPM que instalamos em nossos sistemas de produção que eu gostaria de modificar para que o instalador do sistema operacional não precise fazer nenhuma alteração no sistema após a instalação. A distro é bem antiga (e infelizmente não podemos atualizá-la para uma mais nova) - Fedora 11.

Existe um método para eu poder descompactar o RPM, alterar o arquivo e depois empacotá-lo?

Outras soluções que vi fazem referência aos utilitários "mock" e "mc" que eu não tenho.

    
por B. SAUNDERS 15.05.2017 / 21:34

1 resposta

0

Se o pacote rpm, que você deseja descompactar, for para o Fedora 11 ou anterior, o Fedora 11 {rpm, rpm2cpio} pode extrair o arquivo com, por exemplo, unPack_rpm.sh :

#!/bin/bash
# Purpose: Unpack RPM archives (by @unSpawn)
# Args: /path/to/archive
# Deps: Bash, GNU utils, RPM
rpmDetails() { for Q in changelog provides requires scripts triggers triggerscripts; do 
 rpm -q -p --${Q} "${f}" 2>&1 | grep -v NOKEY > "${Q}.log"; done; }
rpmUnpack() { f=$(readlink -f "${f}"); file "${f}"|grep -q "RPM.v" && \
 { d=$(basename "${f}" .rpm); d="./${d:=ERROR_$$}"; mkdir -p "${d}" && \
 { cd "${d}" && rpm2cpio "${f}" | cpio -idmv && rpmDetails "${f}"; }; }; }
for f in $@; do rpmUnpack "${f}"; done
exit 0

Quando você tiver editado os arquivos descompactados, copie o diretório / diretórios principais para BUILDROOT /. Quando / se rpmbuild -bb name.spec relatar "não encontrado", crie a pasta com o nome do aplicativo solicitado dentro de BUILDROOT / e copie seus arquivos lá. E execute rpmbuild -bb name.spec novamente.

Minha configuração recomendada do rpmbuild:

    
por 16.05.2017 / 15:11