Como desinstalar todas as versões não utilizadas de um pacote macports de uma só vez

32

Ao manter pacotes macports, prefiro remover pacotes antigos quando os substituir por novos. No entanto, com o tempo, à medida que os pacotes são atualizados, você acaba com problemas como:

$ sudo port uninstall -f postgresql83
--->  The following versions of postgresql83 are currently installed:
--->    postgresql83 @8.3.3_0
--->    postgresql83 @8.3.7_0
--->    postgresql83 @8.3.8_1 (active)
Error: port uninstall failed: Registry error: Please specify the full version as recorded in the port registry.

Existe um comando macports para remover todas as versões de um pacote de uma só vez?

Dana the Sane
fonte

Respostas:

38

Se você deseja desinstalar todas as versões antigas (não ativas), tente o seguinte:

port -y -u uninstall
  # if you like what you see, change “port -y” to “sudo port”

Se você quer desinstalar todas as versões (inativas e ativas) da postgresql83porta (por exemplo) , tente o seguinte:

port -y uninstall installed and postgresql83
  # if you like what you see, change “port -y” to “sudo port”
Chris Johnsen
fonte
Isso funcionou para mim, uma porta ruim não lida com atualizações de dependência para o postgres84 automaticamente.
Dana the Sane
2
@Dana the Sane Se você quer dizer remover pacotes que dependem do postgres84 automaticamente, você pode usar o argumento --follow-dependents.
Nick
@ Nick Vou tentar na próxima vez que eu desinstalar algo.
Dana the Sane
A segunda abordagem funciona bem para mim, mas o primeiro com -uparece dar o mesmo aviso sobre várias versões sendo instalado como se eu não tivesse usado -uem tudo
Matt b
Esses comandos não funcionam (no Mac OSX Mavericks).
precisa saber é
44
sudo port uninstall inactive

Isso removerá suas portas inativas.

sprotsman
fonte