Guia do Desenvolvedor de Empacotamento de Aplicativos

Criando scripts de instalação

Esta seção trata dos scripts de instalação opcionais do pacote. O comando pkgadd realiza automaticamente todas as ações necessárias para instalar um pacote usando os arquivos de informação como entrada. Não é necessário fornecer nenhum script de instalação de pacote. No entanto, se você quiser criar procedimentos de instalação personalizados para o pacote, é possível fazê-lo com os scripts de instalação. Os scripts de instalação:

Há quatro tipos de scripts de instalação com os quais é possível realizar ações personalizadas:

Processamento de script durante a instalação do pacote

O tipo de scripts que você usa depende de quando a ação do script é necessária durante o processo de instalação. Conforme um pacote é instalado, o comando pkgadd realiza as seguintes etapas:

  1. Executa o script request.

    Esta etapa é o único ponto no qual seu pacote pode solicitar entrada do administrador que estiver instalando o pacote.

  2. Executa o script checkinstall.

    O script checkinstall coleta os dados do sistema de arquivos e pode criar ou alterar as definições da variável de ambiente para controlar a instalação subseqüente. Para obter mais informações sobre as variáveis de ambiente do pacote, consulte Variáveis de ambiente do pacote.

  3. Executa o script preinstall.

  4. Instala objetos de pacote em cada classe a ser instalada.

    A instalação desses arquivos ocorre classe por classe e os scripts de ação de classe são executados do modo devido. A lista de classes operadas e a ordem na qual devem ser instaladas são definidas inicialmente com o parâmetro CLASSES no arquivo pkginfo. No entanto, o script request ou o script checkinstall podem alterar o valor do parâmetro CLASSES. Para obter mais informações sobre como as classes são processadas durante a instalação, consulte Como as classes são processadas durante a instalação do pacote.

    1. Cria links simbólicos, dispositivos, pipes nomeados e diretórios necessários.

    2. Instala os arquivos regulares (tipos de arquivos e, v, f), baseados em suas classes

      O script de ação de classe é passado somente a arquivos regulares para instalar. Todos os objetos de pacote são criados automaticamente das informações do arquivo pkgmap.

    3. Cria todos os links de disco rígido.

  5. Executa o script postinstall.

Processamento de script durante a remoção do pacote

Quando está sendo removido, o comando pkgrm realiza as seguintes etapas:

  1. Executa o script preremove.

  2. Remove os objetos de pacote de cada classe

    A remoção também ocorre classe por classe. Os scripts de remoção são processados na ordem inversa da instalação, com base na seqüência definida no parâmetro CLASSES. Para obter mais informações sobre como as classes são processadas durante a instalação, consulte Como as classes são processadas durante a instalação do pacote.

    1. Remove os links de disco rígido.

    2. Remove os arquivos regulares.

    3. Remove os links simbólicos, os dispositivos e os pipes nomeados.

  3. Executa o script postremove.

O script request não é processado no momento da remoção do pacote. No entanto, a saída do script é retida no pacote instalado e é disponibilizada para os scripts de remoção. A saída do script request é uma lista de variáveis de ambiente.

Variáveis de ambiente de pacote disponíveis para os scripts

Os seguintes grupos de variáveis de ambiente estão disponíveis para todos os scripts de instalação. Algumas das variáveis de ambiente podem ser modificadas por um script request ou um script checkinstall.

Obtendo informações do pacote para um script

Dois comandos podem ser usados para solicitar informações dos scripts sobre um pacote:

Códigos de saída para scripts

Cada script deve sair com um dos códigos de saída ilustrados na tabela seguinte.

Tabela 3–2 Códigos de saída de script instalação

Código 

Significado 

Conclusão de script bem-sucedida.  

Erro fatal. O processo de instalação foi interrompido neste ponto.  

2  

Aviso ou possível condição de erro. A instalação continua. Uma mensagem de aviso é exibida no momento da conclusão.  

3  

O comando pkgadd é detido perfeitamente. Somente o script checkinstall retorna este código.

10  

O sistema deve ser reiniciado quando a instalação de todos os pacotes selecionados for concluída. (Este valor deve ser adicionado a um dos códigos de saída de um dígito.)  

20  

O sistema deve ser reiniciado imediatamente na conclusão da instalação do pacote atual. (Este valor deve ser adicionado a um dos códigos de saída de um dígito.)  

Consulte Capítulo 5Estudos de caso de criação de pacote para ver exemplos de códigos de saída que são retornados por scripts de instalação.


Observação –

Todos os scripts de instalação entregues com o pacote devem ter uma entrada no arquivo prototype. O tipo de arquivo deve ser i (para script de instalação de pacote).


Escrevendo um script request

O script request é a única forma de que seu pacote possa interagir diretamente com o administrador que está instalando tal pacote. Este script pode ser usado, por exemplo, para perguntar ao administrador se as partes opcionais de um pacote devem ser instaladas.

A saída de um script request deve ser uma lista de variáveis de ambiente e seus valores. Esta lista pode incluir qualquer um dos parâmetros criados no arquivo pkginfo e os parâmetros CLASSES e BASEDIR. A lista também pode introduzir variáveis de ambiente que ainda não foram definidas em outro lugar. No entanto, o arquivo pkginfo deve sempre fornecer valores padrão quando for prático. Para obter mais informações sobre as variáveis de ambiente do pacote, consulte Variáveis de ambiente do pacote.

Quando o seu script request atribuir valores a uma variável de ambiente, ele deve tornar tais valores disponíveis para o comando pkgadd e para outros scripts do pacote.

Comportamentos do script request

Regras de criação para scripts request


Observação –

Se os administradores que instalarão o seu pacote puderem usar o produto JumpStartTM, então a instalação do seu pacote não deve ser interativa. Você deve fornecer um script request com seu pacote ou deve comunicar aos administradores que eles devem usar o comando pkgask antes da instalação. O comando pkgask armazena as repostas deles no script request. Para obter mais informações sobre o comando pkgask, consulte a página do manual pkgask(1M).


ProcedureComo escrever um script request

  1. Torne o diretório que contém os arquivos de informação no diretório de trabalho atual.

  2. Crie um arquivo nomeado request com o seu editor de texto preferido.

  3. Salve as alterações e saia do editor quando acabar.

  4. Realize uma das seguintes tarefas.

  5. Construa o pacote.

    Consulte Como construir um pacote, se necessário.


Exemplo 3–5 Escrevendo um script request

Quando um script request atribui valor a variáveis de ambiente, ele deve disponibilizar tais valores para o comando pkgadd. Este exemplo mostra um segmento do script request que realiza esta tarefa em quatro variáveis de ambiente: CLASSES, NCMPBIN, EMACS e NCMPMAN. Suponha que estas variáveis tenham sido definidas em uma sessão interativa com o administrador anteriormente no script.


# make environment variables available to installation
# service and any other packaging script we might have
 
cat >$1 <<!
CLASSES=$CLASSES
NCMPBIN=$NCMPBIN
EMACS=$EMACS
NCMPMAN=$NCMPMAN
!

Consulte também

Depois de construir o pacote, instale-o para confirmar que ele é instalado corretamente e verificar sua integridade. O Capítulo 4Verificando e transferindo um pacote explica estas tarefas e oferece instruções detalhadas sobre como transferir o pacote verificado a um meio de distribuição.

Coletando dados do sistema de arquivos com o script checkinstall

O script checkinstall é executado brevemente depois do script request opcional. O script checkinstall é executado como usuário install, se tal usuário existir, ou como usuário nobody. O script checkinstall não tem autoridade para alterar os dados do sistema de arquivos. No entanto, com base nas informações que o script coleta, ele pode criar ou modificar as variáveis de ambiente a fim de controlar o curso da instalação resultante. O script também pode deter perfeitamente o processo de instalação.

O script checkinstall está programado para realizar verificações básicas em um sistema de arquivos que não é normal para o comando pkgadd. Por exemplo, este script pode ser usado para verificar arquivos adiante a fim de determinar se tais arquivos do pacote atual substituirão arquivos existentes, ou gerenciar as dependências gerais do software. O arquivo depend gerencia somente dependências no nível do pacote.

Diferente do script request, o script checkinstall é executado se um arquivo de resposta for ou não fornecido. A presença do script não marca pacote como interativo. O script checkinstall pode ser usado quando um script request for esquecido ou quando a interação do administrador não for útil.


Observação –

O script checkinstall está disponível a partir do Solaris 2.5 e versões compatíveis.


Comportamentos do script checkinstall

Regras de criação para scripts checkinstall

ProcedureComo coletar dados do sistema de arquivos

  1. Torne o diretório que contém os arquivos de informação no diretório de trabalho atual.

  2. Crie um arquivo nomeado checkinstall com o seu editor de texto preferido.

  3. Salve as alterações e saia do editor quando acabar.

  4. Realize uma das seguintes tarefas.

  5. Construa o pacote.

    Consulte Como construir um pacote, se necessário.


Exemplo 3–6 Escrevendo um script checkinstall

Este exemplo do script checkinstall realiza uma verificação para ver se o software de banco de dados que o pacote SUNWcadap precisa está instalado.


# checkinstall script for SUNWcadap
#
# This confirms the existence of the required specU database
 
# First find which database package has been installed.
pkginfo -q SUNWspcdA	# try the older one
 
if [ $? -ne 0 ]; then
   pkginfo -q SUNWspcdB	# now the latest
 
	  if [ $? -ne 0 ]; then	# oops
		    echo "No database package can be found. Please install the"
		    echo "SpecU database package and try this installation again."
		    exit 3		# Suspend
	  else
		    DBBASE="`pkgparam SUNWsbcdB BASEDIR`/db"	# new DB software
	  fi
else
	  DBBASE="`pkgparam SUNWspcdA BASEDIR`/db"	# old DB software
fi
 
# Now look for the database file we will need for this installation
if [ $DBBASE/specUlatte ]; then
	  exit 0		# all OK
else
	  echo "No database file can be found. Please create the database"
	  echo "using your installed specU software and try this"
	  echo "installation again."
	  exit 3		# Suspend
fi
 

Consulte também

Depois de construir o pacote, instale-o para confirmar que ele é instalado corretamente e verificar sua integridade. O Capítulo 4Verificando e transferindo um pacote explica estas tarefas e oferece instruções detalhadas sobre como transferir o pacote verificado a um meio de distribuição.

Escrevendo scripts de procedimento

Os scripts de procedimento oferecem um conjunto de instruções para serem realizadas em determinados pontos da instalação ou remoção do pacote. Os quatro scripts de procedimento devem ser nomeados com um dos nomes predefinidos, dependendo de quando as instruções serão executadas. Os scripts são executados sem argumentos.

Comportamentos do script de procedimento

Os scripts de procedimento são executados como uid=root e gid=other.

Regras de criação dos scripts de procedimento

ProcedureComo escrever scripts de procedimento

  1. Torne o diretório que contém os arquivos de informação no diretório de trabalho atual.

  2. Crie um ou mais scripts de procedimento com o editor de texto de sua preferência.

    Um script de procedimento deve ser nomeado com um dos nomes predefinidos: preinstall, postinstall, preremove ou postremove.

  3. Salve as alterações e saia do editor.

  4. Realize uma das seguintes tarefas.

  5. Construa o pacote.

    Consulte Como construir um pacote, se necessário.

Consulte também

Depois de construir o pacote, instale-o para confirmar que ele é instalado corretamente e verificar sua integridade. O Capítulo 4Verificando e transferindo um pacote explica estas tarefas e oferece instruções detalhadas sobre como transferir o pacote verificado a um meio de distribuição.

Escrevendo scripts de ação de classe

Definindo classes de objeto

As classes de objeto possibilitam uma série de ações a serem realizadas em grupo de objetos de pacote na instalação ou remoção. Você atribui objetos a uma classe no arquivo prototype. A todos os objetos de pacote deve ser fornecida uma classe, embora a classe none seja usada por padrão em objetos que não requerem nenhuma ação especial.

O parâmetro de instalação CLASSES, definido no arquivo pkginfo, é uma lista de classes a ser instalada (incluindo a classe none).


Observação –

Os objetos definidos no arquivo pkgmap que pertencem a uma classe não listada neste parâmetro do arquivo pkginfo não serão instalados.


A lista de CLASSES determina a ordem de instalação. A classe none é sempre instalada primeiro, se estiver presente, e é removida por último. Visto que os diretórios são a estrutura de suporte fundamental de todos os outros objetos do sistema de arquivos, todos eles devem ser atribuídos à classe none. Pode haver exceções, mas, como regra geral, a classe none é a mais segura. Esta estratégia garante que os diretórios sejam criados antes dos objetos que irão conter. Além disso, nenhuma tentativa de excluir um diretório é feita antes que este esteja vazio.

Como as classes são processadas durante a instalação do pacote

Abaixo estão descritas as ações de sistema que ocorrem quando uma classe é instalada. As ações são repetidas uma vez para cada volume de um pacote, conforme tal volume está sendo instalado.

  1. O comando pkgadd cria uma lista de nomes de caminho.

    O comando pkgadd cria uma lista de nomes de caminho sobre a qual o script de ação opera. Cada linha desta lista contém os nomes de caminho de origem e de destino, separados por um espaço. O nome de caminho de origem indica onde o objeto a ser instalado se localiza no volume de instalação. O nome de caminho de destino indica o local no sistema de destino onde o objeto deve ser instalado. O conteúdo da lista está limitado pelos seguintes critérios:

    • A lista contém somente nomes de caminho que pertencem à classe associada.

    • Se a tentativa de criar o objeto de pacote falhar, então os diretórios, os pipes nomeados, os dispositivos de caractere, os dispositivos de bloco e os links simbólicos são incluídos na lista com o nome de caminho de origem definido como /dev/null. Normalmente, estes itens são criados automaticamente pelo comando pkgadd (se ainda não existirem) e a eles são dados atributos apropriados (modo, proprietário, grupo) conforme definido no arquivo pkgmap.

    • Os arquivos vinculados em que o tipo de arquivo for l não são incluídos na lista sob nenhuma circunstância. Os links de disco rígido de uma determinada classe são criados no item 4.

  2. Se nenhum script de ação de classe for fornecido para a instalação de uma determinada classe, os nomes de caminho da lista gerada são copiados do volume no local de destino apropriado.

  3. Se houver um script de ação de classe, este é executado.

    O script de ação de classe é chamado com a entrada padrão que contém a lista gerada no item 1. Se este volume for o último volume do pacote, ou se não houver mais objetos nesta classe, o script é executado com o único argumento ENDOFCLASS.


    Observação –

    Mesmo se não houver nenhum arquivo regular desta classe no pacote, o script de ação de classe é chamado pelo menos uma vez com uma lista vazia e o argumento ENDOFCLASS.


  4. O comando pkgadd realiza uma auditoria de conteúdo e atributo, e cria links de disco rígido.

    Após a execução bem-sucedida dos itens 2 ou 3, o comando pkgadd realiza a auditoria das informações de conteúdo e de atributo da lista de nomes de caminho. O comando pkgadd cria automaticamente os links associados à classe. As incoerências de atributo detectadas são corrigidas em todos os nomes de caminho da lista gerada.

Como as classes são processadas durante a remoção do pacote

Os objetos são removidos classe por classe. As classes que existem em um pacote, mas que não estão listadas no parâmetro CLASSES, são removidas primeiro (por exemplo, um objeto instalado com o comando installf). As classes listadas no parâmetro CLASSES são removidas na ordem inversa. A classe none é removida sempre por último. Abaixo estão descritas as ações de sistema que ocorrem quando uma classe é removida:

  1. O comando pkgrm cria uma lista de nomes de caminho.

    O comando pkgrm cria uma lista de nomes de caminho instalados que pertencem à classe indicada. Os nomes de caminho com referência de outro pacote são excluídos da lista, a menos que o tipo de arquivo deles seja e. O tipo de arquivo e significa que o arquivo deve ser editado na instalação ou na remoção.

    Se o pacote que estiver sendo removido tiver modificado algum arquivo de tipo e durante a instalação, ele deve remover apenas as linhas que foram adicionadas. Não exclua um arquivo editável que não estiver vazio. Remova as linhas que o pacote adicionou.

  2. Se não houver nenhum script de ação de classe, os nomes de caminho são excluídos.

    Se o seu pacote não tiver nenhum script de ação de classe na classe, todos os nomes de caminho da lista gerada pelo comando pkgrm são excluídos.


    Observação –

    Os arquivos com um tipo de arquivo e (editável) não são atribuídos a uma classe nem a um script de ação de classe associado. Estes arquivos são removidos neste ponto, mesmo se o nome de caminho for compartilhado com outros pacotes.


  3. Se houver um script de ação de classe, o script é executado.

    O comando pkgrm chama o script de ação de classe com a entrada padrão do script que contém a lista gerada no item 1.

  4. O comando pkgrm realiza uma auditoria.

    Após a execução bem-sucedida do script de ação de classe, o comando pkgrm remove as referências aos nomes de caminho do banco de dados do pacote, a menos que outro pacote faça referência a um nome de caminho.

O script de ação de classe

O script de ação de classe define um conjunto de ações a serem executadas durante a instalação e a remoção de um pacote. As ações são realizadas em um grupo de nomes de caminho com base na definição de classe. Consulte Capítulo 5Estudos de caso de criação de pacote para obter exemplos de scripts de ação de classe.

O nome de um script de ação de classe é baseado na classe na qual ele deve operar e se tais operações devem ocorrer durante a instalação ou remoção do pacote. Os dois formatos de nome são mostrados na tabela seguinte:

Formato de nome 

Descrição 

i.class

Opera em nomes de caminho na classe indicada durante a instalação do pacote. 

r.class

Opera em nomes de caminho na classe indicada durante a remoção do pacote.  

Por exemplo, o nome do script de instalação de uma classe denominada manpage seria i.manpage. O script de remoção seria denominado r.manpage.


Observação –

Este formato de nome de arquivo não é usado em arquivos que pertencem às classes de sistema sed, awk ou build. Para obter mais informações sobre estas classes especiais, consulte As classes de sistema especiais.


Comportamentos do script de ação de classe

Regras de criação para sripts de ação de classe

As classes de sistema especiais

O sistema fornece quatro classes especiais:

Se vários arquivos de um pacote precisarem de processamento especial que possa ser definido completamente através dos comandos sed, awk ou sh, a instalação é mais rápida usando as classes de sistema em vez de usar várias classes e os scripts de ação de classes correspondentes .

O script de classe sed

A classe sed oferece um método para modificar um objeto existente em um sistema de destino. O script de ação de classe sed é executado automaticamente na instalação se houver um arquivo que pertença à classe sed. O nome do script de ação de classe sed deve ser igual ao nome do arquivo no qual as instruções são executadas.

Um script de ação de classe sed entrega as instruções de sed no formato seguinte:

Dois comandos indicam quando as instruções devem ser executadas. As instruções de sed que vêm depois do comando !install são executadas durante a instalação do pacote. As instruções de sed que vêm depois do comando !remove são executadas durante a remoção do pacote. Não importa a ordem na qual estes comandos sejam usados no arquivo.

Para obter mais informações sobre as instruções de sed consulte a página do manual sed(1) Para obter exemplos dos scripts de ação de classe sed, consulte o Capítulo 5Estudos de caso de criação de pacote.

O script de classe awk

A classe awk oferece um método para modificar um objeto existente em um sistema de destino. As modificações são entregues como instruções awk em um script de ação de classe awk.

O script de ação de classe awk é executado automaticamente na instalação se houver um arquivo que pertença à classe awk. Tal arquivo contém instruções para o script de classe awk no seguinte formato:

Dois comandos indicam quando as instruções devem ser executadas. As instruções de awk que vêm depois do comando !install são executadas durante a instalação do pacote. As instruções que vêm após o comando !remove são executadas durante a remoção do pacote. Estes comandos podem ser usados em qualquer ordem.

O nome do script de ação de classe awk deve ser igual ao nome do arquivo no qual as instruções são executadas.

O arquivo que será modificado é usado como entrada no comando awk e a saída do script substitui o objeto original. As variáveis de ambiente talvez não sejam passadas para o comando awk com esta sintaxe.

Para obter mais informações sobre as instruções de awk consulte a página do manual awk(1).

O script de classe build

A classe build cria ou modifica um arquivo de objeto de pacote executando as instruções do shell Bourne. Estas instruções são entregues como o objeto de pacote. As instruções são executadas automaticamente na instalação se houver um arquivo que pertença á classe build.

O nome do script de ação de classe build deve ser igual ao nome do arquivo no qual as instruções são executadas. O nome também deve ser executável pelo comando sh. A saída do script se torna a nova versão do arquivo à medida que ele é construído e modificado. Se o script não produzir saída, o arquivo não é criado nem modificado. Portanto, o script pode modificar ou criar o arquivo por si mesmo.

Por exemplo, se um pacote entrega um arquivo padrão, /etc/randomtable, e se o arquivo ainda não existir no sistema de destino, a entrada do arquivo prototype pode ser a seguinte:


e build /etc/randomtable ? ? ?

O objeto de pacote, /etc/randomtable, pode ser semelhante ao seguinte:


!install
# randomtable builder
if [ -f $PKG_INSTALL_ROOT/etc/randomtable ]; then
		echo "/etc/randomtable is already in place.";
	    else
		echo "# /etc/randomtable" > $PKG_INSTALL_ROOT/etc/randomtable
		echo "1121554	# first random number" >> $PKG_INSTALL_ROOT/etc/randomtable
fi
 
!remove
# randomtable deconstructor
if [ -f $PKG_INSTALL_ROOT/etc/randomtable ]; then
		# the file can be removed if it's unchanged
		if [ egrep "first random number" $PKG_INSTALL_ROOT/etc/randomtable ]; then
			rm $PKG_INSTALL_ROOT/etc/randomtable;
		fi
fi
 

Consulte o Capítulo 5Estudos de caso de criação de pacote para obter outros exemplos que usem a classe build.

O script de classe preserve

A classe preserve preserva um arquivo de objeto do pacote ao determinar se um arquivo existente deve ou não ser substituído quando o pacote é instalado. Duas situações possíveis que podem ocorrer ao usar um script de classe preserve são:

Ambos os resultados das situações são considerados satisfatórios pelo script preserve. Ocorre uma falha somente na segunda situação quando o arquivo não pode ser copiado no diretório de destino.

A partir do Solaris 7, o script i.preserve e uma cópia deste script, i.CONFIG.prsv, podem ser encontrados no diretório /usr/sadm/install/scripts com outros scripts de ação de classe.

Modifique o script para incluir o nome ou os nomes de arquivo que você gostaria de conservar.

O script de classe manifest

A classe manifest instala e desinstala automaticamente os serviços SMF (Service Management Facility) associados a um manifest SMF.. Se não estiver familiarizado com o SMF, consulte o Capítulo 17, Managing Services (Overview), no System Administration Guide: Basic Administration para obter informações sobre como usar o SMF para gerenciar os serviços.

Todos os manifests de serviço dentro dos pacotes devem ser identificados com a classe manifest. Os scripts de ação de classe que instalam e removem os manifests de serviço estão incluídos no subsistema de empacotamento. Quando pkgadd(1M) é chamado, o manifest de serviço é importado. Quando o pkgrm(1M) é chamado, as instâncias desativadas do manifest de serviço são excluídas. Os serviços no manifest que não têm instâncias restantes também são excluídos. Se a opção -R é fornecida a pkgadd(1M) ou pkgrm(1M), essas ações do manifest de serviço serão realizadas na próxima vez que os sistema for reinicializado com tal caminho de raiz alternativa.

A seguinte parte de código do arquivo de informações de um pacote mostra o uso da classe manifest.

# packaging files
i pkginfo
i copyright
i depend
i preinstall
i postinstall
i i.manifest
i r.manifest
#
# source locations relative to the prototype file
#
d none var 0755 root sys
d none var/svc 0755 root sys
d none var/svc/manifest 0755 root sys
d none var/svc/manifest/network 0755 root sys
d none var/svc/manifest/network/rpc 0755 root sys
f manifest var/svc/manifest/network/rpc/smserver.xml 0444 root sys

ProcedureComo escrever scripts de ação de classe

  1. Torne o diretório que contém os arquivos de informação no diretório de trabalho atual.

  2. Atribua aos objetos de pacote do arquivo prototype os nomes de classe desejados.

    Por exemplo, a atribuição de objetos a uma classe application e manpage poderia ser semelhante a:


    f manpage /usr/share/man/manl/myappl.1l
    f application /usr/bin/myappl
  3. Modifique o parâmetro CLASSES no arquivo pkginfo para que contenha os nomes de classe que você deseja usar no seu pacote.

    Por exemplo, as entradas da classe application e manpage poderiam ser semelhantes a:


    CLASSES=manpage application none

    Observação –

    A classe none é instalada sempre primeiro e removida por último, independente de onde ela aparece na definição do parâmetro CLASSES.


  4. Se estiver criando um script de ação de classe para um arquivo que pertença à classe sed, awk ou build, torne o diretório que contém o objeto de pacote seu diretório de trabalho atual.

  5. Crie os scripts de ação de classe ou objetos de pacote (em arquivos que pertençam à classe sed, awk ou build).

    Por exemplo, o script de instalação de uma classe denominada application seria denominado i.application e o script de remoção seria denominado r.application.

    Lembre-se, quando um arquivo fizer parte de uma classe que tem um script de ação de classe, o script deve instalar o arquivo. O comando pkgadd não instala os arquivos em cada classe que tenha um script de ação de classe, embora ele verifique a instalação. E, se você definir uma classe, mas não entregar um script de ação de classe, a única ação assumida por tal classe é copiar os componentes do meio de instalação no sistema de destino (o comportamento padrão de pkgadd).

  6. Realize uma das seguintes tarefas:

  7. Construa o pacote.

    Consulte Como construir um pacote, se necessário.

Próximo passo

Depois de construir o pacote, instale-o para confirmar que ele é instalado corretamente e verificar sua integridade. O Capítulo 4Verificando e transferindo um pacote explica como fazê-lo e oferece instruções detalhadas sobre como transferir o pacote verificado a um meio de distribuição.