Para configurar a instalação seletiva neste estudo de caso, você deve concluir as seguintes tarefas:
Definir uma classe para cada tipo de objeto que pode ser instalado.
Neste estudo de caso, os três tipos de objetos são as executáveis do pacote, as páginas do manual e as executáveis emacs. Cada tipo possui sua própria classe: bin, man e emacs, respectivamente. Observe que no arquivo prototype todos os arquivos do objeto pertencem a uma dessas três classes.
Inicializar o parâmetro CLASSES no arquivo pkginfo como nulo.
Normalmente, quando uma classe é definida, ela deve ser listada no parâmetro CLASSES no arquivo pkginfo. Do contrário, nenhum objeto é instalado em tal classe. Para este estudo de caso, o parâmetro é inicialmente definido como nulo, o que significa que nenhum objeto será instalado. O parâmetro CLASSES será alterado pelo script request, com base nas escolhas do administrador. Desta forma, o parâmetro CLASSES é definido somente para os tipos de objetos que o administrador deseja instalar.
Em geral, é uma boa idéia definir os parâmetros com um valor padrão. Se este pacote tiver componentes comuns aos três tipos de objetos, você pode atribuí-los a classe none e, então, definir o parâmetro CLASSES igual a none.
Inserir nomes de caminho paramétricos no arquivo prototype.
O script request define estas variáveis de ambiente com o valor fornecido pelo administrador. Nesse caso, o comando pkgadd resolve estas variáveis de ambiente no tempo de instalação e sabe onde instalar o pacote.
As três variáveis de ambiente usadas deste exemplo estão definidas com seus valores padrão no arquivo pkginfo e servem para os seguintes propósitos:
$NCMPBIN define o local das executáveis do objeto
$NCMPMAN define o local das páginas do manual
$EMACS define o local das executáveis emacs
O arquivo prototype do exemplo mostra como definir os nomes de caminho do objeto com as variáveis.
Criar um script request para perguntar ao administrador que partes do pacote devem ser instaladas e onde devem ser colocadas.
O script request deste pacote faz duas perguntas ao administrador:
Esta parte do pacote deve ser instalada?
Quando a resposta for sim, o nome de classe apropriado é adicionado ao parâmetro CLASSES. Por exemplo, quando o administrador opta por instalar as páginas do manual associadas a este pacote, a classe man é adicionada ao parâmetro CLASSES.
Se afirmativo, onde esta parte deve ser colocada?
A variável de ambiente apropriada é definida de acordo com a resposta a esta pergunta. No exemplo da página do manual, a variável $NCMPMAN é definida como o valor da resposta.
Estas duas perguntas são repetidas em cada um dos três tipos de objetos.
No final do script request, os parâmetros são disponibilizados para o ambiente de instalação do comando pkgadd e qualquer outro script de empacotamento. O script request faz isso gravando estas definições no arquivo fornecido pelo utilitário de chamada. Para este estudo de caso, não é fornecido nenhum outro script.
Ao observar o script request deste estudo de caso, note que as perguntas são geradas pelas ferramentas de validação de dados ckyorn e ckpath. Para obter mais informações sobre estas ferramentas, consulte ckyorn(1) e ckpath(1).