Capítulo 8. Os pacotes

Índice
8.1. Instalação da coleção de pacotes
8.2. Atualização da coleção de pacotes
8.3. Instalação de um programa
8.4. Instalação de um pacote em formato binário
8.5. Comandos para a gestão de pacotes
8.6. Guia rápido para a criação de pacotes

O sistema de pacotes do NetBSD é um conjunto de instrumentos que permitem compilar e instalar de maneira simples uma grande quantidade de softwares de domínio público para os sistemas Unix. Em geral bastam um ou dois comandos para instalar qualquer pacote configurado e pronto para funcionar.

O primeiro contato com os pacotes gera um pouco de confusão porque aparentemente há vários comandos que fazem a mesma coisa. Na realidade a questão é muito simples. Há dois modos de se instalar um programa.

Os dois métodos ilustrados acima são os mais "cômodos", que aproveitam o trabalho de configuração feito por alguém. Se o programa que nos interessa não está incluído na coleção dos pacote, ninguém nos impede de compilá-lo a mão e instalá-lo no sistema. Nesse caso, é boa norma fazer um pequeno esforço a mais e criarmos nós mesmos os pacotes, de modo que outros possam beneficiar-se do nosso trabalho.

8.1. Instalação da coleção de pacotes

Antes de poder instalar um pacote é necessário instalar a coleção de pacotes, como se descreve em detalhe no site do NetBSD. Em substância, trata-se de:

  1. Fazer o download da última versão das fontes da coleção, que incluem todos os arquivos de configuração, de ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/. O nome do arquivo a obter é: pkgsrc.tar.gz.

  2. Remover a coleção anterior, se presente, com

    # cd /usr
    # rm -rf pkgsrc
        

  3. Instalar a nova coleção com

    # tar -xzvpf pkgsrc.tar.gz -C /usr    
    A execução do comando acima dura um certo tempo porque o número dos arquivos a extrair é notável. Ao fim da operação o framework para a instalação dos pacote está em seu lugar. Fica para decidir apenas quais pacotes instalar no sistema.

    Nota: imagino que neste ponto esteja claro que com a operação anterior foi instalado no sistema o conjunto dos arquivos de configuração necessários para a instalação individual dos programas, mas não os próprios programas nem as suas fontes. Basicamente agora o sistema dispõe da lista dos programas instaláveis automaticamente e as instruções para instalá-los.

Uma vez instalada a coleção dos pacotes, com um browser de HTML, como o Lynx ou o Netscape, podem-se ler os detalhes e as descrições de todos os pacotes disponíveis. Por exemplo:

$ cd /usr/pkgsrc
$ lynx README.html
      

8.2. Atualização da coleção de pacotes

A coleção dos pacotes é atualizada muito freqüentemente. No site de ftp encontra-se uma nova cópia quase toda semana. Para atualizar a coleção no próprio computador é necessário seguir as instruções dadas para a instalação.

Ás vezes, além da coleção dos pacotes é necessário atualizar também os programas de instalação (pkgtools). É fácil compreender se está sendo necessário realizar a atualização: quando se tenta instalar um pacote o sistema de pacotes avisa que as pkgtools devem ser atualizadas. Por exemplo:

# make
===> Validating dependencies for gqmpeg-0.6.3
Your package tools need to be updated to 2000/02/02 versions.
The installed package tools were last updated on 1999/01/01.
Please make and install the pkgsrc/pkgtools/pkg_install package.
*** Error code 1    

O método de atualização mais simples é:

# cd /usr/pkgsrc/pkgtools/pkg_install
# make install
    

Feito isso, pode-se retomar a instalação do pacote original (aquele que tinha dado lugar à mensagem de erro.)

8.3. Instalação de um programa

A título de exemplo, tentemos instalar o programa addnerd, que serve para adicionar usuários ao sistema de maneira automática (mais ou menos como faz o programa adduser em outros sistemas). A primeira coisa é irmos para o diretório /usr/pkgsrc/sysutils/addnerd.

8.4. Instalação de um pacote em formato binário

Como expliquei na introdução, o sistema dos pacotes foi concebido para instalar programas na forma do código-fonte. Entretanto, ele também é habilitado a instalar pacotes pré-compilados, gerados por qualquer um utilizando a própria coleção. Nesse caso, a instalação é mais veloz (não é necessário compilar o programa a instalar).

Os programas pré-compilados distinguem-se geralmente daqueles que estão na forma de fonte por terem a extensão .tgz ao invés de .tar.gz.

Não é estritamente necessário fazer manualmente o download de um pacote binário para poder instalá-lo. O pkg_add também é capaz de fazer-lhe o download autonomamente, quando são utilizados URL FTP (o uso de HTTP é possível mas desaconselhado). Por exemplo, pode-se especificar o nome do pacote com:

ftp://ftp.netbsd.org/pub/NetBSD/packages/1.4.2/i386/All/tcsh-6.09.00.tgz    

Se não se conhece o número de versão do pacote disponível no site de FTP, também é possível omitir esta informação da linha de comando e o pkg_add utilizará automaticamente a última versão disponível no servidor de FTP. Por exemplo:

# pkg_add ftp://ftp.netbsd.org/pub/NetBSD/packages/1.4.2/i386/All/tcsh    

É possível também configurar a variável ambiental PKG_PATH com uma lista de caminhos e URLs separados por ; e omitir o caminho (path) no comando pkg_add:

# PKG_PATH="/cdrom;/usr/pkgsrc/packages/All;ftp://ftp.netbsd.org/pub/NetBSD/packages/1.4.2/i386/All/"
export PKG_PATH
# pkg_add tcsh
    

O comando precedente instala o primeiro pacote binário de tcsh encontrado nos caminhos especificados.

A título de exemplo, vejamos como procede a instalação do programa texinfo em forma pré-compilada. A instalação do pacote binário é muito simples:

  1. Copiar o gtexinfo-3.12.tgz em um diretório temporário.

  2. Executar o comando

    # pkg_add -v gtexinfo-3.12.tgz    

  3. Aferir a instalação feita com o comando

    # pkg_info    

  4. Remover o arquivo gtexinfo-3.12.tgz do diretório temporário.

Os pacotes pré-compilados são muito cômodos de usar porque exigem tempo e esforço mínimos para a instalação. Todavia, os pacotes em forma de código-fonte são mais flexíveis ainda porque permitem a personalização de eventuais opções de configuração e de instalação. A instalação é mais longa mas, em todo caso, não se instalam pacotes a toda hora...

Quando se instala um pacote binário com o comando pkg_add, convém como primeira coisa a fazer examiná-lo com o comando pkg_info. Por exemplo:

# pkg_info -f jpeg-6b.tgz    

Em particular convém observar o primeiro comando CWD para ver onde será instalado o pacote. Se o diretório base não é o desejado, será necessário usar a opção -p do pkg_add. Por exemplo, o pacote jpeg-6b.tgz vai ser instalado em /usr/pkg, enquanto em minha opinião, deveria ir para /usr/X11R6. (Em geral convém extrair em /usr/X11R6 todos os pacotes da hierarquia X). Portanto é preferível extraí-lo com:

# pkg_add -p /usr/X11R6 -v jpeg-6b.tgz    

8.5. Comandos para a gestão de pacotes

Os principais comandos para a administração do sistema de pacotes são

8.6. Guia rápido para a criação de pacotes

O autor desta seção (Guia rápido para a criação de pacotes) é Jason R. Fink

Esta seção descreve um método simples e veloz para a criação de pacotes simples para a coleção de pacotes do NetBSD. Para ulteriores aprofundamentos remete-se à documentação oficial contida no documento Packages.txt.