Open MatthiasPortzel opened 11 months ago
Good catch. This is a limitation in the tap cleanup logic. https://github.com/Homebrew/homebrew-bundle/blob/f3389cc6ab60a49ae01dfdd343beb937b1f48c55/lib/bundle/commands/cleanup.rb#L137-L142 needs to be updated to consider current_formulae
. For now, though, the obvious workaround is to add that tap to your Brewfile
as brew bundle dump
will just unconditionally dump all of those anyway (and that's what we expect to have as the input to brew bundle cleanup
rather than hand-crafted Brewfile
s)
In this case, is it correct that dart should be installed at all after the initial build? My first instinct is that since it's not listed in the Brewfile, it should be removed when passed --cleanup. It's weird that dart isn't removed, but also isn't directly installed by the Brewfile (in the case where sass is already installed but dart isn't).
I'm definitely using brew in a way that isn't intended. (Writeup of my workflow.) I've worked around this issue by installing sass through npm -g
, but would like to help get brew bundle
working more properly, since I use it often.
Edit: Is there a way to list build-dependencies that are currently installed? Build dependencies are handled differently from normal dependencies and I don't really understand how they interact with everything else.
In this case, is it correct that dart should be installed at all after the initial build? My first instinct is that since it's not listed in the Brewfile, it should be removed when passed --cleanup.
It's a dependency so it should not be removed. --cleanup
doesn't remove dependencies.
Writeup of my workflow. The reason I ended up with this workflow is that Brew doesn’t remember what packages I’ve installed, vs. have been installed as a dependency of another package.
This is not actually correct, FYI.
Is there a way to list build-dependencies that are currently installed?
brew deps
with various flags can do this.
Build dependencies are handled differently from normal dependencies and I don't really understand how they interact with everything else.
They are handled less differently when building from source, like you are here.
Thanks for answering my questions.
My Brewfile contains
Sass has a build dependency on dart-lang/dart/dart (src). So in order to install/upgrade/build sass, Homebrew taps dart-lang/dart and installs dart.
When running
brew bundle install --cleanup
:dart
is not un-installed, even though it is not specified in the Brewfile.Refusing to untap dart-lang/dart because it contains the following installed formulae or casks: dart
This seems like a logic error where dart isn't uninstalled because it's a build dependency, but Brew attempts to untap dart-lang/dart anyways. If I manually uninstall dart and then re-run, Brew will successfully untap.