KRPMBuilder - Criação fácil de RPMs

A instalação de programas a partir da fonte é sempre trabalhosa, mas quando não existem ainda pacotes RPM disponíveis para a nossa distro, é a única forma de testarmos um novo software. O KRPMBuilder torna o processo de criar RPMs muito simples e ao alcance de qualquer usuário capaz de de instalar programas a partir do "source".

[ Hits: 11.582 ]

Por: Paulino Ascenção em 14/05/2006


Notas finais



A exemplo do comando "./configure", serão exibidas mensagens de erro no caso de faltarem dependências. Se tudo correr bem, podemos finalmente instalar o nosso RPM para testar o software.

Os pacotes RPM vão surgir em /usr/src/packages/RPMS, na subdiretório correspondente ao tipo de processador (i386, i486, noarch, etc). Os pacotes .SRC.RPM são criados em /usr/src/packages/SRPMS.

Os arquivos fonte são descompactados e compilados em /usr/src/packages/BUILD.

Os arquivos que vão ser incluídos no RPM (binários, includes e bibliotecas) são criados em /var/tmp/build-root-{nome_do_arquivo} e os arquivos .spec em /usr/src/packages/SPECS.

É necessário ter permissão de escrita para estes diretórios:
  • /usr/src/packages
  • /var/tmp

Quem souber como configurar o KRPMBuilder para que o processo todo corra sem necessidade de permissões de root - dentro do diretório /home/{usuário} por exemplo - faça o favor publicar um artigo KRPMBuilder - avançado.

ATENÇÃO:
Os RPMs assim construídos tem a particularidade de meter dentro do mesmo saco (pacote) todo o software contido na fonte utilizada. Não cria um pacote "devel" por exemplo, põe tudo em um.

No caso do GTK2, temos usualmente 5 pacotes: gtk2, gtk2-devel, gtk2-doc, gtk2-engines e gtk2-themes. O KRPMBuilder criou apenas um único RPM com o conteúdo equivalente a todos aqueles pacotes, para a versão 2.8.9.

É sempre possível abrir o pacote criado pelo KRPMBuilder e o dividir em vários, à imagem das versões anteriores para respeitar os padrões.

O fato de existir apenas um pacote cria alguns problemas de falsas dependências não satisfeitas: No meu caso ao atualizar o gtk2 de versão 2.4.9 para a 2.8.9, a versão antiga foi removida (substituída), incluindo os pacotes devel e doc. Como tem outros programas no sistemas que dependem do gtk2-devel, passei a ter avisos de pacotes quebrados no sistema, embora tal não seja correto. Os arquivos necessários para esses programas funcionarem estão no sistema realmente, mas incluídos no gtk (base), pois deixou de existir um pacote designado gtk2-devel.

Para uma descrição mais detalhada do significado dos dados solicitados pelo KRPMBuilder, da terminologia utilizada, ou como abrir um pacote RPM, podem consultar o seguinte howto:
Boa sorte e bom Linux!

Página anterior    

Páginas do artigo
   1. Construir um pacote RPM em quatro passos:
   2. Notas finais
Outros artigos deste autor

Terminais leves no SuSE (LTSP)

Leitura recomendada

Ligando e abrindo somente uma aplicação no Linux

Instalando e utilizando o Web Crawler OpenWebSpider

Webmin - Solução em administração de sistemas

Criando repositório oficial do Debian

Guia rápido VI

  
Comentários
[1] Comentário enviado por m3ocs-d4rksun em 14/05/2006 - 17:19h

RPM?
Rotação por Minuto?
o que?
outro RPM?
Sistema de pacote...
hummm
não curto.. =]

[2] Comentário enviado por pa72 em 15/05/2006 - 05:54h

Para quem não pretende ser um geek (90% dos usuarios linux) é uma ferramenta formidavel para instalar / desinstalar software, e disponibilizar o pacote para outros usuarios da mesma distribuição, que assim podem instalar esse software sem terem de o compilar desde a source!

Combinado com o apt, para resolver automaticamente as dependencias, é muito útil.

[3] Comentário enviado por zezosc em 16/05/2006 - 01:46h

Incrivelmente, hoje vim ao VivaoLinux procurar com cirar rpm. E na capa já estava esse excelenta artigo.

Entretanto, não obtive total sucesso em usá-lo. Ocorreram os seguintes problemas:

- para copiar para /usr/src/RPM/SOURCES (uso Mandriva 2006) tem que ser como root (simples de resolver);
- "# Grupo: Indicar a mais adequada, conforme as seções do seu gerenciador de pacotes. Ex: Sistema/Bibliotecas;"
Não havia lista, mas aceitou preencher manualmente.

# "Provides" / "Requires" - estes campos são preenchidos automaticamente - não precisa dizer nada;
Não foram preenchidos automaticamente.

No restante, acho que está ótimo.

Parabéns pelo artigo.

Vlw.

[4] Comentário enviado por pa72 em 16/05/2006 - 07:43h

Tem duas opções: trabalha como root no KRPMBuilder (abre uma nova sessão do X para isso); ou muda o dono das pastas '/usr/src/packages' e '/var/tmp'.

Os valores 'requires' e 'provides' são preenchidos pelos scripts 'findprovides' 'findrequires' (ou algo parecido) que se encontram na directoria /usr/lib/rpm (no meu caso) - O problema pode ser de permissões, por voçê não estar a trabalhar como root.???

Ou se voçê não instalou atraves de um RPM para a sua distro, procure faze-lo.

[5] Comentário enviado por tigosm em 17/05/2006 - 20:54h

Esta é uma opção básica para os iniciantes, gostei deste artigo por ser simples de explicar...... Valew!

[6] Comentário enviado por zezosc em 18/05/2006 - 01:06h

Consegui criar RPMs usando o KRPMBuilder como root. Obrigado pela ajuda.

Vlw.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts