'AutoPackage' - Construindo seus próprios pacotes

Started by vuln, 02 de October , 2006, 03:16:48 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

vuln

'AutoPackage' - Construindo seus próprios pacotes



Conteúdo

1 Introdução
1.1 Funcionalidades do autopackage
2 Instalando o AutoPackage
3 Criando um pacote
3.1 Descrição das Configurações
4 Continuando a criação do pacote
5 Testando o Pacote
6 CONCLUSÃO
7 Autor


Introdução
Antes de explicar como criar os pacotes vou explicar melhor o que é esta ferramenta. Ela tem dois objetivos principais:

Facilitar a vida do usuário
Padronizar os pacotes
Como ele vai facilitar a vida dos usuário? É relativamente simples, além de possuir uma interface gráfica para instalar o usuário não precisa se preocupar em compilar ou então em ficar caçando dependências, o autopackage irá fazer isso.

E para os administradores também é muito útil para deixar organizado os pacotes instalados na máquina, ao invés de pegar os fontes, compilar e instalar, você gera o pacote a partir do fonte e instala. Qual a vantagem disso? Na minha opnião é a facilidade para atualização/remoção. Os pacotes instalados via fonte geralmente não possuem um "desinstalador", ou se possuem estão dentro do próprio fonte do pacote, então você é obrigado a manter o fonte em sua máquina desperdiçando muito espaço. Com o autopackage fica muito mais fácil remover/atualizar pois ele "guarda" os arquivos que foram instalados em um sistema parecido com o do slackware. Basta um simples comando, package remove pacote, e ele irá remover tudo.

Funcionalidades do autopackage
Construção de pacotes que irão instalar em várias distros diferentes
Multiplas interfaces: a melhor é automaticamente escolhida então os usuários de ambiente gráfico terão uma interface GUI, e os usuários de modo texto terão uma interface no modo texto.
Suporte a múltiplos idiomas(nas ferramentas e nos seus pacotes)
Automaticamente verifica e resolve dependências, não importando como o software foi instalado. Isto significa que você não precisa utilizar o autopackage para todos os seus softwares, para que os pacotes sejam instalados com sucesso.
Instalando o AutoPackage
Agora vamos por a mão na massa ;)

Primeiro vamos instalar o autopackage: (eu compilo todos meus programas no diretorio /source, use o diretório que achar melhor)

 cd /sources
 wget http://ftp.sunsite.dk/projects/autopack ... el.tar.bz2
 mkdir devel
 cd devel
 tar -xjvf ../autopackage-devel.tar.bz2
 cd autopackage
 make install
Só isso? Sim :-) Agora você tem as ferramentas de desenvolvimento do autopackage Como também iremos instalar o pacote para ver se ele está funcionando corretamente, também precisamos do autopackage em si:

 cd /sources
 wget http://ftp.sunsite.dk/projects/autopack ... ge.tar.bz2
 tar -xjvf autopackage.tar.bz2
 cd autopackage
 ./install
Criando um pacote
Pronto, já temos todas as ferramentas necessárias para começarmos a trabalhar, como exemplo vamos criar o pacote do vim

 cd /sources
 wget http://ftp.at.vim.org/pub/vim/unix/vim-6.3.tar.bz2
 wget http://www.linuxfromscratch.org/blfs/do ... ix-1.patch
 tar -xjvf vim-6.3.tar.bz2
 cd vim63
 patch -Np1 -i ../vim-6.3-security_fix-1.patch
Agora vamos começar o processo de criação do pacote:

 mkdir autopackage
A primeira coisa a se fazer é criar o arquivo de "configuração"

 makeinstaller --mkspec > autopackage/default.apspec


Isso irá gerar um esqueleto limpo do arquivo, onde futuramente você poderá criar seu próprio pacote
Edite o arquivo autopackage/default.apspec com o editor que preferir (eu uso o vi), e o deixe da seguinte maneira:



[Meta]
RootName: @gnu.org/vim:SOFTWAREVERSION
DisplayName: Vim
ShortName: vim
Maintainer: Vim development
iceman@underlinux.com.br
Summary:  The Vim package, which is an abbreviation for VI IMproved, contains a vi clone with extra
features as compared to the original vi.
URL: http://www.vim.org/
License: GNU General Public License
SoftwareVersion: 6.3
AutopackageTarget: 1.0
# Only uncomment InterfaceVersion if your package exposes interfaces to other software,
# for instance if it includes DSOs or python/perl modules. See the developer guide for more info,
# or ask on autopackage-dev if you don't understand interface versioning in autopackage.
#
# InterfaceVersion: 0.0

[Description]
Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version
of the vi editor distributed with most UNIX systems.
Vim is often called a "programmer's editor," and so useful for programming that many consider it an entire IDE.
It's not just for programmers, though. Vim is perfect for all kinds of text editing, from composing email
to editing configuration files.

[BuildPrepare]
prepareBuild --with-features=huge --prefix=/usr

[BuildUnprepare]
unprepareBuild

[Prepare]
require @gnu.org/ncurses 5

[Install]
InstallExe bin/*
InstallMan 1 man/*
installData share/*

[Uninstall]
# Usually just the following line is enough to uninstall everything
uninstallFromLog

[Imports]
echo '*' | import

Descrição das Configurações
Hahaha não se assustem, é mais simples do que parece ;) é onde se configura a checagem de dependências, no caso do vim ele precisa da libncuses do pacote ncurses (e ainda especifico a versão 5).

Como eu sei que o ncurses tem essa dependência? LENDO DOCUMENTAÇÃO!!!Se você é um administrador e tem preguiça de ler/estudar, te aconselho a mudar de carreira.

[Install]
installExe bin/*
installMan 1 man/*
installData share/*
Aqui seria o make install, a diferença daqui é que você pode especificar o que quer instalar, só os binários, só a documentação,etc... installExec bin/* irá instalar os binário no $PREFIX/bin installMan 1 man/* instala os manuais da seção 1 em $PREFIX/man installData share/* instala os arquivos extras do vim (arquivos de sintaxe, outros docs,etc..) também em $PREFIX/share

[Uninstall]
uninstallFromLog
Equivalente ao make uninstall, mas aqui mesmo que o fonte não tenha o make uninstall o autopackage será capaz de remover o pacote.

[Imports]
echo '*' | import
Esse script é utilizado para selecionar os arquivos que serão inclusos no pacote que será gerado, como queremos instalar o vim inteiro basta deixar como está.

Continuando a criação do pacote
Acabou? NÃO ;)

Já falei bastante, se quiserem saber mais sobre o autopackage vão ler um pouquinho que isso não faz mal a ninguem:

http://www.autopackage.org
Para quem apenas quer testar o funcionamento da instalação do autopackage, no site oficial já existem alguns pacotes prontos para a utilização, é só fazer o download do pacote e o rodar: sh pacote.package

Se você não tiver o autopackage instalado ele faz o download e instala para você ;)

[editar]Autor
'1c3_m4n - ( iceman@underlinux com br)
Retirado de "http://underlinux.com.br/wiki/index.php/Tutoriais/Adm/autopackage"

"O amor por princípio, a Ordem por base, o progresso por objetivo."