Como eu desinstalo qualquer arquivo do pacote Apple pkg?


51

Apesar das opiniões em contrário , nem todos os pacotes são instalados corretamente em apenas um diretório. Existe uma maneira de reverter o processo de instalação de um arquivo pkg, de preferência com o pacote original (ou de um repositório de informações sobre pacotes instalados)?

Especificamente, instalei o pacote PowerPC MySQL 5.4.1 em um Intel MacBook e gostaria de reverter isso de maneira limpa, recuperando a instalação 5.1 x86 que vejo ainda está lá, mas não está funcionando corretamente agora.

Respostas:


83

https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X descreve como desinstalar .pkg usando nativo pkgutil.

Trecho modificado

$ pkgutil --pkgs # list all installed packages
$ pkgutil --files the-package-name.pkg # list installed files

Após inspecionar visualmente a lista de arquivos, você pode fazer algo como:

$ pkgutil --pkg-info the-package-name.pkg # check the location
$ cd / # assuming the package is rooted at /...
$ pkgutil --only-files --files the-package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -f
$ pkgutil --only-dirs --files the-package-name.pkg | tail -r | tr '\n' '\0' | xargs -n 1 -0 sudo rmdir

Desnecessário dizer que deve-se sempre tomar muito cuidado ao remover arquivos com privilégios de root. Particularmente, esteja ciente de que alguns pacotes podem atualizar componentes compartilhados do sistema; portanto, desinstalá-los pode realmente danificar seu sistema removendo um componente necessário.

Para pacotes menores, provavelmente é mais seguro remover manualmente os arquivos depois de inspecionar visualmente a lista de arquivos do pacote.

Aparentemente, havia uma --unlinkopção disponível no pkgutil, mas a partir do Lion não é mencionada na página de manual. Talvez tenha sido removido porque foi considerado muito perigoso.

Depois de desinstalar os arquivos, você pode remover o recibo com:

$ sudo pkgutil --forget the-package-name.pkg

11
Eu recomendo usar em rmdirvez de rm -r; pode-se também usar tacou tail -rreverter a lista de nomes de diretórios de modo que eles são apagados na correta ordem
— Sam Mason

18
NÃO EXECUTE O sudo rm -ir PARTE. A lista inclui os diretórios pai! Portanto, se o pkg instalado algo em / usr / ... você irá remover ALL / usr /
— FiloSottile

2
Alterei o comando para excluir diretórios a serem usados rmdir(que não exclui diretórios não vazios) e os utiliza tail -rpara listá-los em melhor ordem.
— Br172 #

11
Ironicamente, ao usar o pgkutil, encontrei um uninstaller.pl escondido que eu poderia usar. Perfeito!
— Cmdrainirgo

Uma coisa que os pkgs parecem não acompanhar são os links simbólicos criados pelos pkgs. É possível que limpar o pacote com as instruções acima (ou qualquer um dos métodos aqui) deixe links simbólicos quebrados para trás.
— James McMahon

19

Integrado ao sistema, não há opção para desinstalar os arquivos usando um desinstalador, para que você possa fazer um desinstalador ou remover os arquivos manualmente.

O melhor método para determinar quais arquivos foram instalados é obter o original, .pkgse possível. Se isso não for possível, você também pode usar os recibos encontrados em /Library/Receipts. Seu maior problema é quando você lida com um arquivo .mpkgque contém vários .pkgarquivos, pois você terá que encontrar todos os .pkgarquivos separados nessa pasta (felizmente, não é tão difícil assim, quando classificado por data).

Depois de ter o .pkgarquivo (Recibo ou o arquivo de instalação completa), você poderá usar um utilitário para criar o desinstalador ou localizar os arquivos para removê-los manualmente:

Desinstalador

O Absolute Software InstallEase é um programa gratuito que pode criar desinstaladores a partir de arquivos .pkg existentes. Crie o .pkgarquivo do desinstalador (observação: você precisará das Ferramentas do desenvolvedor da Apple instaladas para criar o .pkgarquivo)

Manualmente

Usando um programa como o Pacifist ou um plugin do QuickLook como Suspicious Package, você pode ver quais arquivos estão instalados e em que local. Usando essa lista, você pode navegar manualmente para essas pastas e remover os arquivos. Eu usei esse método pessoalmente inúmeras vezes antes de descobrir o InstallEase, mas isso ainda é mais rápido se a instalação não estiver espalhada por muitos locais.


Obrigado, enquanto os pacotes mysql 5.1 regulares deixaram um recibo, os pacotes mysql beta 5.4 não. Isso é um pouco estranho.
— dlamblin 6/09/09

4
Uau, se eu soubesse disso, nunca teria instalado o .pkgpara começar. yu no Programas e Recursos OS X?
— NobleUplift


1

Você pode tentar as sugestões deste site: http://www.entropy.ch/software/macosx/mysql/remove-old-mysql.html . Além disso, há um artigo sobre isso no site de suporte da Adobe; aqui está o link: http://support.adobe.com/devsup/devsup.nsf/docs/52355.htm .

Além disso, os aplicativos que geralmente possuem um arquivo pkg no dmg também possuem outro pkg usado para desinstalação. Não tenho certeza se isso é verdade aqui, mas eu queria que você soubesse para manter o arquivo dmg original.


1

Eu fiz um srcipt shell

você pode experimentá-lo

https://github.com/iamrToday/pkg-remove

Ele mostra uma demonstração .gif, você pode ver o código fonte, basta quebrar a linha de comando do brablc . Você pode executá-lo para pesquisar informações, também pode remover apk. É interativo.


O que isso faz?
— Pierre.Vriens

Eu mostro uma demonstração .gif, você pode ver o código fonte, basta quebrar a linha de comando do brablc . você pode executá-lo para pesquisar informações, também pode remover apk. é interativo. :)
— rToday Lin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.