Usando PackageMaker para executar um script em instalar
-
22-07-2019 - |
Pergunta
Eu tenho um aplicativo que eu preciso para criar um instalador para, e todas as necessidades do instalador para fazer (além de copiar o app) é executar um script (ou executável) que não faz parte do próprio app. Qualquer ajuda sobre como posso fazer isso? Eu vejo nos Requisitos guia há um Resultados de Script ação, e há também os pré-instalar Ações em Ações que tem um Open File ação. qualquer um destes irá fazer o trabalho ou devo estar procurando outro lugar?
Solução
Aqui é uma boa How-to
Existem 7 tipos de scripts que pode ser lançado durante o processo de instalação:
InstallationCheck: Este script é lançado no início do processo de instalação (mesmo antes da etapa de autenticação). Ele pode ser usado para verificar se o pacote pode ser instalado no computador.
VolumeCheck: Este script é lançado na etapa "Selecionar destino". Ele é usado para determinar em qual volume do pacote pode ser instalado.
comprovação: Este script é lançado logo após o usuário clicar no botão "Instalar".
preinstall / preupgrade: Este script é lançado após o script comprovação se há uma (no caso de uma instalação do pacote single); caso contrário, apenas após o usuário clicar no botão "Instalar".
Como você pode ver, há 2 tipos de scripts aqui. O único pré-instalação é iniciado quando o pacote nunca foi instalado (a partir de um ponto de vista Installer.app), a pré-atualização é lançada quando o pacote já foi instalado. Para determinar se um pacote já foi instalado ou não, Installer.app está tendo um olhar para o conteúdo do seguinte diretório: / Library / Receipts. Se há um arquivo chamado PackageName.pkg dentro dela, em seguida, o pacote já foi instalado, caso contrário, é a primeira instalação.
postinstall / postupgrade: Este script é lançada após os arquivos no pacote foram instalados. Ver (pré-instalação / preupgrade) para ver qual deles é lançado.
postflight: Este script é lançado após o script postinstall / postupgrade ou quando o pacote foi instalado.
Outras dicas
Eu só conseguiu incluir um script Shell para meu pacote que fiz com PackageMaker. I necessário para adicionar meu aplicativo para os itens de login após a instalação, por isso fiz um script chamado postflight.sh
e colocá-lo em uma pasta. (Parece que funciona com qualquer localização)
E então no meu pacote, eu tenho Applications. Em Conteúdo, Pacote: Aplicações, na aba Scripts, escolho o postflight.sh
na seção Postflight. É isso aí.
meus postflight.sh
começa com
#!/bin/bash
e, em seguida, ele tem algum script para colocar o aplicativo para os itens de login. Quando eu não tiver isso, eu poderia fazer o pacote, mas a instalação falhou. Espero que este seja útil.
Este PackageMaker How-To artigo está desatualizado, mas tem alguma informação muito útil em scripts cerca de meio caminho para baixo. Procure a tabela que mostra as variáveis ??de linha de comando como visto de shell e perl, além de alguns valores de status de saída útil.