entendendo os pacotes deb

13
Entendendo os pacotes deb Fernando Mercês #DebianDay Barra Mansa - RJ 20 de agosto de 2011

Upload: fernando-merces

Post on 05-Jun-2015

400 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Entendendo os pacotes DEB

Entendendo ospacotes debFernando Mercês

#DebianDay Barra Mansa - RJ20 de agosto de 2011

Page 2: Entendendo os pacotes DEB

$ 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.

Page 3: Entendendo os pacotes DEB

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

Page 4: Entendendo os pacotes DEB

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

Page 5: Entendendo os pacotes DEB

O que é umpacote 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.

Page 6: Entendendo os pacotes DEB

Entendendo otipo 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

Page 7: Entendendo os pacotes DEB

Entendendo otipo de arquivo deb

$ cat debian-binary2.0$ cat md5sums c7428a9504b8980e9c3fa52095ad4669 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

Page 8: Entendendo os pacotes DEB

Entendendo otipo de arquivo deb

$ cat controlPackage: pevVersion: 0.40-1Architecture: amd64Maintainer: Fernando Mercês <[email protected]>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.

Page 9: Entendendo os pacotes DEB

Construindo umpacote 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

Page 10: Entendendo os pacotes DEB

Ferramentas paragerê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).

Page 11: Entendendo os pacotes DEB

Ferramentas paragerência de pacotes

● Synaptic○ Front-end gráfico (GTK+) para o APT.

Page 12: Entendendo os pacotes DEB

Empacotando seuspró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

Page 13: Entendendo os pacotes DEB

Créditos e licenças

● Conteúdo: Fernando Mercês (@MenteBinaria)http://www.mentebinaria.com.brLicença: CC BY 3.0

● Template do Google Docs por Nathan HandlerLicença: GPL-2

● Template baseado no template para OpenOffice.org por Raphaël Hertzoghttp://raphaelhertzog.com/go/ooo-templateLicença: GPL-2

● Imagem de fundo por Alexis Younes “ayo”http://www.73lab.comLicença: GPL-2