comando de pkgmk

Propósito

Produz um pacote instalável.

Sintaxe

pkgmk [ -c ] [ -o ] [ -a Arch ] [ -b BaseDir ] [ -d Diretório ] [ -f Prototipo ] [ -l Limite ] [ -p PStamp ] [] -r RootPath ] [ -v Versão ] [ Variável=Valor ...] [ PkgInst ]

Descrição

pkgmk produz um pacote instalável para ser usado como entrada para o comando pkgadd . Um pacote é uma coleção de arquivos relacionados e executáveis que podem ser instalados de forma independente. O conteúdo do pacote estará em formato de estrutura de diretórios.

O comando pkgmk usa o arquivo de protótipo do pacote como entrada e cria um arquivo pkgmap . O conteúdo para cada entrada no arquivo do protótipo é copiado para o local de saída apropriado. As informações relativas ao conteúdo (checksum, tamanho do arquivo, data da modificação) são computadas e armazenadas no arquivo pkgmap , juntamente com informações de atributos especificados no arquivo do protótipo.

Sinalizações

Item Descrição
-a Arco Substitui as informações de arquitetura fornecidas no arquivo pkginfo com Arco.
-b BaseDir Pré-anexa o BaseDir indicado para localizar objetos realocáveis na máquina de origem
-C Comprime arquivos não de informação. Você também deve especificar a opção -r ao usar -c. As entradas no arquivo Prototype que referenciam caminhos relativos acima da especificação RootPath não serão compactados Quaisquer arquivos que já estavam compactados (ou seja, apenas aqueles em forma ". Z") antes de serem processados por pkgmk não serão descompactados pelo comando pkgadd .
-d Diretório Cria o pacote em Diretório. O diretório nomeado já deve existir.
-f Protótipo Utiliza o arquivo Protótipo como entrada para o comando. O nome padrão para este arquivo é Protótipo ou protótipo.

Você pode usar pkgproto para criar o arquivo Protótipo . Neste caso, você deve adicionar manualmente nas entradas para quaisquer scripts de instalação e arquivos que estiver usando no pacote. Você só precisa de entradas para aqueles arquivos e scripts que você usa. No entanto, você deve sempre adicionar uma entrada para o arquivo pkginfo para o pacote. Veja pkgproto para obter mais informações.

-l Limite Especifica o tamanho máximo em 512-byte blocos do dispositivo de saída como Limite. Por padrão, se o arquivo de saída for um diretório ou um dispositivo montável, pkgmk empregará o comando df para calcular dinamicamente a quantidade de espaço disponível no dispositivo de saída. Útil em conjunto com pkgtrans para criar um pacote com formato de datastream.
-o Sobrescreve a mesma instância. A instância do pacote será sobrescrita se ela já existir.
-p PStamp Substitui a definição de selo de produção no arquivo pkginfo com PStamp.
-r RootPath Anexa o nome do caminho de origem no arquivo Prototype para o RootPath indicado para localizar objetos na máquina de origem
-v Versão Sobrevoa informações da versão fornecidas no arquivo pkginfo com Versão.
Variável=Valor Coloca a variável indicada no ambiente de embalagem.
PkgInst Uma sequência curta usada para designar uma abreviação para o nome do pacote. pkgmk criará automaticamente uma nova instância se a versão e / ou arquitetura for diferente. Um usuário deve especificar apenas uma abreviação de pacote; uma determinada instância não deve ser especificada, a menos que o usuário esteja sobrescreciando-a.

Exemplos

  1. Se você deseja criar um pacote denominado mypkgA contendo os comandos lsps e lsuser , deve-se primeiro criar o conteúdo do pacote. Por exemplo:
    mkdir -p /home/myuser/example/pkgmk/sbin
    cp /usr/sbin/lsps /home/myuser/example/pkgmk/sbin
    cp /usr/sbin/lsuser /home/myuser/example/pkgmk/sbin
    Em seguida, crie o arquivo pkginfo . Neste exemplo o arquivo pkginfo é /home/myuser/example/pkgmk/pkginfo, que contém o seguinte:
    PKG="mypkgA"
    NAME="My Package A"
    ARCH="PPC"
    RELEASE="1.0"
    VERSION="2"
    CATEGORY="Application"
    PSTAMP="AIX  2001/02/05"
    
    Em seguida, crie o arquivo Protótipo , arquivo /home/myuser/example/pkgmk/prototype que contém o seguinte:
    !search /home/myuser/example/pkgmk/sbin
    i pkginfo=/home/myuser/example/pkgmk/pkginfo
    d example /example 1777 bin bin
    d example /example/pkgmk 1777 bin bin
    d example /example/pkgmk/sbin 1777 bin bin
    f example /example/pkgmk/sbin/lsps 555 bin bin
    f example /example/pkgmk/sbin/lsuser 555 bin bin
    
    Em seguida, crie o pacote com os arquivos acima Protótipo e pkginfo usando o comando pkgmk :
    pkgmk -d /tmp -f /home/myuser/example/pkgmk/prototype
    Isto produz a seguinte saída:
    Building pkgmap from package prototype file
    ## Processing pkginfo file
        WARNING:parameter <CLASSES> set to "example"
    
    ## Attempting to volumize 5 entries in pkgmap
    Part  1 -- 218 blocks, 10 entries
    /tmp/mypkgA/pkgmap
    /tmp/mypkgA/pkginfo
    /tmp/mypkgA/root/example/pkgmk/sbin/lsps
    /tmp/mypkgA/root/example/pkgmk/sbin/lsuser
    ## Packaging complete
    
    O pacote recém-criado denominado mypkgA agora existe em /tmp/mypkgA.

Status de saída

Item Descrição
0 Conclusão bem-sucedida do script.
1 Erro fatal. Processo de instalação é finalizado neste ponto.
99 Erro interno.

Arquivos

Item Descrição
/usr/sbin/pkgmk Contém o comando pkgmk .