Entendendo os pacotes DEB

541 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
541
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Entendendo os pacotes DEB

  1. 1. Entendendo os pacotes deb Fernando Mercês#DebianDay Barra Mansa - RJ 20 de agosto de 2011
  2. 2. $ whoamiConsultor de projetos com software livre na 4Linux,bacharelando em Ciência da Computação, entusiastaem segurança da informação, amante de EngenhariaReversa, LPIC-2, A+, autor de artigos técnicos,desenvolvedor "hobbysta" e colaborador do DebianGNU/Linux.
  3. 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. 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. 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. 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. 7. Entendendo o tipo de arquivo deb$ cat debian-binary2.0$ cat md5sumsc7428a9504b8980e9c3fa52095ad4669 usr/bin/pevcc13a88eec30886c8156c1a2ae860daa usr/share/doc/pev/changelog.Debian.gze5f6b9940645d82c1cfffb06d425d4ae usr/share/doc/pev/changelog.gz1aaf9ae37e73b95f2735d2a16e8c08ba usr/share/doc/pev/copyrightd04afc14bb0f45430ecef7fd6655c214 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. 8. Entendendo o tipo de arquivo deb$ cat controlPackage: pevVersion: 0.40-1Architecture: amd64Maintainer: Fernando Mercês <fernando@mentebinaria.com.br>Installed-Size: 72Depends: libc6 (>= 2.2.5)Section: utilsPriority: extraHomepage: http://pev.sourceforge.netDescription: 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. 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. 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. 11. Ferramentas para gerência de pacotes● Synaptic ○ Front-end gráfico (GTK+) para o APT.
  12. 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-policymaint-guide
  13. 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

×