goldfrapp04
goldfrapp04

Reputation: 2355

Bison latest version installed but not in use

$ brew install bison
Warning: bison-3.0.2 already installed
$ bison -V
bison (GNU Bison) 2.3

How can I change the Bison version in use to 3.0.2? I'm on OS X 10.9.4. I've restarted my terminal after $brew install bison.

UPDATE

I'm really not sure if this is a problem of HomeBrew or Bison. I reinstalled Bison with MacPorts:

$port install bison
......
$bison -V
bison (GNU Bison) 2.7.12-4996

MacPorts did not install the latest version of Bison, but it did change the Bison version in use to the one it installed.

UPDATE ON $PATH

$echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/Users/my_user_name/.rbenv/shims:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/munki:/usr/local/mysql/bin:/Users/my_user_name/code/bin:/Users/my_user_name/code/bin/git:/Users/my_user_name/code/bin/old_git:/Users/my_user_name/code/bin:/Users/my_user_name/code/bin/git:/Users/my_user_name/code/bin/old_git:/Users/my_user_name/.rvm/bin

Upvotes: 16

Views: 23764

Answers (4)

jayzhou215
jayzhou215

Reputation: 111

thanks for Andrew's answer. Just a little improvement, do not need --force

brew link bison
Warning: bison is keg-only and must be linked with --force
Note that doing so can interfere with building software.
If you need to have this software first in your PATH instead consider 
running:
   echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.zshrc

I use the suggested echo patch to zshrc, after

source ~/.zshrc

the bison was the newest version(use brew install bison version).

Upvotes: 4

Prakhar Agarwal
Prakhar Agarwal

Reputation: 2852

$ brew unlink bison
Unlinking /usr/local/Cellar/bison/3.4... 0 symlinks removed

$ brew install bison

$ brew link bison --force
Linking /usr/local/Cellar/bison/3.4... 9 symlinks created

$ echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.bash_profile

$ export LDFLAGS="-L/usr/local/opt/bison/lib"

$ source ~/.bash_profile
$ bison -V
bison (GNU Bison) 3.4

Upvotes: 6

Andrew
Andrew

Reputation: 1088

I just ran into the same issue - in my case brew wasn't creating the symlinks. You can force this in order to get the right version via:

$ brew unlink bison
Unlinking /usr/local/Cellar/bison/3.0.4... 0 symlinks removed

$ brew link bison
Warning: bison is keg-only and must be linked with --force
Note that doing so can interfere with building software.

$ brew link bison --force
Linking /usr/local/Cellar/bison/3.0.4... 9 symlinks created

$ source ~/.bash_profile
$ bison -V
bison (GNU Bison) 3.0.4

Upvotes: 53

rje
rje

Reputation: 6438

You have /opt/local/bin in your path before /usr/local/bin. Homebrew installs in /usr/local/bin by default so maybe you have another version in /opt/local/bin that gets found first.

Upvotes: 9

Related Questions