History

  • Last content verification: 2017-5-1, macOS 10.12.4, Homebrew 1.2.0.

macOS

If you've installed any of the softwares before, but would like to re-install it, (possibly because you want to make sure it's installed with the options such as --with-default-names, use brew reinstall ... in place of brew install.

GNU core utilities

The GNU Core Utilities (coreutils) contains "the basic file, shell and text manipulation utilities of the GNU operating system."

brew install coreutils

Other GNU utilities

Run the following if not already in the past:

brew tap homebrew/dupes

Install utilities:

brew install binutils
brew install diffutils
brew install ed --with-default-names
# brew install findutils --with-default-names ## This will cause 'brew doctor' to issue warning: "Putting non-prefixed findutils in your path can cause python builds to fail."
brew install findutils
brew install gawk
brew install gnu-indent --with-default-names
brew install gnu-sed --with-default-names
brew install gnu-tar --with-default-names
brew install gnu-which --with-default-names
brew install gnutls
brew install grep --with-default-names
brew install gzip
brew install screen
brew install watch
brew install wdiff --with-gettext
brew install wget
brew install gnupg
brew install gnupg2

The following utilities already exist on macOS, but install the newest version from Homebrew:

brew install bash
brew link --overwrite bash
# brew install emacs
brew install --cocoa --srgb emacs ## 
brew linkapps emacs
brew install gdb  # gdb requires further actions to make it work. See `brew info gdb`.
brew install guile
brew install gpatch
brew install m4
brew install make
brew install nano

macOS has the following non-GNU utilities, but you can install and use a newer version instead of the version shipped by macOS:

brew install file-formula
brew install git
brew install less
brew install openssh
brew install rsync
brew install svn
brew install unzip
brew install vim --override-system-vi
brew install macvim --with-override-system-vim --custom-system-icons
brew link --overwrite macvim
brew linkapps macvim
brew install zsh

Install Perl:

brew tap homebrew/versions
brew install perl518   # must run "brew tap homebrew/versions" first!

Install Python:

brew install python
brew linkapps python
pip install --upgrade pip setuptools

Configuration in .bashrc

If installed GNU utilities without using the default names:

brew install ed #--with-default-names
brew install findutils #--with-default-names
brew install gnu-indent #--with-default-names
brew install gnu-sed #--with-default-names
brew install gnu-tar #--with-default-names
brew install gnu-which #--with-default-names
brew install grep #--with-default-names

i.e., installing them without the --with-default-names option, Homebrew will install the formulae with the prefix "g". If you still need to use these commands with their normal names, you can add a "gnubin" directory to your PATH in file ~/.bashrc:

PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"
... # possibly others

Additionally, to make the man pages of the GNU versions of the utilities accessible via their normal names, add the gnuman directory to the MANPATH variable in the file ~/.bashrc:

MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"
MANPATH="/usr/local/opt/gnu-sed/libexec/gnuman:$MANPATH"
MANPATH="/usr/local/opt/gnu-tar/libexec/gnuman:$MANPATH"
... # possibly others

But I recommend installing with the --with-default-names option whenever applicable.

It seems --with-default-names is not applicable to the coreutils package, so

PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"

always need to be applied.

Homebrew "caveats" and post-installation configuration

  • gdb

gdb requires special privileges to access Mach ports. You will need to codesign the binary. For instructions, see:

http://sourceware.org/gdb/wiki/BuildingOnDarwin

  • openssl and certificates

      $ brew install wget
      ==> Installing wget dependency: openssl
      ==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2a-1.yosemite.bottle.1.tar.gz
      ######################################################################## 100.0%
      ==> Pouring openssl-1.0.2a-1.yosemite.bottle.1.tar.gz
      ==> Caveats
      A CA file has been bootstrapped using certificates from the system
      keychain. To add additional certificates, place .pem files in
        /usr/local/etc/openssl/certs
    
      and run
        /usr/local/opt/openssl/bin/c_rehash
    
      This formula is keg-only, which means it was not symlinked into /usr/local.
    
      macOS already provides this software and installing another version in
      parallel can cause all kinds of trouble.
    
      Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries
    
      Generally there are no consequences of this for you. If you build your
      own software and it requires this formula, you'll need to add to your
      build variables:         
          LDFLAGS:  -L/usr/local/opt/openssl/lib
          CPPFLAGS: -I/usr/local/opt/openssl/include
      ==> Summary
      🍺  /usr/local/Cellar/openssl/1.0.2a-1: 463 files, 18M
      ==> Installing wget
      ==> Downloading https://homebrew.bintray.com/bottles/wget-1.16.3.yosemite.bottle.tar.gz
      ######################################################################## 100.0%
      ==> Pouring wget-1.16.3.yosemite.bottle.tar.gz
      🍺  /usr/local/Cellar/wget/1.16.3: 9 files, 1.5M
      $
    
    
  • Git

      $ brew install git
      ==> Downloading https://homebrew.bintray.com/bottles/git-2.4.0.yosemite.bottle.tar.gz
      ######################################################################## 100.0%
      ==> Pouring git-2.4.0.yosemite.bottle.tar.gz
      ==> Caveats
      The macOS keychain credential helper has been installed to:
        /usr/local/bin/git-credential-osxkeychain
    
      The "contrib" directory has been installed to:
        /usr/local/share/git-core/contrib
    
      Bash completion has been installed to:
        /usr/local/etc/bash_completion.d
    
      zsh completion has been installed to:
        /usr/local/share/zsh/site-functions
      ==> Summary
      🍺  /usr/local/Cellar/git/2.4.0: 1368 files, 31M
      $
    
    
  • sqlite

      $ brew install sqlite
      ==> Installing subversion dependency: sqlite
      ==> Downloading https://homebrew.bintray.com/bottles/sqlite-3.8.10.1.yosemite.bottle.tar.gz
      ######################################################################## 100.0%
      ==> Pouring sqlite-3.8.10.1.yosemite.bottle.tar.gz
      ==> Caveats
      This formula is keg-only, which means it was not symlinked into /usr/local.
    
      macOS already provides this software and installing another version in
      parallel can cause all kinds of trouble.
    
      macOS provides an older sqlite3.
    
      Generally there are no consequences of this for you. If you build your
      own software and it requires this formula, you'll need to add to your
      build variables:
          LDFLAGS:  -L/usr/local/opt/sqlite/lib
          CPPFLAGS: -I/usr/local/opt/sqlite/include
      ==> Summary
      🍺  /usr/local/Cellar/sqlite/3.8.10.1: 9 files, 2.8M
    
    

svn

$ brew install svn
==> Installing subversion
==> Downloading https://homebrew.bintray.com/bottles/subversion-1.8.13.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring subversion-1.8.13.yosemite.bottle.tar.gz
==> Caveats
svntools have been installed to:
  /usr/local/opt/subversion/libexec

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/subversion/1.8.13: 116 files, 9.4M
$

(Ubuntu) Linux

There are only some of the command-line utilities which are not usually already installed:

sudo apt-get install indent
sudo apt-get install gnupg2
sudo apt-get install python-pip
sudo pip install --upgrade pip setuptools

References

  • https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/
blog comments powered by Disqus