SlideShare a Scribd company logo
1 of 32
Download to read offline
Criando pacotes RPM para o Fedora




            Allisson Azevedo
       http://blog.allisson.eti.br
     <allisson@fedoraproject.org>
Sobre esta apresentação
●   Orientada para o público intermediário
●   Conhecimentos sobre compilação de
    programas GNU/Linux e gerenciamento de
    pacotes RPM
●   Visão de como se tornar um colaborador no
    time de empacotamento do Fedora
Sobre o Allisson
●   Fedora Package Maintainer/Ambassador
    desde 2007
●   Atualmente mantenedor de 49 pacotes
    ●   https://admin.fedoraproject.org/pkgdb/users/pac
        kages/allisson
Por onde começar
●   Leia a documentação
    ●   http://fedoraproject.org/wiki/PackageMaintainer
        s/Join
    ●   http://fedoraproject.org/wiki/PackageMaintainer
        s/CreatingPackageHowTo
    ●   http://fedoraproject.org/wiki/Docs/Drafts/Buildin
        gPackagesGuide
Crie e teste o seu pacote localmente
●   Instale os pacotes necessários
    ●   yum groupinstall "Fedora Packager"
    ●   yum groupinstall "Development Tools"
●   rpmdev-setuptree
    ●   /home/user/rpmbuild/RPMS
    ●   /home/user/rpmbuild/SOURCES
    ●   /home/user/rpmbuild/SPECS
    ●   /home/user/rpmbuild/SRPMS
Crie e teste o seu pacote localmente
●   rpmdev-newspec meupacote
    ●   Skeleton specfile (minimal) has been created to
        "meupacote.spec".
Crie e teste o seu pacote localmente
Crie e teste o seu pacote localmente
●   rpmbuild -bs arquivo.spec --nodeps
●   Use sempre que possível o mockbuild para
    construir o pacote
    ●   http://fedoraproject.org/wiki/Using_Mock_to_tes
        t_package_builds
●   Teste com o rpmlint
    ●   pacote.src.rpm
    ●   pacote.rpm
Crie e teste o seu pacote localmente
●   yum localinstall pacote.rpm --nogpgcheck
●   yum remove pacote
Submeta seu pacote para revisão
●   Antes de submeter, verifique se o pacote já
    consta no repositório
    ●   https://admin.fedoraproject.org/pkgdb
●   Crie uma conta no bugzilla.redhat.com
●   Envie o .spec e o .src.rpm para uma url
    acessível
●   Crie o review-request para o seu pacote
    ●   https://bugzilla.redhat.com/bugzilla/enter_bug.c
        gi?product=Fedora&format=extras-review
Submeta seu pacote para revisão
●   Corrija os possíveis erros no seu pacote
●   Crie sua conta no FAS
    ●   https://admin.fedoraproject.org/accounts/
    ●   Grupo cla_done
    ●   Grupo packager
    ●   Grupo fedorabugs
Processo de sponsor
●   Mesmo após aprovado o seu pacote, você
    precisa obter uma permissão para enviar e
    construir o pacote no repositório
●   Não é um processo automático
●   Você precisa convencer um membro com
    nível de sponsor que entendeu como
    funcionam as regras de empacotamento no
    Fedora
Processo de sponsor
Adicionar o pacote no CVS
●   Esse processo é feito no review-request
    após o pacote ter sido aprovado
    ●   http://fedoraproject.org/wiki/PackageMaintainer
        s/CVSAdminProcedure
Adicionar o pacote no CVS
Adicionar o pacote no CVS
Adicionar o pacote no CVS
●   Após a criação da entrada no CVS é
    necessário importar os arquivos
    ●   fedora-cvs <packagename>
    ●   cd <packagename>
    ●   ./common/cvs-import.sh -b F-9 PATH_TO_SRPM
Adicionar o pacote no CVS
Construção do pacote
●   Após a importação para o cvs é hora de
    construir o pacote
    ●   fedora-cvs <packagename>
    ●   cd <packagename>/F-9/
    ●   make build
●   O sistema responsável pela construção de
    pacotes é o Koji
    ●   http://koji.fedoraproject.org/koji/
Construção do pacote
Construção do pacote
Construção do pacote
Construção do pacote
Construção do pacote
Submeter o pacote como atualização
●   Após a construção do pacote ele não é
    enviado automaticamente para o repositório
    ●   Esse envio automático é feito apenas na versão
        em desenvolvimento (rawhide)
●   É necessário submeter o pacote como uma
    atualização
●   O sistema responsável pela submissão de
    atualizações é o Bodhi
    ●   https://admin.fedoraproject.org/updates
Submeter o pacote como atualização
Submeter o pacote como atualização
Submeter o pacote como atualização
Submeter o pacote como atualização
Submeter o pacote como atualização
Perguntas?
Obrigado por sua atenção!




       Allisson Azevedo
   http://blog.allisson.eti.br
    <allisson@gmail.com>

More Related Content

What's hot

ASP.NET Core 2.0 - Pointer - Janeiro-2018
ASP.NET Core 2.0 - Pointer - Janeiro-2018ASP.NET Core 2.0 - Pointer - Janeiro-2018
ASP.NET Core 2.0 - Pointer - Janeiro-2018Renato Groff
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispors4nx
 
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018Renato Groff
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Renato Groff
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Erik Cruz
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overviewdtelaroli
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Leonardo Kobus
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017Renato Groff
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupPamela Canchanya
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Tiago Hillebrandt
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsMichel Cordeiro
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 
WordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
WordCamp SP 2019 - PeachPie unindo Php com C# .Net CoreWordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
WordCamp SP 2019 - PeachPie unindo Php com C# .Net CoreVanessa Valle
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018Renato Groff
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftGetup Cloud
 
Java enterprise - testcontainers
Java enterprise - testcontainersJava enterprise - testcontainers
Java enterprise - testcontainersSandro Giacomozzi
 
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GITMontando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GITLeo Baiano
 

What's hot (20)

Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
ASP.NET Core 2.0 - Pointer - Janeiro-2018
ASP.NET Core 2.0 - Pointer - Janeiro-2018ASP.NET Core 2.0 - Pointer - Janeiro-2018
ASP.NET Core 2.0 - Pointer - Janeiro-2018
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispor
 
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overview
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA Meetup
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkins
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
WordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
WordCamp SP 2019 - PeachPie unindo Php com C# .Net CoreWordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
WordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
Apresentacao de Introdução ao Apache Maven
Apresentacao de Introdução ao Apache MavenApresentacao de Introdução ao Apache Maven
Apresentacao de Introdução ao Apache Maven
 
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
 
Java enterprise - testcontainers
Java enterprise - testcontainersJava enterprise - testcontainers
Java enterprise - testcontainers
 
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GITMontando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
 

Viewers also liked

Como lucrar com Redes Sociais - ANJE 2011
Como lucrar com Redes Sociais - ANJE 2011Como lucrar com Redes Sociais - ANJE 2011
Como lucrar com Redes Sociais - ANJE 2011Pedro Caramez
 
Informações Hiperlocais no Twitter: Produção Colaborativa e Mobilidade
Informações Hiperlocais no Twitter: Produção Colaborativa e MobilidadeInformações Hiperlocais no Twitter: Produção Colaborativa e Mobilidade
Informações Hiperlocais no Twitter: Produção Colaborativa e Mobilidadegabizago
 
KRISTIN ELLIOTT BIO V2
KRISTIN ELLIOTT BIO V2KRISTIN ELLIOTT BIO V2
KRISTIN ELLIOTT BIO V2Judi Jordan
 
Sucata Eletronica Roberta 4 B
Sucata  Eletronica    Roberta 4 BSucata  Eletronica    Roberta 4 B
Sucata Eletronica Roberta 4 BJean Carvalho
 
Ignite Portugal #2 Porto Pedro Caramez
Ignite Portugal #2  Porto   Pedro CaramezIgnite Portugal #2  Porto   Pedro Caramez
Ignite Portugal #2 Porto Pedro CaramezPedro Caramez
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql accessInés Rosero
 
Marco común de normas de contabilidad
Marco común de normas de contabilidadMarco común de normas de contabilidad
Marco común de normas de contabilidadadelvalle2
 
Dia Dos Pais Barbara Papa E Beatriz
Dia Dos Pais Barbara Papa E BeatrizDia Dos Pais Barbara Papa E Beatriz
Dia Dos Pais Barbara Papa E BeatrizJean Carvalho
 
Diferencias educacion marilu
Diferencias educacion mariluDiferencias educacion marilu
Diferencias educacion mariluIzumi Kun
 

Viewers also liked (20)

Como lucrar com Redes Sociais - ANJE 2011
Como lucrar com Redes Sociais - ANJE 2011Como lucrar com Redes Sociais - ANJE 2011
Como lucrar com Redes Sociais - ANJE 2011
 
Signos
SignosSignos
Signos
 
Informações Hiperlocais no Twitter: Produção Colaborativa e Mobilidade
Informações Hiperlocais no Twitter: Produção Colaborativa e MobilidadeInformações Hiperlocais no Twitter: Produção Colaborativa e Mobilidade
Informações Hiperlocais no Twitter: Produção Colaborativa e Mobilidade
 
KRISTIN ELLIOTT BIO V2
KRISTIN ELLIOTT BIO V2KRISTIN ELLIOTT BIO V2
KRISTIN ELLIOTT BIO V2
 
Tour Du Monde
Tour Du MondeTour Du Monde
Tour Du Monde
 
Carnaval
CarnavalCarnaval
Carnaval
 
Sucata Eletronica Roberta 4 B
Sucata  Eletronica    Roberta 4 BSucata  Eletronica    Roberta 4 B
Sucata Eletronica Roberta 4 B
 
Ignite Portugal #2 Porto Pedro Caramez
Ignite Portugal #2  Porto   Pedro CaramezIgnite Portugal #2  Porto   Pedro Caramez
Ignite Portugal #2 Porto Pedro Caramez
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
El manejo contable
El manejo contableEl manejo contable
El manejo contable
 
Marco común de normas de contabilidad
Marco común de normas de contabilidadMarco común de normas de contabilidad
Marco común de normas de contabilidad
 
Dia Dos Pais Barbara Papa E Beatriz
Dia Dos Pais Barbara Papa E BeatrizDia Dos Pais Barbara Papa E Beatriz
Dia Dos Pais Barbara Papa E Beatriz
 
Diferencias educacion marilu
Diferencias educacion mariluDiferencias educacion marilu
Diferencias educacion marilu
 
Mateo betancur
Mateo betancurMateo betancur
Mateo betancur
 
Diapositi..
Diapositi..Diapositi..
Diapositi..
 
reference letter from CCANB
reference letter from CCANBreference letter from CCANB
reference letter from CCANB
 
MumtazQAResume
MumtazQAResumeMumtazQAResume
MumtazQAResume
 
RoxanneMoreno-New
RoxanneMoreno-NewRoxanneMoreno-New
RoxanneMoreno-New
 
Mary Kate Hilmes Leter 1
Mary Kate Hilmes Leter 1Mary Kate Hilmes Leter 1
Mary Kate Hilmes Leter 1
 
Diosa efffveeeeeeeeeeeee!
Diosa efffveeeeeeeeeeeee!Diosa efffveeeeeeeeeeeee!
Diosa efffveeeeeeeeeeeee!
 

Similar to Criando Pacotes Rpm Para O Fedora

Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDevHélio Medeiros
 
Gerenciamento de Pacotes no Linux
Gerenciamento de Pacotes no LinuxGerenciamento de Pacotes no Linux
Gerenciamento de Pacotes no LinuxElexsandro Rangel
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressTiago Hillebrandt
 
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutençãoGerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutençãospirallab
 
Técnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em djangoTécnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em djangoMario Chaves
 
Faça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFaça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFabiano Weimar
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginnersRafael Chiavegatto
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!magnunleno
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em PortuguêsOtavio Salvador
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaWandesson Soares
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Embarcados
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferVinicius Warto Campos
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareManoel Afonso
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteMichael Cardoso
 

Similar to Criando Pacotes Rpm Para O Fedora (20)

Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDev
 
Git Overview: Grupo RBS
Git Overview: Grupo RBSGit Overview: Grupo RBS
Git Overview: Grupo RBS
 
I educar-manual-de-instalaao
I educar-manual-de-instalaaoI educar-manual-de-instalaao
I educar-manual-de-instalaao
 
Gerenciamento de Pacotes no Linux
Gerenciamento de Pacotes no LinuxGerenciamento de Pacotes no Linux
Gerenciamento de Pacotes no Linux
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
 
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutençãoGerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
 
Técnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em djangoTécnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em django
 
Glassfish41 debian76
Glassfish41 debian76Glassfish41 debian76
Glassfish41 debian76
 
Nagios+ubuntu16
Nagios+ubuntu16Nagios+ubuntu16
Nagios+ubuntu16
 
Consegi 2011: Puppet
Consegi 2011: PuppetConsegi 2011: Puppet
Consegi 2011: Puppet
 
Faça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFaça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.caching
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginners
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!
 
Vagrant
VagrantVagrant
Vagrant
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em Português
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece Java
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de Software
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
 

More from Allisson Azevedo

Programação Assíncrona com Asyncio
Programação Assíncrona com AsyncioProgramação Assíncrona com Asyncio
Programação Assíncrona com AsyncioAllisson Azevedo
 
Introdução a linguagem Go
Introdução a linguagem GoIntrodução a linguagem Go
Introdução a linguagem GoAllisson Azevedo
 
Construindo um micro framework web em Python
Construindo um micro framework web em PythonConstruindo um micro framework web em Python
Construindo um micro framework web em PythonAllisson Azevedo
 
Consumindo API's OAuth{1,2} com Python
Consumindo API's OAuth{1,2} com PythonConsumindo API's OAuth{1,2} com Python
Consumindo API's OAuth{1,2} com PythonAllisson Azevedo
 
Tarefas Assíncronas com Django e Celery
Tarefas Assíncronas com Django e CeleryTarefas Assíncronas com Django e Celery
Tarefas Assíncronas com Django e CeleryAllisson Azevedo
 
Deploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoDeploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoAllisson Azevedo
 
Desenvolvimento Web com Django
Desenvolvimento Web com DjangoDesenvolvimento Web com Django
Desenvolvimento Web com DjangoAllisson Azevedo
 
Otimizando sites com o nosql redis
Otimizando sites com o nosql redisOtimizando sites com o nosql redis
Otimizando sites com o nosql redisAllisson Azevedo
 
Ecossistema Python Para Web
Ecossistema Python Para WebEcossistema Python Para Web
Ecossistema Python Para WebAllisson Azevedo
 
Empacotamento Rpm Na Pratica
Empacotamento Rpm Na PraticaEmpacotamento Rpm Na Pratica
Empacotamento Rpm Na PraticaAllisson Azevedo
 
Palestra CouchDB III ENSOL
Palestra CouchDB III ENSOLPalestra CouchDB III ENSOL
Palestra CouchDB III ENSOLAllisson Azevedo
 
Ruby on Rails Enecomp 2008
Ruby on Rails Enecomp 2008Ruby on Rails Enecomp 2008
Ruby on Rails Enecomp 2008Allisson Azevedo
 
Desenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto FedoraDesenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto FedoraAllisson Azevedo
 

More from Allisson Azevedo (16)

Programação Assíncrona com Asyncio
Programação Assíncrona com AsyncioProgramação Assíncrona com Asyncio
Programação Assíncrona com Asyncio
 
Introdução a linguagem Go
Introdução a linguagem GoIntrodução a linguagem Go
Introdução a linguagem Go
 
Docker + Django
Docker + DjangoDocker + Django
Docker + Django
 
Construindo um micro framework web em Python
Construindo um micro framework web em PythonConstruindo um micro framework web em Python
Construindo um micro framework web em Python
 
Consumindo API's OAuth{1,2} com Python
Consumindo API's OAuth{1,2} com PythonConsumindo API's OAuth{1,2} com Python
Consumindo API's OAuth{1,2} com Python
 
Tarefas Assíncronas com Django e Celery
Tarefas Assíncronas com Django e CeleryTarefas Assíncronas com Django e Celery
Tarefas Assíncronas com Django e Celery
 
Deploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoDeploy completo de uma aplicação Django
Deploy completo de uma aplicação Django
 
Desenvolvimento Web com Django
Desenvolvimento Web com DjangoDesenvolvimento Web com Django
Desenvolvimento Web com Django
 
Otimizando sites com o nosql redis
Otimizando sites com o nosql redisOtimizando sites com o nosql redis
Otimizando sites com o nosql redis
 
Ecossistema Python Para Web
Ecossistema Python Para WebEcossistema Python Para Web
Ecossistema Python Para Web
 
Palestra iv-ensol-nosql
Palestra iv-ensol-nosqlPalestra iv-ensol-nosql
Palestra iv-ensol-nosql
 
Empacotamento Rpm Na Pratica
Empacotamento Rpm Na PraticaEmpacotamento Rpm Na Pratica
Empacotamento Rpm Na Pratica
 
Palestra CouchDB III ENSOL
Palestra CouchDB III ENSOLPalestra CouchDB III ENSOL
Palestra CouchDB III ENSOL
 
Ruby on Rails Enecomp 2008
Ruby on Rails Enecomp 2008Ruby on Rails Enecomp 2008
Ruby on Rails Enecomp 2008
 
Desenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto FedoraDesenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto Fedora
 
RESTful Web Services
RESTful Web ServicesRESTful Web Services
RESTful Web Services
 

Criando Pacotes Rpm Para O Fedora

  • 1. Criando pacotes RPM para o Fedora Allisson Azevedo http://blog.allisson.eti.br <allisson@fedoraproject.org>
  • 2. Sobre esta apresentação ● Orientada para o público intermediário ● Conhecimentos sobre compilação de programas GNU/Linux e gerenciamento de pacotes RPM ● Visão de como se tornar um colaborador no time de empacotamento do Fedora
  • 3. Sobre o Allisson ● Fedora Package Maintainer/Ambassador desde 2007 ● Atualmente mantenedor de 49 pacotes ● https://admin.fedoraproject.org/pkgdb/users/pac kages/allisson
  • 4. Por onde começar ● Leia a documentação ● http://fedoraproject.org/wiki/PackageMaintainer s/Join ● http://fedoraproject.org/wiki/PackageMaintainer s/CreatingPackageHowTo ● http://fedoraproject.org/wiki/Docs/Drafts/Buildin gPackagesGuide
  • 5. Crie e teste o seu pacote localmente ● Instale os pacotes necessários ● yum groupinstall "Fedora Packager" ● yum groupinstall "Development Tools" ● rpmdev-setuptree ● /home/user/rpmbuild/RPMS ● /home/user/rpmbuild/SOURCES ● /home/user/rpmbuild/SPECS ● /home/user/rpmbuild/SRPMS
  • 6. Crie e teste o seu pacote localmente ● rpmdev-newspec meupacote ● Skeleton specfile (minimal) has been created to "meupacote.spec".
  • 7. Crie e teste o seu pacote localmente
  • 8. Crie e teste o seu pacote localmente ● rpmbuild -bs arquivo.spec --nodeps ● Use sempre que possível o mockbuild para construir o pacote ● http://fedoraproject.org/wiki/Using_Mock_to_tes t_package_builds ● Teste com o rpmlint ● pacote.src.rpm ● pacote.rpm
  • 9. Crie e teste o seu pacote localmente ● yum localinstall pacote.rpm --nogpgcheck ● yum remove pacote
  • 10. Submeta seu pacote para revisão ● Antes de submeter, verifique se o pacote já consta no repositório ● https://admin.fedoraproject.org/pkgdb ● Crie uma conta no bugzilla.redhat.com ● Envie o .spec e o .src.rpm para uma url acessível ● Crie o review-request para o seu pacote ● https://bugzilla.redhat.com/bugzilla/enter_bug.c gi?product=Fedora&format=extras-review
  • 11. Submeta seu pacote para revisão ● Corrija os possíveis erros no seu pacote ● Crie sua conta no FAS ● https://admin.fedoraproject.org/accounts/ ● Grupo cla_done ● Grupo packager ● Grupo fedorabugs
  • 12. Processo de sponsor ● Mesmo após aprovado o seu pacote, você precisa obter uma permissão para enviar e construir o pacote no repositório ● Não é um processo automático ● Você precisa convencer um membro com nível de sponsor que entendeu como funcionam as regras de empacotamento no Fedora
  • 14. Adicionar o pacote no CVS ● Esse processo é feito no review-request após o pacote ter sido aprovado ● http://fedoraproject.org/wiki/PackageMaintainer s/CVSAdminProcedure
  • 17. Adicionar o pacote no CVS ● Após a criação da entrada no CVS é necessário importar os arquivos ● fedora-cvs <packagename> ● cd <packagename> ● ./common/cvs-import.sh -b F-9 PATH_TO_SRPM
  • 19. Construção do pacote ● Após a importação para o cvs é hora de construir o pacote ● fedora-cvs <packagename> ● cd <packagename>/F-9/ ● make build ● O sistema responsável pela construção de pacotes é o Koji ● http://koji.fedoraproject.org/koji/
  • 25. Submeter o pacote como atualização ● Após a construção do pacote ele não é enviado automaticamente para o repositório ● Esse envio automático é feito apenas na versão em desenvolvimento (rawhide) ● É necessário submeter o pacote como uma atualização ● O sistema responsável pela submissão de atualizações é o Bodhi ● https://admin.fedoraproject.org/updates
  • 26. Submeter o pacote como atualização
  • 27. Submeter o pacote como atualização
  • 28. Submeter o pacote como atualização
  • 29. Submeter o pacote como atualização
  • 30. Submeter o pacote como atualização
  • 32. Obrigado por sua atenção! Allisson Azevedo http://blog.allisson.eti.br <allisson@gmail.com>