Eu só quero criar um arquivo RPM para distribuir meu "foobar" binário no Linux, com apenas algumas dependências. Ele tem um arquivo de configuração, /etc/foobar.conf, e deve ser instalado em / usr / bin / foobar.
Infelizmente, a documentação para o RPM tem 27 capítulos e eu realmente não tenho um dia para sentar e ler isso, porque também estou ocupado criando instaladores .deb e EXE para outras plataformas.
Qual é o mínimo absoluto que preciso fazer para criar um RPM? Suponha que o foobar binary e foobar.conf estejam no diretório de trabalho atual.
Respostas:
Costumo fazer rpm binário por aplicativos proprietários de embalagens - também moster como websphere - no linux. Portanto, minha experiência pode ser útil também para você, além disso, seria melhor fazer um RPM VERDADEIRO, se puder. Mas eu discordo.
Portanto, a etapa básica para empacotar seu programa (binário) é a seguinte - na qual suponho que o programa seja toybinprog com a versão 1.0, tenha um conf para ser instalado no /etc/toybinprog/toybinprog.conf e tenha um bin para ser instalado em / usr / bin chamado tobinprog:
1. crie seu ambiente de compilação do rpm para RPM <4.6,4.7
2. crie o tarball do seu projeto
3. Copie para o diretório de fontes
4. construa a fonte e o rpm binário
E isso é tudo.
Espero que esta ajuda
fonte
sudo dnf install rpm-build
- Comando Fedora 23 para instalar o rpmbuild v4.13 +Como distribuidor de aplicativos, o fpm soa perfeito para suas necessidades . Há um exemplo aqui que mostra como empacotar um aplicativo da fonte. O FPM pode produzir arquivos deb e arquivos RPM.
fonte
Para uma rápida criação de RPM, confira o Togo:
https://github.com/genereese/togo-rpm
O projeto tem um guia de início rápido e consegui criar um RPM básico em menos de 3 minutos.
Exemplo usando os dados fornecidos na pergunta original:
1) Crie o diretório do projeto usando o script:
2) Crie a estrutura de diretórios desejada em ./root e copie seus arquivos para ele:
3) Exclua os diretórios de propriedade do sistema da propriedade do seu RPM:
4) (OPCIONAL) Modifique a especificação gerada para alterar a descrição do seu pacote / dependências / versão / qualquer que seja, etc .:
5) Crie o RPM:
e seu RPM é cuspido no diretório ./rpms.
fonte
Da mesma forma, eu precisava criar um rpm com apenas alguns arquivos. Como esses arquivos eram controlados pela fonte e, por parecer bobo, eu não queria tará-los apenas para que o rpm os desviasse. Eu vim com o seguinte:
Configure seu ambiente:
mkdir -p ~/rpm/{BUILD,RPMS}
echo '%_topdir %(echo "$HOME")/rpm' > ~/.rpmmacros
Crie seu arquivo de especificação, foobar.spec, com o seguinte conteúdo:
Crie seu rpm:
rpmbuild -bb foobar.spec
Existe um pequeno truque especificando o 'source' como seu diretório atual, mas parecia muito mais elegante que a alternativa, que era, no meu caso, escrever um script separado para criar um tarball, etc., etc.
Nota: Na minha situação específica, meus arquivos foram organizados em pastas de acordo com o local em que precisavam ir, assim:
e assim a seção de preparação se tornou:
O que é um pouco mais limpo.
Além disso, eu estou no RHEL5.6 com rpm versões 4.4.2.3, portanto sua milhagem pode variar.
fonte
$RPM_BUILD_ROOT
para%{buildroot}
fazê-lo funcionar no meu "Red Hat Enterprise Linux Server versão 6.9". Além disso, os dois arquivos que estavam instalados precisavam estar no diretório atual quando executei o rpmbuild. Instalei-o na minha outra máquina com:sudo rpm -Uvh --nodeps foobar-0.1a-1.x86_64.rpm
Se
make config
funcionar para o seu programa ou se você tiver um script de shell que copie seus dois arquivos para o local apropriado, poderá usar o checkinstall . Vá para o diretório em que seu makefile está e chame-o com o parâmetro-R
(para RPM ) e, opcionalmente, com o script de instalação.fonte
Maneira fácil de compilar o pacote rpm a partir do binário (estas etapas foram testadas com o Fedora 18):
1) Primeiro você precisa instalar o rpmdevtools, portanto, execute estes comandos (atenção: execute como usuário normal)
2) Na pasta ~ / rpmbuild / SPECS, crie um novo arquivo: package_name.spec
3) Abra-o com um editor (como gedit) e escreva:
4) Crie ~ / rpmbuild / BUILDROOT / package_name-version-release.i386 e reproduza os caminhos em que os arquivos serão colocados. Nesse caso, por exemplo, crie:
5) Coloque nessas pastas os arquivos que você deseja inserir no pacote:
usr / share / pixmaps / package_name.png é o ícone binário usr / share / applications / package_name.desktop são as regras para inserir o programa nas entradas do menu
6) package_name.desktop deve ser assim:
As categorias são: standards.freedesktop.org/menu-spec/latest/apa.html
7) Corra
$ rpmbuild -bb ~/rpmbuild/SPECS/package_name.spec
8) Seu pacote foi incorporado na pasta ~ / rpmbuild / RPMS
Se você instalar este pacote, instale:
Obrigado a: losurs.org/docs/tips/redhat/binary-rpms
Para mais detalhes sobre a criação de rpm, dê uma olhada neste link .
Software java da GUI para criar o rpm: https://sourceforge.net/projects/javarpmbuilder/
fonte
Se você também conhece o Maven, o
rpm-maven-plugin
que simplifica a criação de RPMs: você precisa escrever apenas opom.xml
que será usado para criar o RPM. O ambiente de construção do RPM é criado implicitamente pelo plug-in.fonte
Processo de geração de RPM a partir do arquivo de origem:
fonte
Os RPMs geralmente são criados a partir da fonte, não dos binários.
Você precisa escrever o arquivo de especificações que cobre como configurar e compilar seu aplicativo; Além disso, quais arquivos incluir no seu RPM.
Uma rápida olhada no manual mostra que a maior parte do que você precisa é abordada no Capítulo 8 - também, como a maioria das distribuições baseadas em RPM tem fontes disponíveis, há literalmente um zilhão de exemplos de diferentes abordagens que você poderia observar.
fonte