brew command has died for external taps

Created on 4 Nov 2017  路  3Comments  路  Source: Homebrew/brew

Please always follow these steps:

  • [x] Confirmed this is a problem with running a brew command and not brew installing or the post-install behaviour of one or more formulae? If it's a formulae-specific problem please file this issue at the relevant tap e.g. for Homebrew/homebrew-core https://github.com/Homebrew/homebrew-core/issues/new
  • [x] Ran brew update and retried your prior step?
  • [x] Ran brew doctor, fixed all issues and retried your prior step?
  • [x] Ran brew config and brew doctor and included their output with your issue?
HOMEBREW_VERSION: 1.3.6-169-g2af9813
ORIGIN: https://github.com/Homebrew/brew.git
HEAD: 2af98133ba9083a9620703be78357a227deaeef6
Last commit: 25 hours ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: c13c5d7c20aa21a857eb8a40742e07c4ecab5947
Core tap last commit: 45 minutes ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local/Homebrew
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: octa-core 64-bit haswell
Homebrew Ruby: 2.3.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Clang: 9.0 build 900
Git: 2.15.0 => /usr/local/opt/git/bin/git
Perl: /usr/local/bin/perl => /usr/local/Cellar/perl/5.26.1/bin/perl
Python: /usr/local/opt/python/libexec/bin/python => /usr/local/Cellar/python/2.7.14/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /usr/local/var/rbenv/shims/ruby => /usr/local/var/rbenv/versions/2.4.2/bin/ruby
Java: 9.0.1
macOS: 10.13.2-x86_64
Xcode: 9.1
CLT: 9.0.1.0.1.1506734476
X11: N/A
Your system is ready to brew.

brew command has stopped working for external taps. Reproduction:

brew tap homebrew/command-not-found
brew command command-not-found-init
Error: Unknown command: command-not-found-init

Or anything really. Fails with brew command bundle, as well as my own external taps.

Running git checkout stable fixes it. The commit that broke it seems to be https://github.com/Homebrew/brew/commit/29f81812ccf78c85ddac931dcfea9bfc88af82db, but beyond reverting it locally to check I haven't had a minute yet to poke at it properly 馃檲.

bug

All 3 comments

By default:
https://github.com/Homebrew/brew/blob/29f81812ccf78c85ddac931dcfea9bfc88af82db/Library/Homebrew/brew.rb#L36

Since command-not-found-init is not an internal command (i.e. none of the require? HOMEBREW_LIBRARY_PATH/* lines in the block below will find it)
https://github.com/Homebrew/brew/blob/29f81812ccf78c85ddac931dcfea9bfc88af82db/Library/Homebrew/brew.rb#L59-L70

internal_cmd will never change from true, thus never loading the PATH with the Taps' commands...
https://github.com/Homebrew/brew/blob/29f81812ccf78c85ddac931dcfea9bfc88af82db/Library/Homebrew/brew.rb#L91-L98

...and this is how 29f8181 broke the feature.

/cc @MikeMcQuaid

Thanks @DomT4 and @amyspark for the debugging help. I've opened https://github.com/Homebrew/brew/pull/3423 to address this.

@amyspark just FYI that was a great write-up and we'd love your debugging skills for future bugs too!

Thanks for looking into this @amyspark, really appreciate that. 馃挴 on the formatting of the explanation as well, couldn't have done it better if I'd tried.

I've been absolutely snowed under with studies lately 馃槗, otherwise I'd have tried to take a look myself rather than accidentally shunting it onto others. Thanks for the PR as well @MikeMcQuaid 鉂わ笍.

Was this page helpful?
0 / 5 - 0 ratings