Homebrew Tap for Ethereum
brew tap ethereum/ethereum
brew install ethereum
brew install cpp-ethereum
brew linkapps cpp-ethereum
Note regarding Frontier release: Since Frontier will be CLI only, the default installs do not include GUI binaries in the brew bottles. Add --with-gui
to brew AlethZero / Mix IDE.
geth
eth
(CLI) or open /Applications/AlethZero.app
(if built --with-gui
)
Get the latest development version with the --devel
flag. Use --build-from-source
if you don't want a pre-built bottle. Alternatively you can use the --successful
flag (cpp-ethereum only, see important note below) or any other available options.
brew reinstall cpp-ethereum --devel
For the latest successful build on develop (last successful build from cpt-obvious):
brew reinstall cpp-ethereum --devel --successful
If you get an error looking like this:
==> Cloning https://github.com/ethereum/cpp-ethereum.git
Updating /Library/Caches/Homebrew/ethereum--git
fatal: reference is not a tree: <latest commit hash>
Error: Failed to download resource "ethereum"
Failure while executing: git checkout -q -f
Either try brew fetch cpp-ethereum --devel
or simply delete the cache with rm -rf /Library/Caches/Homebrew/cpp-ethereum--git
brew reinstall ethereum --devel
Go:
--devel
is on develop branch- normal install is on master branch
C++:
--devel
is on develop- normal install is on master branch
brew update && brew upgrade
brew update && brew reinstall ethereum
brew update && brew reinstall cpp-ethereum
List available versions with:
ls -l /usr/local/Cellar/ethereum
ls -l /usr/local/Cellar/cpp-ethereum
If you have other versions installed, you can switch with:
brew switch ethereum <version>
Or follow this StackOverflow answer
These brews can be installed via the raw GitHub URLs, or by cloning this
repository locally with brew tap ethereum/ethereum
. You can also install binary
bottles directly with brew install <bottle_url>
, see cpt-obvious
for previous builds.
##Options
See brew info ethereum
or brew info cpp-ethereum
for all options. --with-...
features are experimental patches.
Option | desc. |
---|---|
--with-gui |
Build with GUI (AlethZero, cpp-ethereum only) |
--with-evmjit |
Build with LLVM and enable EVMJIT |
--successful |
Last successful build using --devel only |
--without-gpu-mining |
Build without GPU mining support (experimental) |
--without-v8-console |
Build without V8 JavaScript console |
--with-debug |
Pass -DCMAKE_BUILD_TYPE=Debug |
--with-vmtrace |
Build with -DVMTRACE=1 |
--with-paranoia |
Build with -DPARANOID=1 |
Note: --with-evmjit
requires LLVM to be installed with brew install llvm --HEAD --with-clang
##Troubleshooting
- Use
--verbose
to get more info while installing. - Make sure to update XCode and the command line tools.
- Run
brew update
andbrew upgrade
- Fix what the
brew doctor
says. - Reinstall dependencies:
brew reinstall boost --c++11 --with-python
- Make changes to
/usr/local/Library/Taps/ethereum/homebrew-ethereum/ethereum.rb
- Reinstall with
brew reinstall ethereum.rb
(send a pull request!) - Take a walk
##Patching
First cd /Library/Caches/Homebrew/ethereum--git/
and make your changes. Then git diff > shiny.patch
, copy/paste the content of your patch under __END__
of ethereum.rb
and replace the def patches
block with:
def patches
DATA
end
If you want to submit your change, save your patch in a gist, add your option 'shiny-option', 'Shiny description'
and the URL to your gist in the patches block and submit a pull request. Make sure to send a pull request to Ethereum also!