Як видалити застарілі скриньки з Homebrew?


9

Я використовую homebrew-cask, щоб оновити свою екосистему додатків. Це чудово, коли ви підтримуєте кілька комп’ютерів вдома, подорожі або в дорозі.

Однак, коли деякі пакунки оновлюються (наприклад, Google Chrome), у мене встановлюються різні паралельні версії (які бачать ОС):

$ ls / opt / homebrew-cask / Caskroom / google-chrome / останній стабільний канал

Це відбувається під час оновлення скриньки:

$ ls -l /opt/homebrew-cask/Caskroom/tunnelblick
total 0
drwxr-xr-x 5 foo staff 238 Mar 11 07:42 3.3.0
drwxr-xr-x 5 foo staff 238 May 13 13:53 3.3.2
[13:00:40] foo at bar in ~
$ brew cask install --force tunnelblick
==> Caveats
For security reasons, Tunnelblick must be installed to /Applications and will request to be moved at launch.

==> Downloading https://downloads.sourceforge.net/project/tunnelblick/All%20files/Tunnelblick_3.3.4.dmg
######################################################################## 100.0%
==> It seems there is already an App at '/Applications/Tunnelblick.app'; not linking.
🍺  tunnelblick installed to '/opt/homebrew-cask/Caskroom/tunnelblick/3.3.4' (236 files, 20M)

$ ls -l /opt/homebrew-cask/Caskroom/tunnelblick
total 0
drwxr-xr-x 5 foo staff 238 Mar 11 07:42 3.3.0
drwxr-xr-x 5 foo staff 238 May 13 13:53 3.3.2
drwxr-xr-x 5 foo staff 238 Jun 26 13:01 3.3.4
[13:01:26] foo at bar in ~

Як я зберігаю лише найсвіжіші?


ви пробували brew cleanupі brew prune?
dwightk

так, я спробував, але це не стосується бочок ...
meduz

1
Це, мабуть, обговорюється @ github.com/caskroom/homebrew-cask/isissue/309
meduz

Ще шукаю відповідь. Мої останні спроби стосуються видалення всіх програм та перевстановлення, не дуже екологічних.
meduz

Відповіді:


1

У Терміналі введіть:

for app in $(brew cask list); do cver="$(brew cask info "${app}" | head -n 1 | cut -d " " -f 2)"; ivers=$(ls -1 "/opt/homebrew-cask/Caskroom/${app}/.metadata/" | tr '\n' ' ' | sed -e 's/ $//'); aivers=(${ivers}); nvers=$(echo ${#aivers[@]}); echo "[*] Found ${app} in cask list. Latest available version is ${cver}. You have installed version(s): ${overs}"; if [[ ${nvers} -eq 1 ]]; then echo "${ivers}" | grep -q "^${cver}$" && { echo "[*] Latest version already installed :) Skipping changes ..."; continue; }; fi; echo "[+] Fixing from ${ivers} to ${cver} ..."; brew cask uninstall "${app}" --force; brew cask install "${app}"; done

Підказка: Скопіюйте та вставте вищевказаний командний рядок у термінал.


і не дайте однакової відповіді на більш ніж одне запитання. Якщо на відповіді відповідати те саме, то питання потрібно позначити / закрити як дублікат
user151019

привіт @name, ти міг би відредагувати свою відповідь, щоб знати, що це робить, здається загадковим (моя цитата дня: "stackoverflow - це не про рішення, а про відповіді" :-))
meduz

Людям, які намагаються редагувати цю публікацію, змінюючи заданий складний командний рядок на сценарій, будь ласка, зупиніться! Автор написав це як складний командний рядок, а не сценарій. Будь ласка, поважайте рішення авторів розмістити його як складний командний рядок, а не сценарій!
користувач3439894

Пам'ятайте , з новим Homebrew Caskroom місці вам потрібно змінити /opt/homebrew-cask/Caskroom/до /usr/local/Caskroom/.
Прожектор

Просто FYI для тих, хто працює цим у майбутньому, здається, він видаляє / перевстановлює всі мої скриньки. Можливо, невірно встановлено встановлену версію? "[*] Знайдено атом у списку cask. Остання доступна версія - 1.11.2. Ви встановили версію (и):"
Glenn 'devalias'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.