Embora o comando pkgproto seja útil na criação de um arquivo prototype inicial, ele não cria entradas para cada objeto de pacote que precisa ser definido. Este comando não cria entradas completas. O comando pkgproto não realiza nenhuma das seguintes ações:
Criar entradas completas para objetos com tipos de arquivo v (arquivos voláteis), e (arquivos editáveis), x (diretórios exclusivos), ou i (arquivos de informação ou scripts de instalação)
Oferecer suporte a várias classes com uma única chamada
Por último, você precisa modificar o arquivo prototype para adicionar objetos com o tipo de arquivo i. Se você armazenou os arquivos de informação e os scripts de instalação no primeiro nível do diretório do seu pacote (por exemplo, /home/jane/SUNWcadap/pkginfo), a entrada de um arquivo prototype seria semelhante a:
i pkginfo |
Se não armazenou os arquivos de informação e scripts de instalação no primeiro nível do diretório do seu pacote, então você precisa especificar o local de origem destes. Por exemplo:
i pkginfo=/home/jane/InfoFiles/pkginfo |
Ou você pode usar o comando !search para especificar o local do comando pkgmk a ser pesquisado ao construir o pacote. Consulte Fornecendo um caminho de pesquisa para o comando pkgmk para obter mais informações.
Para adicionar entradas dos objetos com tipos de arquivo v, e e x, siga o formato descrito em Formato do arquivo prototype ou consulte a página do manual prototype(4).
Não se esqueça de atribuir sempre uma classe aos arquivos com um tipo de arquivo e (editável) e tenha um script de ação de classe associado a tal classe. Do contrário, os arquivos serão removidos durante a remoção do pacote, mesmo que o nome de caminho seja compartilhado com outros pacotes.
Se usar o comando pkgproto para criar o arquivo prototype básico, você pode atribuir todos os objetos de pacote à classe none ou a uma classe específica. Conforme mostrado no Exemplo — Criando um arquivo prototype com o comando pkgproto, o comando pkgproto básico atribui todos os objetos à classe none. Para atribuir todos os objetos a uma classe específica, você pode usar a opção -c. Por exemplo:
$ pkgproto -c classname /home/jane/SUNWcadap > /home/jane/InfoFiles/prototype |
Se usar várias classes, você pode precisar editar manualmente o arquivo prototype e modificar o campo class de cada objeto. Se usar classes, você também precisa definir o parâmetro CLASSES no arquivo pkginfo e scripts de ação de classe. O uso de classe é um recurso opcional e é tratado detalhadamente em Escrevendo scripts de ação de classe.
Dado o arquivo prototype criado pelo comando pkgproto em Exemplo — Criando um arquivo prototype com o comando pkgproto, várias modificações precisam ser feitas.
É necessária uma entrada para o arquivo pkginfo.
Os campos path precisam ser alterados para o formato path1=path2 porque o código-fonte do pacote está em /home/jane. Visto que o código-fonte do pacote está em um diretório hierárquico e que o comando !search não realiza pesquisa recursiva, pode ser mais fácil usar o formato path1=path2.
Os campos owner e group devem conter os nomes de usuários e grupos existentes no sistema de destino. Isto é, o proprietário jane causará um erro porque este proprietário não faz parte do sistema operacional SunOSTM.
O arquivo prototype modificado se assemelha a:
i pkginfo=/home/jane/InfoFiles/pkginfo d none SUNWcadap=/home/jane/SUNWcadap 0755 root sys d none SUNWcadap/demo=/home/jane/SUNWcadap/demo 0755 root bin f none SUNWcadap/demo/file1=/home/jane/SUNWcadap/demo/file1 0555 root bin d none SUNWcadap/srcfiles=/home/jane/SUNWcadap/srcfiles 0755 root bin f none SUNWcadap/srcfiles/file5=/home/jane/SUNWcadap/srcfiles/file5 0555 root bin f none SUNWcadap/srcfiles/file6=/home/jane/SUNWcadap/srcfiles/file6 0555 root bin d none SUNWcadap/lib=/home/jane/SUNWcadap/lib 0755 root bin f none SUNWcadap/lib/file2=/home/jane/SUNWcadap/lib/file2 0644 root bin d none SUNWcadap/man=/home/jane/SUNWcadap/man 0755 bin bin f none SUNWcadap/man/windex=/home/jane/SUNWcadap/man/windex 0644 root other d none SUNWcadap/man/man1=/home/jane/SUNWcadap/man/man1 0755 bin bin f none SUNWcadap/man/man1/file4.1=/home/jane/SUNWcadap/man/man1/file4.1 0444 bin bin f none SUNWcadap/man/man1/file3.1=/home/jane/SUNWcadap/man/man1/file3.1 0444 bin bin |