• Stars
    star
    398
  • Rank 108,325 (Top 3 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

πŸ” Ubuntu’s command-not-found equivalent for Homebrew on macOS

Homebrew Command Not Found

This project reproduces Ubuntu’s command-not-found for Homebrew users on macOS.

GitHub Actions

On Ubuntu, when you try to use a command that doesn’t exist locally but is available through a package, Bash will suggest you a command to install it. Using this script, you can replicate this feature on macOS:

# on Ubuntu
$ when
The program 'when' is currently not installed.  You can install it by typing:
sudo apt-get install when

# on macOS with Homebrew
$ when
The program 'when' is currently not installed. You can install it by typing:
  brew install when

Over 5000 formulae are supported, representing more than 17000 different commands (100% of the main Homebrew repo).

Install

First, tap this repository:

brew tap homebrew/command-not-found
  • Bash and Zsh: Add the following line to your ~/.bash_profile (bash) or ~/.zshrc (zsh):

    HB_CNF_HANDLER="$(brew --repository)/Library/Taps/homebrew/homebrew-command-not-found/handler.sh"
    if [ -f "$HB_CNF_HANDLER" ]; then
    source "$HB_CNF_HANDLER";
    fi
  • Fish: Add the following line to your ~/.config/fish/config.fish:

    set HB_CNF_HANDLER (brew --repository)"/Library/Taps/homebrew/homebrew-command-not-found/handler.fish"
    if test -f $HB_CNF_HANDLER
       source $HB_CNF_HANDLER
    end

Requirements

This tool requires one of the following:

  • Zsh (the default on macOS Catalina and above)
  • Bash (version 4 and higher)
  • Fish

How it works

When you tap the repo you’ll get two more brew commands: brew which-formula and brew which-update. The first one uses a database file which gives you the formula you have to install in order to get a specific command. The file is generated by the second command by crawling all installed formulae and collecting their binaries. Having this as a tap means you get an up-to-date binaries database each time you run brew update.

The handler.sh script defines a command_not_found_handle function which is used by Bash when you try a command that doesn’t exist. The function calls brew which-formula on your command, and if it finds a match it’ll print it to you. If not, you’ll get an error as expected.

More Repositories

1

brew

🍺 The missing package manager for macOS (or Linux)
Ruby
40,651
star
2

legacy-homebrew

πŸ’€ The former home of Homebrew/homebrew (deprecated)
26,993
star
3

homebrew-cask

🍻 A CLI workflow for the administration of macOS applications distributed as binaries
Ruby
20,766
star
4

homebrew-core

🍻 Default formulae for the missing package manager for macOS (or Linux)
Ruby
13,556
star
5

homebrew-bundle

πŸ“¦ Bundler for non-Ruby dependencies from Homebrew, Homebrew Cask and the Mac App Store.
Ruby
5,276
star
6

homebrew-cask-fonts

πŸ’€ Casks of οΌ¦πŸ…Ύπ“π“πš‚ (deprecated)
2,862
star
7

install

πŸ“₯ Homebrew (un)installer
Shell
2,142
star
8

homebrew-services

πŸš€ Manage background services using the daemon manager launchctl on macOS or systemctl on Linux.
Ruby
1,983
star
9

formulae.brew.sh

🏎 An online formulae browser for Homebrew
HTML
1,463
star
10

homebrew-cask-versions

πŸ’€ Alternate versions of Casks (deprecated)
1,182
star
11

linuxbrew-core

πŸ’€Formerly the core formulae for the Homebrew package manager on Linux
Ruby
1,160
star
12

homebrew-cask-drivers

πŸ’€ Casks of Drivers (deprecated)
459
star
13

discussions

πŸ—£ Public open-ended discussions. Replacement for our Discourse.
375
star
14

ruby-macho

πŸ”© A pure-Ruby library for parsing Mach-O files.
Ruby
241
star
15

homebrew-aliases

➑️ Aliases for Homebrew
Ruby
149
star
16

brew.sh

πŸ”– The Homebrew homepage
HTML
133
star
17

homebrew-portable-ruby

πŸš— Versions of Ruby that can be installed and run from anywhere on the filesystem.
Ruby
129
star
18

actions

πŸš€ Homebrew's GitHub Actions
JavaScript
118
star
19

homebrew-livecheck

πŸ’€ Homebrew/homebrew-livecheck (deprecated)
96
star
20

homebrew-test-bot

🎰 Tests the full lifecycle of a Homebrew change.
Ruby
75
star
21

formula-patches

πŸ₯ Patches for Homebrew formulae
C
65
star
22

gsoc

πŸ’€ Homebrew's Google Summer of Code (deprecated)
52
star
23

homebrew-linux-fonts

πŸ–‹ Formula of οΌ¦πŸ…Ύπ“π“πš‚ (fork of Caskroom-fonts)
Ruby
48
star
24

.github

πŸ‘©β€βš•οΈ Default community health files for the Homebrew organisation on GitHub.
33
star
25

rubydoc.brew.sh

πŸ“– An online Ruby documentation browser for Homebrew/brew
Ruby
26
star
26

homebrew-linux-dev

πŸ’€ Homebrew/homebrew-linux-dev (deprecated)
Ruby
20
star
27

homebrew-formula-analytics

πŸ”’ Query Homebrew's analytics from the command-line.
Ruby
13
star
28

brew-pip-audit

πŸ“‹ Bulk auditing Python dependencies in Homebrew with pip-audit
Ruby
11
star
29

homebrew-governance

πŸ’€Homebrew's governance (deprecated)
10
star
30

glibc-bootstrap

πŸ₯Ύ Bootstrap binaries for compiling glibc from source
Shell
9
star
31

orka_api_client

πŸ’Ž A Ruby gem for interfacing with MacStadium's Orka API
Ruby
5
star
32

ci-orchestrator

🎻 Manager of CI machine deployment and teardown (for internal Homebrew use)
Ruby
5
star