Índice
Criar pacotes atualmente não é uma atividade tão complicada como já foi a alguns anos atrás. Atualmente, na maioria dos programas, o simples conjunto de comandos ./configure && make && make install
são suficientes. Mas ainda há aquelas ocasiões em que é necessário muita ginástica para compilar o programa. Neste texto apresento um componente do pacote Simplepkg, createpkg. Com este aplicativo você constrói pacotes .tgz para o seu Slackware com um único comando.
Sumário
- 1 Introdução
- 2 Instalando
- 3 Compilando Pacotes com o createpkg
- 4 Opções Avançadas
- Referências Bibliográficas
1 Introdução
Nas palavras de meu amigo Rhatto: “O simplepkg é um sistema de gerenciamento de sistemas Slackware que roda sobre o pkgtool. Ele é composto por vários scripts que desempenham funções de administração e desenvolvimento de sistemas do tipo Slackware, procurando fechar um circuito de produção, envolvendo a construção, a instalação de pacotes e até mesmo a instalação do sistema de forma automatizada”[1].
Neste texto vou dar atenção apenas a um dos aplicativos deste sistema, o createpkg.
2 Instalando
A instalação do simplepkg é bem simples. Baixe o pacote simplepkg-0.6pre18-noarch-1rha.tgz, ou a versão mais nova na página
http://slack.sarava.org/packages/noarch/
ou baixe a última versão com o comando abaixo:
wget `lynx -dump http://slack.sarava.org/packages/noarch/ | sed '/simplepkg.*\.tgz$/ ! d; s/.* \(.*\)/\1/'`
em seguida instale com o installpkg,
installpkg simplepkg-0.6pre18-noarch-1rha.tgz
Em princípio não é necessário nenhuma configuração especial para os aplicativos funcionarem, mas algumas personalizações podem ser interessantes. Dê uma olhada no arquivo /etc/simplepkg/simplepkg.conf e edite o que achar conveniente. Por exemplo, se você está usando o Slamd64, ou outro port do Slackware, altere as variáveis abaixo:
DEFAULT_ARCH="x86_64" # ou i686 para Slackware 32bits
...
DEFAULT_VERSION="12.0" # deixe a última versão do port que está usando
...
CREATE_ARCH="x86_64" # esta variável diz ao createpkg qual a arquitetura
# padrão para a construção dos pacotes
...
COLOR_MODE="color" # habilita cores a saída do createpkg e mkbuild
Se achar conveniente, ainda pode alterar as variáveis SLACKBUILDS_DIR, MKBUILDS_DIR, MAKEPKG_REPOS e SOURCE_DIR. Por exemplo:
MAKEPKG_REPOS="/home/ftp/simplepkg/repos_64"
para armazenar os pacotes compilados para o x86_64
3 Compilando Pacotes com o createpkg
O createpkg é bem simples de usar. Um help com as instruções de uso pode ser alcançado com a opção --help
, ou simplesmente chamando o createpkg sem argumento:
createpkg Createpkg version 1.1.10 Usage: createpkg [--install/-i] package_name createpkg --all/-a createpkg --no-deps/-np package_name createpkg --search/-s package_name createpkg --info/-f package_name createpkg --list/-l createpkg --sync createpkg --help/-h
O primeiro passo é baixar os scripts de construção, os SlackBuilds, do repositório Slack.Sarava. Isto é feito com a opção --sync
:
createpkg --sync
Para procurar com um pacote, utilize a opção --search
:
createpkg --search scilab /var/simplepkg/slackbuilds/sci/mathematics/scilab/scilab.SlackBuild
Para compilar e instalar o pacote, use a opção --install
:
createpkg --install scilab ...
A primeira ação do createpkg é verificar se o pacote possui alguma dependência e a resolve, chamando o createpkg -i programa_dependência. A resolução de dependência pode ser desabilitada, passando a opção --no-deps
ao createpkg.
Em seguida a fonte do programa será baixada, configurada, compilada, empacotada, armazenada em MAKEPKG_REPOS e por fim instalada com o installpkg.
Para conhecer mais sobre o pacote que irá instalar, você pode usar a opção --info
:
createpkg --info scilab SCILAB: scilab by Slack.Sarava Scilab is a scientific software package for numerical computations providing a powerful open computing enviroanment for engineering and scientific applications. Developed since 1990 by researchers from INRIA and ENPC, it is now maintained and developed by Scilab Consortium since its creation in May 2003. Distributed freely and open source (see the license and the trademark license) via the Internet since 1994, Scilab is currently being used in educational and industrial environments around the world. slack-required # Dependency list to scilab # # dependency [condition] [version]] gtk+2
esta opção apresentará a descrição do pacote e suas dependências declaradas.
Para conhecer todos os pacotes atualmente suportados pelo createpkg, use a opção --list
. No momento da escrita deste texto, haviam 437 SlackBuilds nos repositórios do Slack.Sarava.
4 Opções Avançadas
Além dos comandos apresentados acima, os SlackBuilds ainda permitem a declaração externa de variáveis, passadas aos scripts. Por exemplo, você pode alterar a arquitetura de compilação, declarando a variável ARCH, ao chamar o createpkg como segue:
ARCH="i686" createpkg scilab
Dentre as possibilidades com a declaração de variáveis:
- é possível alterar as opções passadas ao configure, e assim configurar características específicas para os programas;
- alterar a versão de compilação, para compilar as versões mais recentes de um programa. Não é garantido que a alteração da versão do pacote irá funcionar, pois as opções, dependência e outras características do aplicativo podem alterar de uma versão para outra;
- alterar a url das fontes, geralmente necessário quando se altera a versão do pacote;
- alterar o PREFIX, local de instalação do pacote. Em geral os pacotes são instalados em /usr, mas para teste, pode ser conveniente instalar um pacote em outros lugares como /usr/local.
- outros …
Para conhecer todas as variáveis suportadas pelos SlackBuilds, é aconselhável verificar o script do programa em questão, pois as variáveis podem mudar de um SlackBuild para outro. A seção de declaração de variáveis é chamada de Set variables.
Abaixo é apresentado a seção de declaração de variáveis do scilab.SlackBuild:
# Set variables
CWD="$(pwd)"
SRC_NAME="scilab"
PKG_NAME="scilab"
ARCH=${ARCH:=i486}
SRC_VERSION=${VERSION:=4.1.2}
PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')"
BUILD=${BUILD:=1rra}
SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME
TMP=${TMP:=/tmp}
PKG=${PKG:=$TMP/package-$PKG_NAME}
REPOS=${REPOS:=$TMP}
PREFIX=${PREFIX:=/usr}
PKG_WORK="$TMP/$SRC_NAME"
CONF_OPTIONS=${CONF_OPTIONS:="--with-gfortran --prefix=/usr
--with-tcl-library=/usr/lib64"}
NUMJOBS=${NUMJOBS:="-j4"}
Referências Bibliográficas
- 1 simplepkg: Gerenciamento de Instalações e Metapacotes: http://slack.sarava.org/simplepkg
About this document …
Criando pacotes com o createpkg
This document was generated using the
LaTeX2HTML translator Version 2002-2-1 (1.71)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 -nonavigation -show_section_numbers createpkg.tex
The translation was initiated by on 2008-03-08
2008-03-08