Làm thế nào để loại bỏ các thùng lỗi thời khỏi Homebrew?


9

Tôi đang sử dụng thùng homebrew để giữ cho hệ thống ứng dụng của tôi luôn cập nhật. Thật tuyệt vời khi duy trì một số máy tính ở nhà, đi du lịch hoặc trên đường đi.

Tuy nhiên, khi một số gói đang được cập nhật (chẳng hạn như Google Chrome), cuối cùng tôi đã cài đặt các phiên bản đồng thời khác nhau (và được HĐH nhìn thấy):

$ ls / opt / homebrew-cask / Caskroom / google-chrome / kênh ổn định mới nhất

Điều này xảy ra khi nâng cấp thùng:

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

Làm thế nào để tôi chỉ giữ gần đây nhất?


Bạn đã thử brew cleanupbrew prune?
lùn

vâng tôi đã thử nhưng nó không áp dụng cho các thùng ...
meduz

1
Điều này rõ ràng được thảo luận @ github.com/caskroom/homebrew-cask/issues/309
meduz

Vẫn đang tìm kiếm một câu trả lời. Những nỗ lực mới nhất của tôi liên quan đến việc gỡ bỏ tất cả các ứng dụng và cài đặt lại, không mang tính sinh thái.
meduz

Câu trả lời:


1

Trong Terminal, gõ:

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

Gợi ý: Sao chép và dán dòng lệnh trên vào Terminal.


và không đưa ra cùng một câu trả lời cho nhiều hơn một câu hỏi. Nếu các câu hỏi được trả lời giống nhau thì câu hỏi sẽ được gắn cờ / đóng dưới dạng trùng lặp
user151019

hi @name, bạn có thể chỉnh sửa câu trả lời của bạn để biết những gì nó làm, có vẻ khó hiểu (báo giá của tôi trong ngày: "stackoverflow là không về các giải pháp, nhưng về câu trả lời" :-))
meduz

Để các cá nhân tiếp tục cố gắng chỉnh sửa bài đăng này thay đổi dòng lệnh phức tạp đã cho thành một tập lệnh, xin vui lòng dừng lại! Tác giả đã viết nó như một dòng lệnh phức tạp, không phải là một kịch bản. Hãy tôn trọng quyết định của tác giả để đăng nó dưới dạng một dòng lệnh phức tạp, không phải là một kịch bản!
user3439894

Ghi với Homebrew Caskroom vị trí mới, bạn cần phải thay đổi /opt/homebrew-cask/Caskroom/để /usr/local/Caskroom/.
Tiêu điểm

Chỉ là một FYI cho những người chạy nó trong tương lai, có vẻ như nó đang gỡ cài đặt / cài đặt lại tất cả các thùng của tôi. Có vẻ như không phát hiện đúng phiên bản đã cài đặt của tôi? "[*] Đã tìm thấy nguyên tử trong danh sách thùng. Phiên bản mới nhất có sẵn là 1.11.2. Bạn đã cài đặt (các) phiên bản:"
Glenn 'devalias'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.