Criando os arquivos .package

Primeiro, vamos instalar o Autopackage Development Environment, pacote necessário para a criação dos arquivos .package. Baixe-o em:

http://ftp.sunsite.dk/projects/autopackage/1.2.1/Autopackage%20Development%20Environment%201.2.1.package

E instale normalmente, como fizemos com o KMess. Agora que já temos as ferramentas para a criação de pacotes, vamos começá-la. Para isso, vou utilizar o exemplo dado no site UnderLinux (http://under-linux.org/wiki//index.php/Tutoriais/Adm/autopackage), que compilou e instalou o pacote vim.

Agora que já temos todas as ferramentas necessárias para começarmos a trabalhar, vamos criar o pacote do vim, uma versão com algumas melhores do vi, visualizador de arquivos em modo texto.

Num diretório de sua preferência, crie a pasta sources, onde vamos trabalhar:

$ mkdir sources
$ cd /sources

A seguir, baixe e extraia o código fonte do vim:

$ wget http://ftp.at.vim.org/pub/vim/unix/vim-6.3.tar.bz2
$ tar -xjvf vim-6.3.tar.bz2

No exemplo, vamos aplicar um patch de correção, que é opcional:

$ wget http://www.linuxfromscratch.org/blfs/downloads/svn/vim-6.3-security_fix-1.patch
$ cd vim63
$ patch -Np1 -i ../vim-6.3-security_fix-1.patch

Começaremos agora a criação de toda a configuração necessária para o pacote. Cria a pasta autopackage:

$ mkdir autopackage

Crie o arquivo de configuração:

$ makeinstaller –mkspec > autopackage/default.apspec

Esse comando irá criar um arquivo de configuração limpo, pronto para poder modificar e criar o próprio pacote. Agora, abra o Kedit ou outro editor que preferir, e deixe o arquivo autopackage/default.apspec da seguinte maneira:

[Meta] RootName: @gnu.org/vim:SOFTWAREVERSION
DisplayName: Vim
ShortName: vim
Maintainer: Vim development
vim@vim.org
Packager: Rafael M. Capovilla
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

Você provavelmente não deve ter entendido nada do conteúdo deste arquivo, não é? Então, vamos às explicações. Segundo o Rafael Capovilla, “é mais simples do que parece” 🙂

Se você já criou pacotes Debian pelo menos uma vez na vida, deve ter achado algo em comum com a seção [Meta]. Ela é uma seção bem tranquila, tirando as linhas RootName e AutopackageTarget.

RootName é onde ficam os chamados “arquivos esqueletos”, voltaremos a falar nele mais adiante.

AutopackageTarget é a versão mínina necessária do Autopackage que deve estar instalado na máquina; tome cuidado com este campo. Se você colocar, por exemplo, 2.0, como não existe tal versão, o pacote não será instalado. A atual, enquanto escrevo, é a 1.2.1.

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

Esse campo é similar ao ./configure para compilações normais, e aqui ele vai executar com as opções –enable-huge e irá usar o diretório padrão /usr, caso não fosse nada especificado, ele usaria o /usr/local.

[BuildUnprepare] unprepareBuild

Equivalente ao make clean

[Prepare] # Dependency checking
require @gnu.org/ncurses 5

Essa é a parte que se configura a verificação por dependências, neste caso o vim precisa do pacote libncurses e ncurses, especificando a versão 5. No caso, o libncurses é uma dependência automática do segundo, dispensando incluí-lo no campo. Para descobrir isso, somente lendo muito as documentações 🙂

[Install] installExe bin/*
installMan 1 man/*
installData share/*

Esse campo é similar ao make install, diferenciando que aqui é selecionável o que deseja instalar: manuais, binários, etc.

Explicando melhor:

installExec bin/* instalará os binários 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

Similar ao comando make uninstall, porém, mesmo que o fonte não suporte tal comando, o Autopackage conseguirá desinstalá-lo.

[Imports] echo ‘*’ | import

Nesta parte o script seleciona quais arquivos serão incluídos no pacote a ser gerado. Para instalar todos, basta colocar o *, deixando como no exemplo acima.

Como dissemos, vamos para a parte dos “arquivos esqueleto”, que falamos a pouco. No campo “RootName” estava descrito “@gnu.org/vim:SOFTWAREVERSION“. Ou seja, temos que criar tal diretório e incluir o arquivo skeleton.1 nele:

$ cp -r ../devel/autopackage/share/ /usr/share/autopackage
$ cd /usr/share/autopackage/share/skeletons/@gnu.org/
$ mkdir vim
$ cp ncurses/skeleton.1 vim/

Abra o arquivo vim/skeleton.1 e o deixe da seguinte maneira:

[Meta] RootName: @gnu.org/vim
DisplayName: VImproved editor
ShortName: vim
Skeleton-Author: Rafael M. Capovilla
iceman@underlinux.com.br
Skeleton-Version: 1
[Notes] Interface version corresponds to soname version
[Test] INTERFACE_VERSIONS=`testForLib -i libncurses.so`

Note que ele é bem parecido com o outro que editamos há pouco tempo, tendo como novidade a seção [Test], que irá checar se realmente existe a biblioteca libncurses instalada.

Agora sim, depois de tanta configuração, vamos finalmente à criação do pacote:

$ cd /sources/vim63/
$ makeinstaller

No decorrer da criação algumas mensagens “Warning” poderão ser mostradas, mas não se preocupe com elas. Ao término do processo de compilação, o seguinte texto será exibido:

Package will be placed in vim-6.3.x86.package

Assim, terminamos nosso processo de criação de pacotes para o Autopackage. No início parece complicado, mas com prática, acabamos deixando tudo na ponta da língua.

Agora você tem toda a bagagem para o Autopackage: sabe manusear, instalar e criar pacotes em seu formato. Boa diversão!Autopackage: sabe manusear, instalar e criar pacotes em seu formato. Boa diversão!

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X