Ao contrário do que se pensa, não é preciso ter um sistema baseado no Red-Hat para montar seu pacote RPM. Se você tiver uma distribuição baseada no Debian também é possível desenvolver seus pacotinhos. Para isso você precisa ter instalado o rpm. Por exemplo, no Debian digite:
# apt-get install rpm
Tendo feito isso verifique se existe o comando "rpmbuild".
Caso você já esteja usando uma distro RPM-Based, não precisa fazer nada.
Existem dois tipos de pacotes, um pacote pré-compilado ou um pacote com fontes. Para isso é preciso ter os fontes do software. No caso de pacotes com fontes, estes serão compilados no momento da instalação do pacote.
Agora temos que criar o arquivo de spec. Neste arquivo ficarão todas as informações sobre seu pacote, tais como nome, versão, dependências. Este arquivo tem os seguintes campos:
- Summary: Contém o nome do seu software completo;
- Name: Nome curto do pacote;
- Version: Versão do software que será empacotado;
- Release: O número de entrega, por exemplo, cada vez que empacota você aumenta esse número;
- License: A licença do pacote por exemplo GPL, LGPL, BSD, Public, EULA, FREEWARE;
- Group: A categoria a qual este pacote pertence;
- URL: O site oficial do pacote, aonde será encontrado sua documentação;
- BuildRoot: Aonde este pacote será compilado;
- Vendor: A organização que detém os direitos do software;
- Packager:O nome do empacotador.
Além destes campos existem as diretivas:
- %prep, lista quais os comandos devem ser executados para preparar o seu software a ser compilado;
- %build, lista de comandos necessários para compilação dos fontes;
- %install, lista de comandos necessários para instalação do pacote no sistema;
- %files, lista de arquivos que este pacote pertence. Ou seja, todos os arquivos do seu software dentro desta diretiva. Você pode usar ainda %defattr (determina propriedades dos arquivos) e %doc (determina arquivos de documentação);
- %clean, esta seção contém uma lista de comandos que limpam arquivos extras que tenham sido criados. Por exemplo, uma pasta dentro do /tmp que você tenha criado na compilação.