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