A principal diferença para um mantenedor de pacotes (acho que seria o 'desenvolvedor' na linguagem Debian) é a maneira como os meta-dados do pacote e os scripts que os acompanham se encaixam.
No mundo do RPM, todos os seus pacotes (os RPMs que você mantém) estão localizados em algo como ~/rpmbuild
. Abaixo, há o diretório SPEC
para seus arquivos spec, um diretório SOURCES
para tarballs de origem, RPMS
e SRPMS
diretórios para colocar os RPMs e SRPMs recém-criados, e algumas outras coisas que não são relevantes agora .
Tudo que tem a ver com a forma como o RPM será criado está no arquivo de especificações: quais correções serão aplicadas, possíveis pré e pós-scripts, meta-dados, changelog, tudo . Todos os tarballs de origem e todas as correções de todos os seus pacotes estão em SOURCES.
Agora, pessoalmente, eu gosto do fato de que tudo entra no arquivo spec, e que o arquivo spec é uma entidade separada do tarball de origem, mas eu não estou muito entusiasmado em ter todos fontes em FONTES. IMHO, SOURCES fica muito confuso e você tende a perder a noção do que está lá. No entanto, as opiniões diferem.
Para os RPMs é importante usar o mesmo tarball exato que o release do projeto upstream, até o timestamp. Geralmente, não há exceções a essa regra. Pacotes Debian também requerem o mesmo tarball que o upstream, embora a política Debian exija que alguns tarballs sejam reempacotados (obrigado, Umang).
Os pacotes Debian adotam uma abordagem diferente. (Perdoe qualquer erro aqui: Eu sou muito menos experiente com o deb que estou com o RPM.) Os arquivos de desenvolvimento dos pacotes Debian estão contidos em um diretório por pacote.
O que eu gosto de pensar sobre essa abordagem é o fato de que tudo está contido em um único diretório.
No mundo Debian, é um pouco mais aceito carregar patches em um pacote que não é (ainda) o upstream. No mundo do RPM (pelo menos entre os derivados da Red Hat) isso é desaprovado. Veja "Projeto Fedora: Ficar perto dos projetos de upstream" .
Além disso, o Debian possui uma grande quantidade de scripts que são capazes de automatizar uma grande parte da criação de um pacote. Por exemplo, criar um pacote - simple - de um programa Python setuptool'ed é tão simples quanto criar alguns arquivos de metadados e executar debuild
. Dito isto, o arquivo spec para tal pacote no formato RPM seria bem curto e no mundo do RPM, também, há muita coisa que é automatizada atualmente.