ITADN

uninstall --cask <path> reports 'is not installed' right after successful install from the same path (main, breaks homebrew-cask CI)

#23086Closedzack40x 创建于 2026-07-13
Z
zack40xcommented
**What happened:** On current `main`, `brew uninstall --cask <path>` fails with `Error: Cask '<path>' is not installed.` immediately after `brew install --cask <path>` succeeded from the same path. Uninstalling by token still works. This appears to break the homebrew-cask CI test step (`brew install --cask './Casks/...'` then `brew uninstall --cask './Casks/...'`) for every currently-open cask PR. **Repro (any cask; shown with an existing one):** ``` $ cd $(brew --repository homebrew/cask) $ brew install --cask ./Casks/t/topnotch.rb 🍺 topnotch was successfully installed! $ brew uninstall --cask ./Casks/t/topnotch.rb Error: Cask './Casks/t/topnotch.rb' is not installed. $ brew uninstall --cask topnotch # by token: works ==> Purging files for version 1.3.2 of Cask topnotch ``` Reproduces identically with and without `HOMEBREW_DEVELOPER=1`, and with a new cask file under review (crest). **Where it bites in CI** (uninstall step fails with the same message, then the leftover check reports the app still installed): - https://github.com/Homebrew/homebrew-cask/actions/runs/29280632570/job/86920862977 (crest, macos-26 arm) - Same symptom on macos-15-intel for the same PR, and current PRs #274814, #274812, #274813, #274816 are red on their test jobs in the same window. **Expected:** uninstall by path resolves the installed cask exactly like install by path does (or, if path resolution is now intentionally forbidden, both commands should refuse consistently and say so, rather than reporting "is not installed"). Possibly related to the recent path-loading/`HOMEBREW_FORBID_PACKAGES_FROM_PATHS` work; the failure message is misleading either way. **`brew config`:** ``` HOMEBREW_VERSION: 6.0.10-17-g85c5ba0 ORIGIN: https://github.com/Homebrew/brew HEAD: 85c5ba05deaa43787600e2d2a99a3e8ab4f6b6a0 Last commit: 2 hours ago Branch: main Core tap: N/A Core cask tap HEAD: dc89dd190f1afa6a983d0ee959f50b24bda59cde HOMEBREW_PREFIX: /opt/homebrew HOMEBREW_CASK_OPTS: [] HOMEBREW_DOWNLOAD_CONCURRENCY: 28 HOMEBREW_FORBID_PACKAGES_FROM_PATHS: set HOMEBREW_MAKE_JOBS: 14 HOMEBREW_REQUIRE_TAP_TRUST: set Homebrew Ruby: 4.0.5 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/4.0.5_1/bin/ruby CPU: 14-core 64-bit arm_brava Clang: 21.0.0 build 2100 Git: 2.50.1 => /Library/Developer/CommandLineTools/usr/bin/git Curl: 8.7.1 => /usr/bin/curl macOS: 15.x arm64 ``` **`brew doctor`:** only the expected warning that the cask tap is on a PR branch (checked out for the repro).
关闭于 2026-07-13 1 条评论