SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Entendendo os
  pacotes deb
   Fernando Mercês

#DebianDay Barra Mansa - RJ
   20 de agosto de 2011
$ whoami

Consultor de projetos com software livre na 4Linux,
bacharelando em Ciência da Computação, entusiasta
em segurança da informação, amante de Engenharia
Reversa, LPIC-2, A+, autor de artigos técnicos,
desenvolvedor "hobbysta" e colaborador do Debian
GNU/Linux.
Agenda

● Como são distribuídos os programas no mundo
  GNU/Linux

● O que é um pacote pré-compilado?

● Entendendo o tipo de arquivo deb

● Construindo um pacote "na unha"

● Ferramentas para gerência de pacotes

● Empacotando seus próprios programas
Como são distribuídos os
 programas no mundo GNU/Linux
  ● Código-fonte (.tgz, .tar.gz, tar.bzip2...)
      ○ Instalação
$ ./configure
$ make
# make install
      ○ Dependências - como fazer?

 ● Pacotes (.deb, .rpm, .pkg...)
    ○ Instalação
        ■ apt-get, aptitude, wajig, yum, dpkg, rpm,
          pacman, zypper, slackpkg...

 ● Binários estáticos
O que é um
       pacote pré-compilado?
● Um ou mais binários são compilados antes de
  serem empacotados.

● Contém informações sobre o programa
  empacotado, autor, dependências, documentação,
  changelogs etc.

● Fácil instalação.

● Pré-configurado.
Entendendo o
         tipo de arquivo deb
● Um arquivo deb consiste em vários
  arquivos agrupados com o ar (do conjunto
  binutils).

● $ ar t pev_0.40-1_amd64.deb
    ○ debian-binary
    ○ control.tar.gz
    ○ data.tar.gz
Entendendo o
                tipo de arquivo deb
$ cat debian-binary
2.0
$ cat md5sums
c7428a9504b8980e9c3fa52095ad4669      usr/bin/pev
cc13a88eec30886c8156c1a2ae860daa      usr/share/doc/pev/changelog.
Debian.gz
e5f6b9940645d82c1cfffb06d425d4ae          usr/share/doc/pev/changelog.gz
1aaf9ae37e73b95f2735d2a16e8c08ba          usr/share/doc/pev/copyright
d04afc14bb0f45430ecef7fd6655c214          usr/share/man/man1/pev.1.gz

$ tar tf data.tar.gz
./usr/share/man/man1/pev.1.gz
./usr/share/doc/pev/copyright
./usr/share/doc/pev/changelog.Debian.gz
./usr/share/doc/pev/changelog.gz
./usr/bin/
./usr/bin/pev
Entendendo o
             tipo de arquivo deb
$ cat control
Package: pev
Version: 0.40-1
Architecture: amd64
Maintainer: Fernando Mercês <fernando@mentebinaria.com.br>
Installed-Size: 72
Depends: libc6 (>= 2.2.5)
Section: utils
Priority: extra
Homepage: http://pev.sourceforge.net
Description: text-based tool to analyze PE files
 pev is a tool to get information of PE32/PE32+
 executables (EXE, DLL, OCX etc) like headers,
 sections, resources and more.
Construindo um
        pacote deb "na unha"
● Técnica útil somente para fins de aprendizagem.

● Não é a maneira correta de se fazer um pacote.

● Um pacote construído dessa forma nunca seria
  aceito nos repositórios oficiais do Debian e
  derivados (o que inclui o Ubuntu).

● Passo a passo em http://www.mentebinaria.com.
  br/textos#0x19
Ferramentas para
         gerência de pacotes
● DPKG
   ○ Ferramenta de baixo nível para gerência de
     pacotes (instala, remove, exibe informações,
     mantém uma lista de pacotes instalados etc).

● APT
   ○ Front-end de alto nível para o DPKG com
     muitos recursos adicionais. Um dos mais
     interessantes é a resolução automática de
     dependências.

● Aptitude
   ○ Front-end para o APT com ainda mais
     facilidades (inclusive tela interativa).
Ferramentas para
         gerência de pacotes
● Synaptic
   ○ Front-end gráfico (GTK+) para o APT.
Empacotando seus
           próprios programas
 ● Interessante fazer da maneira mais correta
   possível, mesmo que não vá para o repositório do
   Debian.

 ● Tutorial de introdução, baseado em sessão de IRC
   sobre o assunto: http://wiki.debian.
   org/IntroDebianPackaging

  ● Documentação oficial: http://www.debian.org/doc/
# apt-get install packaging-tutorial debian-policy
maint-guide
Créditos e licenças

● Conteúdo: Fernando Mercês (@MenteBinaria)
  http://www.mentebinaria.com.br
  Licença: CC BY 3.0
● Template do Google Docs por Nathan Handler
  Licença: GPL-2
● Template baseado no template para OpenOffice.org
  por Raphaël Hertzog
  http://raphaelhertzog.com/go/ooo-template
  Licença: GPL-2
● Imagem de fundo por Alexis Younes “ayo”
  http://www.73lab.com
  Licença: GPL-2

Más contenido relacionado

La actualidad más candente

Aplicações livres para o seu Desktop - Leonardo Menezes Vaz
Aplicações livres para o seu Desktop - Leonardo Menezes VazAplicações livres para o seu Desktop - Leonardo Menezes Vaz
Aplicações livres para o seu Desktop - Leonardo Menezes Vaz
Tchelinux
 
Lab so-abertos-unidade11
Lab so-abertos-unidade11Lab so-abertos-unidade11
Lab so-abertos-unidade11
Leandro Almeida
 
Bioinformática - Sistemas Operacionais e Hardware
Bioinformática - Sistemas Operacionais e HardwareBioinformática - Sistemas Operacionais e Hardware
Bioinformática - Sistemas Operacionais e Hardware
Gabriel Fernandes
 
Aplicativos livres para o seu Desktop
Aplicativos livres para o seu DesktopAplicativos livres para o seu Desktop
Aplicativos livres para o seu Desktop
elliando dias
 

La actualidad más candente (17)

Gerenciamento de Pacotes no Linux
Gerenciamento de Pacotes no LinuxGerenciamento de Pacotes no Linux
Gerenciamento de Pacotes no Linux
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Aplicações livres para o seu Desktop - Leonardo Menezes Vaz
Aplicações livres para o seu Desktop - Leonardo Menezes VazAplicações livres para o seu Desktop - Leonardo Menezes Vaz
Aplicações livres para o seu Desktop - Leonardo Menezes Vaz
 
2021 Latinoware
2021 Latinoware 2021 Latinoware
2021 Latinoware
 
Linux Conceitos Design
Linux Conceitos DesignLinux Conceitos Design
Linux Conceitos Design
 
Ici 7 ano capitulo 2 - windows
Ici 7 ano   capitulo 2 - windowsIci 7 ano   capitulo 2 - windows
Ici 7 ano capitulo 2 - windows
 
Software Livre, o caminho do futuro
Software Livre, o caminho do futuroSoftware Livre, o caminho do futuro
Software Livre, o caminho do futuro
 
Lista de abreviações 3
Lista de abreviações 3Lista de abreviações 3
Lista de abreviações 3
 
Escriturário Banco do Brasil - Questões de Informática (Linux)
Escriturário Banco do Brasil - Questões de Informática (Linux)Escriturário Banco do Brasil - Questões de Informática (Linux)
Escriturário Banco do Brasil - Questões de Informática (Linux)
 
Ft3 Res
Ft3 ResFt3 Res
Ft3 Res
 
Lab so-abertos-unidade11
Lab so-abertos-unidade11Lab so-abertos-unidade11
Lab so-abertos-unidade11
 
ACG WEB 2.0
ACG WEB 2.0ACG WEB 2.0
ACG WEB 2.0
 
Linux básico
Linux básicoLinux básico
Linux básico
 
Bioinformática - Sistemas Operacionais e Hardware
Bioinformática - Sistemas Operacionais e HardwareBioinformática - Sistemas Operacionais e Hardware
Bioinformática - Sistemas Operacionais e Hardware
 
Cde
CdeCde
Cde
 
Aplicativos livres para o seu Desktop
Aplicativos livres para o seu DesktopAplicativos livres para o seu Desktop
Aplicativos livres para o seu Desktop
 
Mini Curso IoT - Sieng 2016 - Dia 2
Mini Curso IoT - Sieng 2016 - Dia 2Mini Curso IoT - Sieng 2016 - Dia 2
Mini Curso IoT - Sieng 2016 - Dia 2
 

Destacado

SlackShow 2010: Monitorando servidores com o Twitter
SlackShow 2010: Monitorando servidores com o TwitterSlackShow 2010: Monitorando servidores com o Twitter
SlackShow 2010: Monitorando servidores com o Twitter
Fernando Mercês
 
Construindo um analisador de executáveis
Construindo um analisador de executáveisConstruindo um analisador de executáveis
Construindo um analisador de executáveis
Fernando Mercês
 

Destacado (9)

Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutos
 
SlackShow 2010: Monitorando servidores com o Twitter
SlackShow 2010: Monitorando servidores com o TwitterSlackShow 2010: Monitorando servidores com o Twitter
SlackShow 2010: Monitorando servidores com o Twitter
 
FISL11: Protegendo webservers na intranet contra ataques Man-In-The-Middle
FISL11: Protegendo webservers na intranet contra ataques Man-In-The-MiddleFISL11: Protegendo webservers na intranet contra ataques Man-In-The-Middle
FISL11: Protegendo webservers na intranet contra ataques Man-In-The-Middle
 
FISL11: Análise de binários ELF
FISL11: Análise de binários ELFFISL11: Análise de binários ELF
FISL11: Análise de binários ELF
 
Construindo um analisador de executáveis
Construindo um analisador de executáveisConstruindo um analisador de executáveis
Construindo um analisador de executáveis
 
(Un)Protecting USB Storage Media
(Un)Protecting USB Storage Media(Un)Protecting USB Storage Media
(Un)Protecting USB Storage Media
 
Disparando eventos com Asterisk
Disparando eventos com AsteriskDisparando eventos com Asterisk
Disparando eventos com Asterisk
 
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsLinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
 
Engenharia Reversa no Linux
Engenharia Reversa no LinuxEngenharia Reversa no Linux
Engenharia Reversa no Linux
 

Similar a Entendendo os pacotes DEB

Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé LeiteComo Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Tchelinux
 
Funtoo escla
Funtoo esclaFuntoo escla
Funtoo escla
Daniel
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Tchelinux
 
Sistema Operacionais
Sistema OperacionaisSistema Operacionais
Sistema Operacionais
David Souza
 

Similar a Entendendo os pacotes DEB (20)

Empacotamento Debian Básico
Empacotamento Debian BásicoEmpacotamento Debian Básico
Empacotamento Debian Básico
 
Gestão de Pacotes Linux
Gestão de Pacotes LinuxGestão de Pacotes Linux
Gestão de Pacotes Linux
 
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé LeiteComo Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
 
S.o iuras
S.o iurasS.o iuras
S.o iuras
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asterisk
 
Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...
Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...
Tutorial de instalação do PlayerStageGazebo no ubuntu linux 10.10 maverick me...
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
Debian para servidores
Debian para servidoresDebian para servidores
Debian para servidores
 
Funtoo escla
Funtoo esclaFuntoo escla
Funtoo escla
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
 
I educar-manual-de-instalaao
I educar-manual-de-instalaaoI educar-manual-de-instalaao
I educar-manual-de-instalaao
 
tutorial nagios
tutorial nagiostutorial nagios
tutorial nagios
 
Funtoo Gnu/Linux: Customização ao extremo
Funtoo Gnu/Linux: Customização ao extremoFuntoo Gnu/Linux: Customização ao extremo
Funtoo Gnu/Linux: Customização ao extremo
 
Gentoo Linux
Gentoo LinuxGentoo Linux
Gentoo Linux
 
Sistema Operacionais
Sistema OperacionaisSistema Operacionais
Sistema Operacionais
 
Como gerenciar de forma correta os pacotes em debian e distribuições derivadas
Como gerenciar de forma correta os pacotes em debian e distribuições derivadasComo gerenciar de forma correta os pacotes em debian e distribuições derivadas
Como gerenciar de forma correta os pacotes em debian e distribuições derivadas
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema Operacional
 
Instalação de softwares em sistemas baseados no Debian
Instalação de softwares em sistemas baseados no DebianInstalação de softwares em sistemas baseados no Debian
Instalação de softwares em sistemas baseados no Debian
 
Instalação de softwares em sistemas baseados no Debian - Vinícius Alves Hax
Instalação de softwares em sistemas baseados no Debian - Vinícius Alves HaxInstalação de softwares em sistemas baseados no Debian - Vinícius Alves Hax
Instalação de softwares em sistemas baseados no Debian - Vinícius Alves Hax
 

Entendendo os pacotes DEB

  • 1. Entendendo os pacotes deb Fernando Mercês #DebianDay Barra Mansa - RJ 20 de agosto de 2011
  • 2. $ whoami Consultor de projetos com software livre na 4Linux, bacharelando em Ciência da Computação, entusiasta em segurança da informação, amante de Engenharia Reversa, LPIC-2, A+, autor de artigos técnicos, desenvolvedor "hobbysta" e colaborador do Debian GNU/Linux.
  • 3. Agenda ● Como são distribuídos os programas no mundo GNU/Linux ● O que é um pacote pré-compilado? ● Entendendo o tipo de arquivo deb ● Construindo um pacote "na unha" ● Ferramentas para gerência de pacotes ● Empacotando seus próprios programas
  • 4. Como são distribuídos os programas no mundo GNU/Linux ● Código-fonte (.tgz, .tar.gz, tar.bzip2...) ○ Instalação $ ./configure $ make # make install ○ Dependências - como fazer? ● Pacotes (.deb, .rpm, .pkg...) ○ Instalação ■ apt-get, aptitude, wajig, yum, dpkg, rpm, pacman, zypper, slackpkg... ● Binários estáticos
  • 5. O que é um pacote pré-compilado? ● Um ou mais binários são compilados antes de serem empacotados. ● Contém informações sobre o programa empacotado, autor, dependências, documentação, changelogs etc. ● Fácil instalação. ● Pré-configurado.
  • 6. Entendendo o tipo de arquivo deb ● Um arquivo deb consiste em vários arquivos agrupados com o ar (do conjunto binutils). ● $ ar t pev_0.40-1_amd64.deb ○ debian-binary ○ control.tar.gz ○ data.tar.gz
  • 7. Entendendo o tipo de arquivo deb $ cat debian-binary 2.0 $ cat md5sums c7428a9504b8980e9c3fa52095ad4669 usr/bin/pev cc13a88eec30886c8156c1a2ae860daa usr/share/doc/pev/changelog. Debian.gz e5f6b9940645d82c1cfffb06d425d4ae usr/share/doc/pev/changelog.gz 1aaf9ae37e73b95f2735d2a16e8c08ba usr/share/doc/pev/copyright d04afc14bb0f45430ecef7fd6655c214 usr/share/man/man1/pev.1.gz $ tar tf data.tar.gz ./usr/share/man/man1/pev.1.gz ./usr/share/doc/pev/copyright ./usr/share/doc/pev/changelog.Debian.gz ./usr/share/doc/pev/changelog.gz ./usr/bin/ ./usr/bin/pev
  • 8. Entendendo o tipo de arquivo deb $ cat control Package: pev Version: 0.40-1 Architecture: amd64 Maintainer: Fernando Mercês <fernando@mentebinaria.com.br> Installed-Size: 72 Depends: libc6 (>= 2.2.5) Section: utils Priority: extra Homepage: http://pev.sourceforge.net Description: text-based tool to analyze PE files pev is a tool to get information of PE32/PE32+ executables (EXE, DLL, OCX etc) like headers, sections, resources and more.
  • 9. Construindo um pacote deb "na unha" ● Técnica útil somente para fins de aprendizagem. ● Não é a maneira correta de se fazer um pacote. ● Um pacote construído dessa forma nunca seria aceito nos repositórios oficiais do Debian e derivados (o que inclui o Ubuntu). ● Passo a passo em http://www.mentebinaria.com. br/textos#0x19
  • 10. Ferramentas para gerência de pacotes ● DPKG ○ Ferramenta de baixo nível para gerência de pacotes (instala, remove, exibe informações, mantém uma lista de pacotes instalados etc). ● APT ○ Front-end de alto nível para o DPKG com muitos recursos adicionais. Um dos mais interessantes é a resolução automática de dependências. ● Aptitude ○ Front-end para o APT com ainda mais facilidades (inclusive tela interativa).
  • 11. Ferramentas para gerência de pacotes ● Synaptic ○ Front-end gráfico (GTK+) para o APT.
  • 12. Empacotando seus próprios programas ● Interessante fazer da maneira mais correta possível, mesmo que não vá para o repositório do Debian. ● Tutorial de introdução, baseado em sessão de IRC sobre o assunto: http://wiki.debian. org/IntroDebianPackaging ● Documentação oficial: http://www.debian.org/doc/ # apt-get install packaging-tutorial debian-policy maint-guide
  • 13. Créditos e licenças ● Conteúdo: Fernando Mercês (@MenteBinaria) http://www.mentebinaria.com.br Licença: CC BY 3.0 ● Template do Google Docs por Nathan Handler Licença: GPL-2 ● Template baseado no template para OpenOffice.org por Raphaël Hertzog http://raphaelhertzog.com/go/ooo-template Licença: GPL-2 ● Imagem de fundo por Alexis Younes “ayo” http://www.73lab.com Licença: GPL-2