De Wiki Tarrafa.org - Documentação Colaborativa e Livre
Tabela de conteúdo |
Instalando o pacote para gerar um Ambiente Chroot do Debian Etch
Instalando o debootstrap
- No Shell como Root digite:
# apt-get install debootstrap
Instalando a distro no Ambiente Chroot
Pode ser instalado qualquer versão do debian, nesse momento vamos criar um pasta e instalar o Debian Etch nessa pasta.
- Entre no seu diretorio home:
# cd ~
- Crie a pasta etch:
# mkdir etch
- Instalando o Debian Etch na pasta etch:
# debootstrap --arch i386 etch etch/ http://ftp.debian.org/debian/
Isso deve demorar um pouco, dependendo da sua conexão, pode tormar um café de uns 20 minutos, apos o termino dessa operação, teremos um Debian Etch na pasta etch.
Acessando o Chroot do Debian Etch
- Entrando no Debian Etch
# chroot etch/
Pronto agora dentro do Debian Etch, tenho todas as ferramentas do debian, instaladas em um sistema basico, vou para a pasta /home, criar uma pasta com o nome pacotes.
- Entrando na pasta
# cd /home
- Criando a pasta pacotes
# mkdir pacotes
- Entrando na pasta pacotes
# cd pacotes
Atualizando o sources.list
- adicionando os repositorios debian
#echo "deb http://ftp.us.debian.org/debian etch main" >> /etc/apt/sources.list #echo "deb-src http://ftp.us.debian.org/debian etch main" >> /etc/apt/sources.list
- Atualizando a base de pacotes do apt
#apt-get update
Instalando softwares de desenvolvimento de pacotes .deb
#apt-get install dpkg-dev #apt-get install build-essential #apt-get install file autoconf automake dh-make debhelper devscripts fakeroot lintian
Alterando pacotes fontes .deb
- Escolha um pacote da base do apt, para localizar um pacote digite:
#apt-cache search proftpd
- Baixe os fontes
#apt-get source proftpd
Ele ira baixar os fontes para a pasta que o usuário se encontra no sistema, criara uma pasta proftpd-(versão), alem de criar os arquivos proftpd(versão).orig.tar.br que é o pacote tar original, proftpd(versão).diff.gz que contem as modificações do mantenedor do pacote Debian e o proftpd(versão).dsc arquivo de assinaturas do pacote.
- Entre na pasta proftpd-(versão)
#cd proftpd-(versão)
Nessa pasta temos todos os fontes do programa proftpd, podemos modificar o conteudo dos arquivos, após as alteracões podemos refazer o pacote com o comando
#dpkg-buildpackage -us -uc
Caso apareça uma mensagem de erro no processo de gerar o pacote .deb, atente para os erros de dependências não instaladas, mas necessárias para gerar o pacote, instale com o apt e execute o dpkg-buildpackage -us -uc novamente. Após a geração do pacote, saia da pasta proftpd(versão), e execute.
#ls
Ira te mostrar o pacote recem criado proftpd(versão).deb, iremos verificar se o mesmo esta com algum problema com o lintian.
#lintian proftpd(versão).deb
Caso apareça algum warning ou erro, procure no google pela mensagem informada, possivelmente você ira achar a solução, a geração de pacotes com erro ou warning podem comprometer o sistema no qual ira ser instalado o pacote, por isso recomendo a geração dos pacotes sem nenhum erro e com poucos warning.
Criando Pacotes Debian
O primeiro passo para cria pacotes debian, e entender que o dh_make que é o software para fazer a debianização inicial trabalha com 4 tipos de pacotes, sendo eles:
- Binario Simples (s): Pacote com um binario simples.
- Binario Multiplos (m): Pacotes com varios binarios.
- Biblioteca - Lib (1): Biblioteca do sistema.
- Modulo do Kernel (k): Modulos do kernel, devices modules.
- Cdbs (b): Pacote sem binarios, web apps, themes, etc ...
Escolhendo um nome para o pacote
Para verificar se o nome do pacote escolhido já existe nos repositórios do Debian execute:
#dpkg -s nomedopacote
ou
#dpkg -l '*nomedopacote*'
se o resultado não apresentar nenhuma ocorrência poderemos usar o nome escolhido.
Gerando um Tarball do pacote
- O dh_make necessita de um pacote tarball como base para executar a debianização inicial de um pacote, porem antes de gerar esse tarball, vamos sub-dividir o pacote em diretorios, uma maneira simples de fazer essa organização é a seguinte:
#html/ (diretorio que contem as paginas) #html/theme (diretorio de themas de paginas) #etc/ (configurações diversas) #doc/ (documentação)
- Criando a pasta e os diretórios.
#mkdir teste-1.0/ #cd teste-1.0/ #mkdir -p html/theme #mkdir etc/ #mkdir doc/
Após isso começaremos a organizar o nosso pacote teste, o próximo passo após a organização e o gerar o tarball do pacote teste.
- Saia da pasta teste
#cd ..
- Gerando o Tarball
#tar -zcvf teste-1.0.tar.gz teste-1.0/
O aplicativo tar ira gerar o teste-1.0.tar.gz da pasta teste/
obs: Tanto a pasta do pacote devera sequir essa ordem nomedopacote-versão como o tarball gerado tambem
Debianização Inicial
- Entre no diretorio que contem os codigos fontes do seu programa
#cd teste-1.0/
- Exporte as variáveis para o dh_make
#export DEBFULLNAME="seu nome aqui" #export DEBEMAIL="seu e-mail aqui"
- Execute o dh_make
#dh_make -f ../teste-1.0.tar.gz -c gpl
Ele te perguntara que tipo e o pacote, vamos informar que é um cdbs, digite:
#b
Depois apenas confirme com a tecla <enter>, novamente tecle <enter>
Pronto o seu tarball já foi debianizado, agora vamos configurar o pacote.
A pasta debian/
O processo de debianização criará a pasta debian/ dentro da pasta do nosso pacote o teste-1.0, nessa pasta é que será feito todo o processo configuração da instalação do nosso pacote em um sistema Gnu/Debian, através do utilitário apt.
Vamos Conhecer os arquivos de configuração da pasta debian/
control
O arquivo control como o nome já diz, é um arquivo de controle, é contem vários valores utilizados por outros programas como o dpkg e dselect, abaixo o nosso control criado pelo dh_make:
Source: teste
Section: unknown
Priority: extra
Maintainer: Jamyl Guimaraes <jamylguimaraes@gmail.com>
Build-Depends: cdbs, cdbs, debhelper (>= 5)
Standards-Version: 3.7.2
Package: teste
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>
Source: Nome do pacote
Section - Nessa variável colocamos a sub-seção a qual pertence o pacote, dentro do main, contrib, non-free, temos as sub-seções 'admin' para ferramentas de administração, 'base' para ferramentas básicas, 'devel' para ferramentas de programação, 'doc' para documentação, 'mail' para clientes e daemons de email, 'net' para aplicativos e daemons de rede, 'x11' para programas gráficos entre outras. Vamos alterar a variavel de
Section: unknown
para
Section: base
Priority - Definimos aqui a prioridade do pacote normalmente usamos o valor optional (opcional) ou extra, outras opções poderam ser encontradas em http://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities.
Priority: extra
Maintainer - Define o nome e <e-mail> do mantenedor do pacote
Build-Depends: - Dependência requerida para construir o pacote
Package: - Nome do seu pacote binario, normalmente o mesmo valor da variavel Source
Architecture: - Arquitetura do sistema alvo, any(qualquer uma) deixe que o dpkg-gencontrol faça isso por você.
Depends: - Nessa variável é que informamos as dependências requeridas, lembrando que o apt busca as dependências e instala junto com o pacote, ex: Depends: xmms,k3b
Description: - Definimos aqui a descrição do pacote.
Description: <insert up to 60 chars description> <insert long description, indented with spaces>
para
Description: Pacote com o html de sistema teste de pacotes. Aqui coloco a descrição completa e tal adsf asfds asdfs asdf
Para maiores detalher consulte o Guia do Mantenedor Debian em http://www.debian.org/doc/manuals/maint-guide/index.pt-br.html