Как удалить сразу все неиспользуемые версии пакета macports

32

При обслуживании пакетов macports я предпочитаю удалять старые пакеты, когда заменяю их новыми. Однако со временем, когда пакеты обновляются, вы сталкиваетесь с такими проблемами, как:

$ 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.

Существует ли команда macports для удаления всех версий пакета одновременно?

Дана вменяемая
источник

Ответы:

38

Если вы хотите удалить все старые (неактивные) версии, попробуйте это:

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

Если вы хотите удалить все версии (например, неактивные и активные) postgresql83порта (например) , попробуйте следующее:

port -y uninstall installed and postgresql83
  # if you like what you see, change “port -y” to “sudo port”
Крис Джонсен
источник
Это сработало для меня, слишком плохой порт не обрабатывает обновления зависимостей для postgres84 автоматически.
Дана Саня
2
@ Dana the Sane Если вы имеете в виду автоматическое удаление пакетов, которые зависят от postgres84, вы можете использовать аргумент --follow-dependents.
Ник
@ Ник, я попробую это в следующий раз, когда что-нибудь удалю.
Дана Нормальный
Второй подход отлично работает для меня, но первый один с , -uкажется, дает такое же предупреждение о нескольких версиях устанавливается , как если бы я не использовал -uвообще
матовые б
Эти команды не работают (на Mac OSX Mavericks).
bzero
44
sudo port uninstall inactive

Это удалит ваши неактивные порты.

sprotsman
источник