Guia do Desenvolvedor de Empacotamento de Aplicativos

Capítulo 4 Verificando e transferindo um pacote

Este capítulo descreve como verificar a integridade do seu pacote e como transferi-lo a um meio de distribuição, tal como um disquete ou um CD-ROM.

A lista abaixo traz as informações gerais encontradas neste capítulo.

Verificando e transferindo um pacote (Mapa de tarefas)

A tabela abaixo descreve as etapas que devem ser seguidas para a verificação da integridade do pacote e a transferência para um meio de distribuição.

Tabela 4–1 Mapa de tarefas da verificação e transferência de um pacote

Tarefa 

Descrição 

Instruções 

1. Construir o pacote 

Construa o pacote no disco. 

Capítulo 2Construindo um pacote

2. Instalar o pacote 

Teste o pacote instalando-o e comprove que a instalação foi realizada sem erros. 

Como instalar um pacote em um sistema ou servidor independente

3. Verificar a integridade do pacote 

Use o comando pkgchk para verificar a integridade do pacote. 

Como verificar a integridade de um pacote

4. Obter outras informações do pacote 

Opcional. Use os comandos pkginfo e pkgparam para realizar verificações específicas no pacote.

Exibindo informações adicionais sobre pacotes instalados

5. Remover o pacote instalado 

Use o comando pkgrm para remover o pacote instalado do sistema.

Como remover um pacote

6. Transferir o pacote para um meio de distribuição 

Use o comando pkgtrans para transferir o pacote (no formato de pacote) para um meio de distribuição.

Como transferir um pacote para um meio de distribuição

Instalando os pacotes de software

Os pacotes de software são instalados usando o comando pkgadd. Este comando transfere o conteúdo de um pacote de software do meio de distribuição ou diretório e o instala em um sistema.

Esta seção oferece instruções básicas de instalação do pacote a fim de verificar se a instalação é realizada corretamente.

O banco de dados do software de instalação

As informações de todos os pacotes instalados no sistema são mantidas no banco de dados do software de instalação. Em um pacote, há uma entrada para cada objeto, com informações como o nome do componente, onde ele está estabelecido e o seu tipo. Uma entrada contém um registro do pacote ao qual o componente pertence, outros pacotes que devem fazer referência ao componente e informações como o nome do caminho, onde o componente está estabelecido e o tipo do componente. As entradas são adicionadas e removidas automaticamente pelos comandos pkgadd e pkgrm. É possível ver as informações no banco de dados com os comandos pkgchk e pkginfo.

Dois tipos de informações estão associados com cada componente do pacote. As informações do atributo descrevem o componente em si. Por exemplo, as permissões de acesso do componente, o ID de proprietário e o ID de grupo são informações do atributo. As informações descrevem o conteúdo do componente, tal como o tamanho do arquivo e a data da última modificação.

O banco de dados do software de instalação mantém um controle do status do pacote. Um pacote pode ser instalado completamente (o processo de instalação é completado com sucesso) ou instalado parcialmente (o processo de instalação não é completado com sucesso).

Quando um pacote é instalado parcialmente, partes do pacote podem ter sido instaladas antes que a instalação fosse concluída, conseqüentemente, uma parte do pacote é instalada e registrada no banco de dados e outra parte não. Quando o pacote é reinstalado, você é solicitado a iniciar do ponto onde a instalação foi interrompida porque o comando pkgadd pode acessar o banco de dados e detectar que partes já foram instaladas. Também é possível remover as partes que foram instaladas com base nas informações do banco de dados do software de instalação usando o comando pkgrm.

Interagindo com o comando pkgadd

Se o comando pkgadd encontrar um problema, ele verifica o arquivo de administração da instalação em busca de instruções. (Consulte admin(4) para obter mais informações.) Se não houver nenhuma instrução ou se o parâmetro relevante no arquivo de administração estiver definido como ask, o pkgadd exibe uma mensagem descrevendo o problema e solicita uma resposta. A solicitação é geralmente Deseja continuar esta instalação?. Você deve responder yes, no ou quit.

Se você tiver especificado mais de um pacote, o no interrompe a instalação do pacote que está sendo instalado, mas pkgadd continua a instalação dos outros pacotes. quit indica que pkgadd deve interromper a instalação de todos os pacotes.

Instalando pacotes em sistemas ou servidores independentes em um ambiente homogêneo

Esta seção descreve como instalar os pacotes em um sistema ou servidor independente em um ambiente homogêneo.

ProcedureComo instalar um pacote em um sistema ou servidor independente

  1. Construa o pacote.

    Consulte Construindo um pacote, se necessário.

  2. Efetue logon no sistema como superusuário.

  3. Adicione um pacote de software ao sistema.


    # pkgadd -d device-name [pkg-abbrev...]

    -d device-name

    Especifique o local do pacote. Observe que device-name pode ser o nome completo do caminho de um diretório ou os identificadores de uma fita, um disquete ou um disco removível.

    pkg-abbrev

    É o nome de um ou mais pacotes (separado por espaços) que serão adicionados. Se for omitido, o pkgadd instala todos os pacotes disponíveis.


Exemplo 4–1 Instalando os pacotes em servidores e sistemas independentes

Para instalar um pacote de software chamado pkgA de um fita chamada /dev/rmt/0, você deve inserir o comando seguinte:


# pkgadd -d /dev/rmt/0 pkgA

Você também pode instalar vários pacotes ao mesmo tempo, contanto que os nomes dos pacotes sejam separados por espaços, da seguinte forma:


# pkgadd -d /dev/rmt/0 pkgA pkgB pkgC

Se você não nomear o dispositivo no qual o pacote reside, o comando verifica o diretório spool padrão (/var/spool/pkg). Se o pacote não estiver lá, a instalação falha.


Consulte também

Se você já estiver preparado para ir para a próxima tarefa, consulte Como verificar a integridade de um pacote.

Verificando a integridade de um pacote

O comando pkgchk permite verificar a integridade de pacotes, se eles estão instalados em um sistema ou em um formato de pacote (pronto para ser instalado com o comando pkgadd). Ele confirma a estrutura do pacote ou os arquivos e diretórios instalados, ou exibe informações sobre os objetos do pacote. O comando pkgchk pode listar ou verificar o seguinte:

Para obter mais informações sobre este comando, consulte pkgchk(1M).

O comando pkgchk realiza dois tipos de verificação. Verifica os atributos do arquivo (as permissões e a propriedade de um arquivo e os números maior/menor de dispositivos especiais de caracteres ou bloco) e o conteúdo do arquivo (o tamanho, a soma de verificação e a data de modificação). Por padrão, o comando verifica os atributos e o conteúdo do arquivo.

O comando pkgchk também compara os atributos e o conteúdo do arquivo do pacote instalado com o banco de dados do software de instalação. As entradas referentes a um pacote podem ter sido alteradas desde o momento em que tal pacote foi instalado. Por exemplo, outro pacote pode ter alterado o componente de tal pacote. O banco de dados reflete tal alteração.

ProcedureComo verificar a integridade de um pacote

  1. Instale o pacote.

    Consulte Como instalar um pacote em um sistema ou servidor independente, se necessário.

  2. Verifique a integridade do pacote.


    # pkgchk  [-v] [-R root-path] [pkg-abbrev...]

    -v

    Lista os arquivos à medida que são processados. 

    -R root-path

    Especifica o local do sistema de arquivos raiz do sistema do cliente. 

    pkg-abbrev

    É o nome de um ou mais pacotes (separado por espaços) que serão verificados. Se for omitido, o pkgchk verifica todos os pacotes disponíveis.


Exemplo 4–2 Verificando a integridade de um pacote

Este exemplo mostra o comando que você deve usar para verificar a integridade de um pacote instalado.


$ pkgchk pkg-abbrev
$

Se houver erros, o comando pkgchk os imprime. Do contrário, ele não imprime nada e retorna um código de saída. Se você não fornecer a abreviatura de um pacote, ele verificará todos os pacotes do sistema.

Outra alternativa é usar a opção -v, que imprimirá uma lista de arquivos do pacote se não houver erros. Por exemplo:


$ pkgchk -v SUNWcadap
/opt/SUNWcadap
/opt/SUNWcadap/demo
/opt/SUNWcadap/demo/file1
/opt/SUNWcadap/lib
/opt/SUNWcadap/lib/file2
/opt/SUNWcadap/man
/opt/SUNWcadap/man/man1
/opt/SUNWcadap/man/man1/file3.1
/opt/SUNWcadap/man/man1/file4.1
/opt/SUNWcadap/man/windex
/opt/SUNWcadap/srcfiles
/opt/SUNWcadap/srcfiles/file5
/opt/SUNWcadap/srcfiles/file6
$

Se precisar verificar um pacote instalado no sistema de arquivos raiz de um sistema do cliente, use este comando:


$ pkgchk -v -R root-path pkg-abbrev

Consulte também

Se estiver preparado para ir para a próxima tarefa, consulte Como obter informações com o comando pkginfo.

Exibindo informações adicionais sobre pacotes instalados

Você pode usar outros dois comandos para exibir as informações sobre os pacotes instalados:

O comando pkgparam

O comando pkgparam permite exibir os valores associados aos parâmetros que você especificou na linha de comando. Os valores são recuperados do arquivo pkginfo de um pacote específico ou do arquivo cujo nome foi dado. É exibido um valor de parâmetro por linha. É possível exibir somente os valores ou os parâmetros e seus valores.

ProcedureComo obter informações com o comando pkgparam

  1. Instale o pacote.

    Consulte Como instalar um pacote em um sistema ou servidor independente, se necessário.

  2. Exiba as informações adicionais sobre o pacote.


    # pkgparam [-v] pkg-abbrev [param...]

    -v

    Exibe o nome do parâmetro e seu valor. 

    pkg-abbrev

    É o nome de um pacote específico. 

    param

    Especifica um ou mais parâmetros cujo valor é exibido. 


Exemplo 4–3 Obtendo informações com o comando pkgparam

Por exemplo, para exibir somente os valores, use este comando.


$ pkgparam SUNWcadap
none
/opt
US/Mountain
/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin
/usr/sadm/sysadm
SUNWcadap
Chip designers need CAD application software to design abc
chips.  Runs only on xyz hardware and is installed in the usr
partition.
system
release 1.0
SPARC
venus990706083849
SUNWcadap
/var/sadm/pkg/SUNWcadap/save
Jul 7 1999 09:58
$

Para exibir os parâmetros e seus valores, use o comando a seguir.


$ pkgparam -v SUNWcadap
pkgparam -v SUNWcadap
CLASSES='none'
BASEDIR='/opt'
TZ='US/Mountain'
PATH='/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin'
OAMBASE='/usr/sadm/sysadm'
PKG='SUNWcadap'
NAME='Chip designers need CAD application software to design abc chips.  
Runs only on xyz hardware and is installed in the usr partition.'
CATEGORY='system'
VERSION='release 1.0'
ARCH='SPARC'
PSTAMP='venus990706083849'
PKGINST='SUNWcadap'
PKGSAV='/var/sadm/pkg/SUNWcadap/save'
INSTDATE='Jul 7 1999 09:58'
$

Ou, se desejar exibir o valor de um parâmetro específico, use este formato:


$ pkgparam SUNWcadap BASEDIR
/opt
$

Para obter mais informações, consulte pkgparam(1).


Consulte também

Se você já estiver preparado para ir para a próxima tarefa, consulte Como remover um pacote.

O comando pkginfo

Você pode exibir informações sobre os pacotes instalados com o comando pkginfo. Este comando possui várias opções que permitem personalizar o formato e o conteúdo da exibição.

Você pode solicitar informações sobre qualquer quantidade de instâncias de pacotes.

A exibição padrão do pkginfo

Quando o comando pkginfo é executado sem opções, ele exibe a categoria, a instância e o nome de todos os pacotes que estiverem completamente instalados no sistema. A exibição é ordenada por categorias conforme mostra o exemplo a seguir.


$ pkginfo
.
.
.
system      SUNWinst       Install Software
system      SUNWipc        Interprocess Communications
system      SUNWisolc      XSH4 conversion for ISO Latin character sets
application SUNWkcspf      KCMS Optional Profiles
application SUNWkcspg      KCMS Programmers Environment
application SUNWkcsrt      KCMS Runtime Environment
.
.
.
$

Personalizando o formato da exibição de pkginfo

Você pode ter a exibição de pkginfo em três formatos: breve, extraído e longo.

O formato breve é o padrão. Mostra somente a categoria, a abreviatura do pacote e o nome completo do pacote, conforme ilustrado em A exibição padrão do pkginfo.

O formato extraído mostra a abreviatura, o nome, a arquitetura (se disponível) e a versão (se disponível) do pacote. Use a opção -x para solicitar o formato extraído conforme ilustrado no próximo exemplo.


$ pkginfo -x
.
.
.
SUNWipc         Interprocess Communications
                (sparc) 11.8.0,REV=1999.08.20.12.37
SUNWisolc       XSH4 conversion for ISO Latin character sets
                (sparc) 1.0,REV=1999.07.10.10.10
SUNWkcspf       KCMS Optional Profiles
                (sparc) 1.1.2,REV=1.5
SUNWkcspg       KCMS Programmers Environment
                (sparc) 1.1.2,REV=1.5
.
.
.
$

O uso da opção -l proporciona a exibição no formato longo, mostrando todas as informações disponíveis sobre um pacote, conforme ilustra o exemplo a seguir.


$ pkginfo -l SUNWcadap
   PKGINST:  SUNWcadap
      NAME:  Chip designers need CAD application software to
design abc chips.  Runs only on xyz hardware and is installed
in the usr partition.
  CATEGORY:  system
      ARCH:  SPARC
   VERSION:  release 1.0
   BASEDIR:  /opt
    PSTAMP:  system980706083849
  INSTDATE:  Jul 7 1999 09:58
    STATUS:  completely installed
     FILES:     13 installed pathnames
                 6 directories
                 3 executables
              3121 blocks used (approx)
$

Descrições de parâmetros no formato longo de pkginfo

A tabela abaixo descreve os parâmetros que podem ser exibidos de cada pacote. O parâmetro e o seu valor são exibidos somente quando o parâmetro tem um valor atribuído a ele.

Tabela 4–2 Parâmetros do pacote

Parâmetro 

Descrição 

ARCH

A arquitetura suportada por este pacote. 

BASEDIR

O diretório base no qual se encontra o pacote de software (mostrado se o pacote for relocável). 

CATEGORY

A categoria, ou categorias, do software de qual este pacote é membro (por exemplo, system ou application).

CLASSES

Lista de classes definida de um pacote. A ordem da lista determina a ordem na qual as classes serão instaladas. A classes listadas primeiro serão instaladas primeiro (mídia por mídia). Este parâmetro pode ser modificado pelo script de solicitação.  

DESC

Texto que descreve o pacote. 

EMAIL

O endereço eletrônico para as perguntas do usuário. 

HOTLINE

Informações sobre como receber ajuda direta sobre este pacote. 

INTONLY

Indica que pacote deve ser instalado somente de forma interativa quando definido com um valor não nulo. 

ISTATES

Lista de estados de execução admissíveis para a instalação do pacote (por exemplo, S s 1).

MAXINST

O número máximo de instâncias do pacote que deve ser permitido em uma máquina ao mesmo tempo. Por padrão, é permitida somente uma instância de um pacote. 

NAME

O nome do pacote, geralmente um texto descrevendo a abreviatura do pacote. 

ORDER

Lista de classes que define a ordem na qual elas devem ser colocadas no meio. Usado pelo comando pkgmk na criação do pacote. As classes não definidas neste parâmetro são colocadas em um meio usando os procedimentos de ordenação padrão.

PKGINST

Abreviatura do pacote que está sendo instalado. 

PSTAMP

O carimbo de produção deste pacote. 

RSTATES

Lista de estados de execução admissíveis para a remoção do pacote (por exemplo, S s 1).

ULIMIT

Se definido, este parâmetro é passado como um argumento para o comando ulimit, que estabelece o tamanho máximo de um arquivo durante a instalação. Aplica-se somente a arquivos criados por scripts de procedimento.

VENDOR

O nome do fornecedor que forneceu o pacote de software. 

VERSION

A versão deste pacote.  

VSTOCK

Número de lote fornecido pelo fornecedor. 

Para obter informações detalhadas sobre o comando pkginfo, consulte a página do manual pkginfo(1).

ProcedureComo obter informações com o comando pkginfo

  1. Instale o pacote.

    Consulte Como instalar um pacote em um sistema ou servidor independente, se necessário.

  2. Exiba as informações adicionais sobre o pacote.


    # pkginfo [-x | -l] [pkg-abbrev]

    -x

    Exibe as informações do pacote em formato extraído. 

    -l

    Exibe as informações do pacote em formato longo. 

    pkg-abbrev

    É o nome de um pacote específico. Se for omitido, o comando pkginfo exibe as informações sobre todos os pacotes instalados no formato padrão.

Próximo passo

Se você já estiver preparado para ir para a próxima tarefa, consulte Como remover um pacote.

Removendo um pacote

Por atualizar as informações do banco de dados dos produtos de software, o uso do comando pkgrm é importante ao remover um pacote, embora você possa se sentir tentado a usar o comando rm. Você pode, por exemplo, usar o comando rm para remover um arquivo executável binário, mas não é o mesmo usar o comando pkgrm para remover o pacote de software que inclui tal executável binário. O uso do comando rm para remover os arquivos do pacote corromperá o banco de dados dos produtos do software. (Se quiser realmente remover apenas um arquivo, você pode usar o comando removef, que atualizará o banco de dados do produto de software corretamente.

ProcedureComo remover um pacote

  1. Efetue logon no sistema como superusuário.

  2. Remova um pacote instalado.


    # pkgrm pkg-abbrev ...

    pkg-abbrev

    É o nome de um ou mais pacotes (separado por espaços). Se for omitido, o pkgrm remove todos os pacotes disponíveis.

  3. Para verificar se o pacote foi removido com sucesso, use o comando pkginfo.


    $ pkginfo | egrep pkg-abbrev
    

    Se pkg-abbrevestiver instalado, o comando pkginfo retorna uma linha de informação sobre ele. Do contrário, o pkginfo retorna uma solicitação do sistema.

Transferindo um pacote para um meio de distribuição

O comando pkgtrans move os pacotes e realiza traduções de formato do pacote. Você pode usar o comando pkgtrans para realizar as seguintes traduções de um pacote instalável:

ProcedureComo transferir um pacote para um meio de distribuição

  1. Construa o pacote, criando um pacote de formato de diretório, se ainda não tiver criado.

    Para obter mais informações, consulte Como construir um pacote.

  2. Instale o pacote para verificar se ele é instalado corretamente.

    Consulte Como instalar um pacote em um sistema ou servidor independente, se necessário.

  3. Verifique a integridade do pacote.

    Consulte Como verificar a integridade de um pacote, Como obter informações com o comando pkginfo e Como obter informações com o comando pkgparam, se necessário.

  4. Remova o pacote instalado do sistema.

    Consulte Como remover um pacote, se necessário.

  5. Transfira o pacote (em formato de pacote) para um meio de distribuição.

    Para realizar uma transferência básica, execute o comando seguinte:


    $ pkgtrans device1 device2 [pkg-abbrev...]

    device1

    É o nome do dispositivo no qual o pacote está atualmente. 

    device2

    É o nome do dispositivo no qual o pacote transferido será gravado. 

    [pkg-abbrev]

    É uma ou mais abreviaturas de pacotes. 

    Se nenhum nome for fornecido, todos os pacotes que estão no device1 serão transferidos e gravados no device2 .


    Observação –

    Se mais de uma instância de um pacote estiver no device1, você deve usar um identificador de instância do pacote. Para obter uma descrição de um identificador de instâncias, consulte Definindo uma instância de pacote. Quando uma instância do pacote que está sendo transferido já existir no device2, o comando pkgtrans não realiza a transferência. Você pode usar a opção -o para fazer com que o comando pkgtrans substitua as instâncias existentes no dispositivo de destino e a opção -n para que ele crie uma nova instância se já existir uma. Observe que esta verificação não se aplica quando o device2 oferece suporte ao formato de fluxo de dados.


Próximo passo

Neste ponto você completou as etapas necessárias para criar, construir, verificar e transferir seu pacote. Se estiver interessado em analisar alguns estudos, consulte o Capítulo 5Estudos de caso de criação de pacote. Se estiver interessado em idéias avançadas de criação de pacotes, consulte o Capítulo 6Técnicas avançadas para a criação de pacotes.