วิธีการลบถังเก่าออกจาก Homebrew


9

ฉันกำลังใช้homebrew-caskเพื่อให้แอปพลิเคชันของฉันทันสมัยอยู่เสมอ มันยอดเยี่ยมเมื่อดูแลคอมพิวเตอร์หลายเครื่องที่บ้านเดินทางหรือกำลังเดินทาง

อย่างไรก็ตามเมื่อบางแพ็คเกจกำลังได้รับการอัพเดต (เช่น Google Chrome) ฉันจะต้องติดตั้งเวอร์ชั่นที่แตกต่างพร้อมกัน (ซึ่ง OS จะเห็น)

$ 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/issues/309
2557

ยังคงมองหาคำตอบ ความพยายามครั้งล่าสุดของฉันเกี่ยวข้องกับการลบแอปพลิเคชันทั้งหมดและติดตั้งใหม่ไม่ใช่ระบบนิเวศน์
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

คำแนะนำ: คัดลอกและวางบรรทัดคำสั่งด้านบนลงในเทอร์มินัล


และอย่าตอบคำถามเดียวกันมากกว่าหนึ่งคำถาม หากคำถามมีคำตอบเหมือนกันคำถามควรถูก
แฟล็ก

สวัสดี @ name คุณช่วยแก้ไขคำตอบของคุณให้รู้ว่ามันทำอะไรได้บ้างดูเหมือนเป็นความลับ (คำพูดของฉันในวันนี้: "stackoverflow ไม่ได้เกี่ยวกับการแก้ปัญหา แต่เกี่ยวกับคำตอบ" :-))
meduz

สำหรับบุคคลที่พยายามแก้ไขโพสต์นี้โดยเปลี่ยนบรรทัดคำสั่งที่ซับซ้อนที่กำหนดให้กับสคริปต์โปรดหยุด! ผู้เขียนเขียนมันเป็นบรรทัดคำสั่งที่ซับซ้อนไม่ใช่สคริปต์ โปรดเคารพการตัดสินใจของผู้เขียนที่จะโพสต์เป็นบรรทัดคำสั่งที่ซับซ้อนไม่ใช่สคริปต์!
user3439894

โปรดจำไว้กับสถานที่ตั้ง Homebrew Caskroom ใหม่ที่คุณต้องมีการเปลี่ยนแปลงไป/opt/homebrew-cask/Caskroom/ /usr/local/Caskroom/
ปอตไลต์

เพียงแค่ FYI สำหรับผู้ที่ใช้สิ่งนี้ในอนาคตดูเหมือนว่าจะถอนการติดตั้ง / ติดตั้งถังขยะใหม่ทั้งหมดของฉัน ดูเหมือนจะตรวจไม่พบเวอร์ชันที่ติดตั้งของฉันอย่างถูกต้อง? "[*] พบอะตอมในรายการถังแล้วรุ่นล่าสุดที่ใช้ได้คือ 1.11.2 คุณได้ติดตั้งรุ่น:"
Glenn 'devalias'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.