Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o...
Transcript of Empacotamento deb e rpm - Colab · 3 compilador Introdução No princípio só existia o...
1
Empacotamento deb
erpm
Grupo: EspeditoGrupo: Espedito Anderson Anderson Américo Américo Jean Jean
2
IntroduçãoCompilaçãoPacotesGerenciadores
.deb
.rpmConclusão
Agenda
3
compilador
Introdução
No princípio só existia o binário...
binário
machine code
linguagem demáquina
fonte
source code
linguagem deprogramação
interpretador
4
Compilando programas
Obter o programa fonteftp://lynx.isc.org/> cd lynx2.8.6> bin> get lynx2.8.6rel.4.tar.gz> quit
89 gcc ...
Descompactartar xzvf lynx2.8.6rel.4.tar.gz
Obter informaçõescd lynx2.8.6less README
Compilargcc DHAVE_CONFIG 02 DLINUX \
c src/HTParce.c ...gcc DHAVE_CONFIG 02 DLINUX \ c src/HTAccess.c ...
Dependências !
5
Dependências:
Compilando programas
Obter o programa fontewget c ftp://lynx.isc.org/lynx2.8.6/ \
lynx2.8.6rel.2.tar.gz Descompactartar xzvf lynx2.8.6rel.4.tar.gz
Adequar o makefilecd lynx281./configure
Compilarmake
Instalarmake install
configure: error: no acceptable cc found in $PATH
sudo aptget install buildessential
configure: error: no curses library found
sudo aptget install libncurses5dev
6
Pacote
Arquivo, normalmente compactado, que contém todos os arquivos - binários, fontes, shell scripts, configuração, dados, copyright, documentação, etc - necessários a instalação de um software.Contém também as informações para sua remoção, configuração e manutenção pelo gerenciador de pacotes.
Binário Fonte
7
Gerenciador de pacotes
Software cuja função é facilitar a instalação, remoção e configuração de pacotes.Também pode compilar e empacotar um aplicativo.
Dependências !
TGZ – Slackware
DPKG – Debian PacKaGe
RPM – RedHat Package Manager
8
Gerenciador avançado de pacotes
Software que busca pacotes em repositórios locais ou remotos, se necessário resolve dependências, e utilizando um gerenciador de pacotes os instala, remove e configura.
Dependências
APT – Advanced Package Tool YUM – Yellow Dog - RedHat Enterprise – Fedora URPMI – MandrivaYOU – SuSEPorts – FreeBSDPortage – Gentoo
Repositórios
9
DPKG – Debian PacKaGe
Poderoso gerenciador de pacotes- instalar- atualizar- remover- construir
Desenvolvido inicialmente para Debian (.deb)
Nome do arquivo: programa_1.0.1-1_i386.deb
Controla dependências mas não as instala
Pacote = arquivo de arquivos- configurações- binários
10
Informações sobre os pacotes
Estado dos pacotes:- installed (desempacotado e configurado)- half-installed (instalação não concluída)- unpacked (desenpacotado e não configurado)- half-configured (desempacotado e configuração não
concluída)- config-files (só resta arquivos de configuração)
Estado de seleção dos pacotes:- install (marcado para instalação)- deinstall (marcado para remoção)- purge (marcado para remoção completa)
Flag dos pacotes:- hold (só pode ser manipulado com --force-hold)- reinst-required (quebrado, precisa dependências)
11
Principais comandos do DPKG
Instalar o pacote# dpkg i pacote
Remover o pacote# dpkg P pacote
Informações sobre o pacote# dpkg I pacote# dpkg c pacote
Reconfigurar o pacote# dpkgreconfigure pacote
Instalar mesmos pacotes em máquinas diferentes# dpkg getselections > pacotes.txt# dpkg setselections < pacotes.txt# dselect install
12
Ferramentas - dselect
Front-end texto para o DPKG
13
APT – Advanced Package Tool
É uma extensão do DPKG
Gerencia dependências
Conecta o sistema a um repositório/etc/apt/sources.list
Salva os pacotes em /var/cache/apt/archives# aptget clean
14
Principais comandos do APT
# aptget update
apt-cdrom (adiciona CDROMs no sources.list)# aptcdrom add
apt-get (download e instalação de pacotes)# aptget install pacote# aptget remove pacote# aptget remove purge pacote
apt-cache (manipula cache dos pacotes e faz consultas)# aptcache search pacote
Obter o programa fonte (precisa ter o deb-src habilitado)# aptget source pacote# aptget d install pacote# dpkg x e pacote diretório
15
Ferramentas - aptitude
Front-end texto para o APT
16
Ferramentas - synaptic
- Front-end gráfico para o APT- Criado por Alfredo Kojima com ajuda de Gustavo Niemeyer (Conectiva)
17
Ferramentas - debfoster
Mantém uma lista de pacotes que foram instalados explicitamente e suas dependências
18
Empacotamento .deb
dh_make:converte os fontes para o padrão Debian
dpkg-buildpackage:constrói pacotes binários, fontes e assina os arquivos .dsc e .changesdpkg-source:constrói pacotes fonte
lintian e linda:verifica e reporta bugs e violações na política dos pacotes Debian.dbuild:faz o mesmo que o dpkg-buildpackage e executa o lintian e/ou linda.uupdate:atualiza pacotes-fonte.
Estrutura para empacotamento:- .orig.tar.gz (código fonte original)
- .diff.gz (alterações feitas para empacotar)
- .dsc (arquivo com informações de controle)
- .changes (mudanças na revisão atual)
19
Construindo um pacote do zero
A partir do código original:$ wget http://ftp.gnu.org/gnu/hello/hello2.1.1.tar.gz$ tar zxvf hello2.1.1.tar.gz$ cd hello2.1.1$ dh_make e [email protected] f ../hello2.1.1.tar.gz
Ou a partir do fonte do repositório:$ aptget source hello$ rm hello_2.1.1*$ cd hello2.1.1
Então gerar o pacote:$ dpkgbuildpackage rfakeroot us uc$ cd ..$ lintian i *.dsc
20
Metapacotes
Nome do sistema: programa-1.0$ mkdir p programa1.0/debian/changelog$ mkdir programa1.0/debian/control$ mkdir programa1.0/debian/copyright$ mkdir programa1.0/debian/rules$ chmod 755 programa1.0/debian/rules$ debuild us uc
control:
21
Recursos interessantes
svn-autoreleasedeb – Empacota direto do SVNcvs-autoreleasedeb – Empacota direto do CVS
alien – Converte pacotes de um formato de empacotamento para outro
.deb
.rpm
.tgz
.pkg
22
Uso do RPM
Pacotesbinários .rpmpacotesfonte .src.rpm
Modos de operaçãoinstalação idesinstalação eatualização Uconsulta qverificação V
Freshen Fimportação de chave importAssinatura de pacotes addsignreassinatura de pacotes resignverificação de assinatura de pacotes Kinicialização initdbreconstrução do banco de dados rebuilddb
Comando rpm
Obter pacotesrepositórios
23
Instalando pacotes rpm
Obtendo pacotes # su# mount /dev/cdrom /mnt/ # cd /mnt/Fedora/RPMS
Para instalar # rpm ivh mc4.6.1a26.fc5.i386.rpm
# rpm i *.rpm # rpm i test mc4.6.1a26.fc5.i386.rpm# rpm i replacepkgs mc4.6.1a26.fc5.i386.rpm# rpm i excludedocs mc4.6.1a26.fc5.i386.rpm# rpm i nodeps mc4.6.1a26.fc5.i386.rpm
/usr/bin/etc/usr/share/nome_do_programa
24
Desinstalando pacotes rpm
Para desinstalar# rpm e mc# rpm e nodeps mc
25
Atualizando pacotes rpm
Para atualizar# rpm Uvh mc4.6.1a26.fc5.i386.rpm
Para recarregar# rpm Fvh mc4.6.1a26.fc5.i386.rpm# rpm Fvh *.rpm
26
Consultando pacotes rpm
Para consultar# rpm qa# rpm ql mc# rpm qlp mc4.6.1a26.fc5.i386.rpm# rpm qi mc# rpm qip mc4.6.1a26.fc5.i386.rpm
27
Verificando pacotes rpm
Para verificar# rpm Va# rpm V mc# rpm Vp mc4.6.1a26.fc5.i386.rpm # rpm Vg alunos# rpm Vv mc# man rpm
28
RPMRPM
RPM Package Manager;
Gerenciador de pacote criado pela RedHat sob licença GPL;
Usado pelas distribuições baseadas em RedHat como: Suse, OpenSuse, Fedora Core, Mandriva etc.
Funções de gerenciador de pacotes: instalar, atualizar, remover, consultar, construir e assinar pacotes.
29
Arquivos do RPMArquivos do RPM
Configuração geral/usr/lib/rpm/rpmrc/home/<usuario>/.rpmrc/root/.rpmrc
Configuração de macros/usr/lib/rpm/macros/home/<usuario>/.rpmmacros/root/.rpmmacros
Banco de dados/var/lib/rpm
30
.rpm.rpm
Pacotes binárioUtilizados para encapsular o software a
ser instalado
Pacotes-fonteContém o código-fonte e o
procedimento necessário para produzir os pacotes binários, tudo em um único arquivo .src.rpm
31
Construção de pacote Construção de pacote .rpm.rpm
rpmbuildrpmbuild é o comando para construção de pacote .rpm, para tanto é necessário que sejam fornecidos:
arquivo-fonte do programa e seus patches no diretório /usr/src/redhat/SOURCES
arquivos spec no diretório /usr/src/redhat/SRPMS
Depois de criados os pacotes-fonte são colocados no diretório /usr/src/redhat/SRPMS
Enquanto que os pacotes binários são colocados no diretório /usr/src/RPMS/arquitetura
Requer outros pacotes instalados como por exemplo: rpm-devel, rpm-python, make, gcc,gcc-c++, gnupg, etc.
32
Arquivo specO arquivo spec é o coração do processo de construção de
pacote .rpm, trata-se de arquivo bastante complexo sendo dividido em nove seções:
% c h a n g e l o g ( r e g i s t r o d a s a t u a l i z a ç õ e s q u e o p a c o t e s o f r e u d e s d e s u a c r i a ç ã o ) .
M u d a n ç a s
% f i l e s ( l i s t a d e a r q u i v o s q u e f a z p a r t e d o p a c o t e : c o n f i g u r a ç ã o e d o c u m e n t a ç ã o ) a l é m d e m a c r o s p a r a d e f i n i ç ã o a t r i b u t o s .
A r q u i v o s
% c l e a n ( l i m p a r s i s t e m a a p ó s c o n s t r u ç ã o d e p a c o t e s )L i m p e z a
% v e r i f y s c r i p t ( e x i b i d a s a o u t i l i z a r m o d o d e v e r i f i c a ç ã o R P M )V e r i f i c a ç ã o
% p r e , % p o s t , % p o s t u n ( l o c a l d e o r g a n i z a ç ã o d e s c r i p t s p a r a i n s t a l a ç ã o e o u r e m o ç ã o d e p a c o t e )
S c r i p t s
s c r i p t % i n s t a l lI n s t a l a ç ã o
s c r i p t % b u i l d ( c o m p i l a ç ã o ) s h e l l s c r i p t s e m a k eC o n s t r u ç ã o
s c r i p t % p r e p ( d e s c o m p a c t a r o s p r o g r a m a s f o n t e ) s h e l l s c r i p t s e m a c r o s
P r e p a r a ç ã oi n f o r m a ç õ e s e x i b i d a s a o u t i l i z a r m o d o d e c o n s u l t a d o R P MP r e â m b u l o
% c h a n g e l o g ( r e g i s t r o d a s a t u a l i z a ç õ e s q u e o p a c o t e s o f r e u d e s d e s u a c r i a ç ã o ) .
M u d a n ç a s
% f i l e s ( l i s t a d e a r q u i v o s q u e f a z p a r t e d o p a c o t e : c o n f i g u r a ç ã o e d o c u m e n t a ç ã o ) a l é m d e m a c r o s p a r a d e f i n i ç ã o a t r i b u t o s .
A r q u i v o s
% c l e a n ( l i m p a r s i s t e m a a p ó s c o n s t r u ç ã o d e p a c o t e s )L i m p e z a
% v e r i f y s c r i p t ( e x i b i d a s a o u t i l i z a r m o d o d e v e r i f i c a ç ã o R P M )V e r i f i c a ç ã o
% p r e , % p o s t , % p o s t u n ( l o c a l d e o r g a n i z a ç ã o d e s c r i p t s p a r a i n s t a l a ç ã o e o u r e m o ç ã o d e p a c o t e )
S c r i p t s
s c r i p t % i n s t a l lI n s t a l a ç ã o
s c r i p t % b u i l d ( c o m p i l a ç ã o ) s h e l l s c r i p t s e m a k eC o n s t r u ç ã o
s c r i p t % p r e p ( d e s c o m p a c t a r o s p r o g r a m a s f o n t e ) s h e l l s c r i p t s e m a c r o s
P r e p a r a ç ã oi n f o r m a ç õ e s e x i b i d a s a o u t i l i z a r m o d o d e c o n s u l t a d o R P MP r e â m b u l o
33
.rpm
Fonte: www.ibm.com/linux
34
Conclusão
E a evolução continua...
Smart Package ManagerGustavo Niemeyer - Canonical
Conary
35
Bibliografia
João Eriberto Mota Filho, Descobrindo o Linux – Novatec Editora Ltda, 2006.Rubem E. Ferreira, Gerenciamento de Pacotes de Software no LINUX –
Novatec Editora Ltda, 2006.http://www.debian.org/doc/FAQ/ch-pkg_basicshttp://www.pcwebpedia.comhttp://www.wiggy.net/presentations/2000/PackageManagement/article/article.pdfhttp://www1.mandrivalinux.com/cooker/urpmi.htmlhttp://www.redhat.comhttp://www.vivaolinux.com.br
http://wiki.rpath.com/wiki/Conary
http://labix.org/smar
O Guia de Empacotamento no Ubuntu - Ubuntu GNU/Linux 6.06 Dapperhttp://www.wikipedia.orghttp://www.redhat.comhttp://www.ibm.com/openhttp://www.ibm.com/linux