Como posso remover um aplicativo instalado do banco de dados do pacote de instalação no Mac OS X?

3

Estou criando meu próprio instalador com o PackageMaker. Ele tem funcionado bem por um tempo, mas eu queria testar um problema em que ele remove os arquivos de uma versão anterior, mesmo que cada nova versão seja instalada em uma pasta diferente. Uma vez, eu me permiti escolher uma pasta personalizada para instalar o aplicativo (normalmente ele será instalado no diretório pessoal do usuário).

Agora, todas as instalações subseqüentes, mesmo as versões anteriores do instalador que eu não modifiquei, estão agora instaladas nessa pasta personalizada. Aparentemente, isso não é um problema do PackageMaker, mas um automatismo do PackageMaker que verifica uma instalação anterior. Eu posso contornar isso alterando o id do pacote do instalador, mas prefiro não.

Como posso acessar o banco de dados do pacote de instalação? Onde posso encontrá-lo e como posso modificá-lo?

Isso seria útil, em particular, para testar uma instalação "limpa" em um sistema que nunca teve o aplicativo instalado antes. Talvez haja uma maneira mais fácil, por exemplo, uma simples desinstalação também pode ser feita.

Espero poder remover manualmente meu aplicativo da lista de aplicativos instalados. Até agora eu só encontrei o histórico de instalação no diretório Receipts.

    
por LearnCocos2D 21.02.2012 / 18:18

1 resposta

1

Por meio do Twitter, recebi a dica para usar a ferramenta pkgutil . O argumento esquecer remove uma entrada do banco de dados do instalador, mas sem remover os arquivos reais:

sudo pkgutil --forget com.appname

Para ver uma lista de IDs de pacote, use:

pkgutil --pkgs

ou use o regexp para mostrar apenas algumas entradas:

pkgutil --pkgs=com.k*
    
por 21.02.2012 / 20:08