Upload
fernando-merces
View
401
Download
5
Embed Size (px)
Citation preview
Entendendo ospacotes debFernando Mercês
#DebianDay Barra Mansa - RJ20 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 é 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.
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
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
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.
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
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).
Ferramentas paragerência de pacotes
● Synaptic○ Front-end gráfico (GTK+) para o APT.
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
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