Reconstruindo um pacote RPM
Já pensou na possibilidade de instalar um pacote RPM, alterar alguns arquivos a seu gosto e em seguida gerar o pacote com as alterações feitas? Pois bem, este é meu primeiro artigo no Viva o Linux e espero que seja útil à comunidade.
Parte 2: Mexendo no pacote desejado
Como exemplo, vou mexer no pacote redhat-release-8.0-8,
que vem na instalação do RedHat 8.
Para checar a que pacote pertence determinado arquivo, basta digitar:
rpm -qf </caminho/arquivo>
Exemplo:
# rpm -qf /etc/issue
redhat-release-8.0-8
Este arquivo é exibido na tela de login inicial local em modo texto da máquina:
# rpmrebuild redhat-release-8.0-8
Ele exibe os seguintes resultados:
A processar os ficheiros: redhat-release-8.0-8
Provides: redhat-release = 8.0-8
PreReq: rpmlib(VersionedDependencies) <= 3.0.3-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires(interp): /bin/sh
Requires(rpmlib): rpmlib(VersionedDependencies) <= 3.0.3-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires: /bin/sh /bin/sh
Obsoletes: rawhide-release
Gravei: /usr/src/redhat/RPMS/noarch/redhat-release-8.0-8.noarch.rpm
result: /usr/src/redhat/RPMS/noarch/redhat-release-8.0-8.noarch.rpm
Por fim, o RPM será gerado no seguinte caminho:
Conforme descrito no resultado do comando, o caminho pode mudar caso o pacote seja específico para alguma arquitetura. Portanto, o noarch será substituído pera arquitetura.
Depois é só você se divertir instalando seu pacote personalizado.
Este processo se torna útil na construção de uma distro personalizada ou para facilitar seu trabalho instalando determinado pacote já com as alterações necessárias.
Espero ter contribuído um pouco com a comunidade já contribuiu muito para comigo.
Para checar a que pacote pertence determinado arquivo, basta digitar:
rpm -qf </caminho/arquivo>
Exemplo:
# rpm -qf /etc/issue
redhat-release-8.0-8
Este arquivo é exibido na tela de login inicial local em modo texto da máquina:
Red Hat Linux release 8.0 (Psyche) Kernel \r on an \mModifiquei o arquivo ao meu gosto e vou gerar o pacote novamente da seguinte forma:
# rpmrebuild redhat-release-8.0-8
Ele exibe os seguintes resultados:
A processar os ficheiros: redhat-release-8.0-8
Provides: redhat-release = 8.0-8
PreReq: rpmlib(VersionedDependencies) <= 3.0.3-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires(interp): /bin/sh
Requires(rpmlib): rpmlib(VersionedDependencies) <= 3.0.3-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires: /bin/sh /bin/sh
Obsoletes: rawhide-release
Gravei: /usr/src/redhat/RPMS/noarch/redhat-release-8.0-8.noarch.rpm
result: /usr/src/redhat/RPMS/noarch/redhat-release-8.0-8.noarch.rpm
Por fim, o RPM será gerado no seguinte caminho:
- /usr/src/redhat/RPMS/noarch/redhat-release-8.0-8.noarch.rpm
Conforme descrito no resultado do comando, o caminho pode mudar caso o pacote seja específico para alguma arquitetura. Portanto, o noarch será substituído pera arquitetura.
Depois é só você se divertir instalando seu pacote personalizado.
Este processo se torna útil na construção de uma distro personalizada ou para facilitar seu trabalho instalando determinado pacote já com as alterações necessárias.
Espero ter contribuído um pouco com a comunidade já contribuiu muito para comigo.