2015-12-10 11:22:53 +00:00
|
|
|
###################
|
|
|
|
Installing Solidity
|
|
|
|
###################
|
|
|
|
|
|
|
|
Browser-Solidity
|
|
|
|
================
|
|
|
|
|
|
|
|
If you just want to try Solidity for small contracts, you
|
2016-05-20 10:52:32 +00:00
|
|
|
can try `browser-solidity <https://ethereum.github.io/browser-solidity>`_
|
2015-12-10 11:22:53 +00:00
|
|
|
which does not need any installation. If you want to use it
|
|
|
|
without connection to the Internet, you can also just save the page
|
2016-05-20 10:52:32 +00:00
|
|
|
locally or clone http://github.com/ethereum/browser-solidity.
|
2015-12-10 11:22:53 +00:00
|
|
|
|
2016-05-19 17:27:57 +00:00
|
|
|
npm / Node.js
|
2015-12-10 11:22:53 +00:00
|
|
|
=============
|
|
|
|
|
|
|
|
This is probably the most portable and most convenient way to install Solidity locally.
|
|
|
|
|
|
|
|
A platform-independent JavaScript library is provided by compiling the C++ source
|
2016-05-19 17:27:57 +00:00
|
|
|
into JavaScript using Emscripten for browser-solidity and there is also an npm
|
2015-12-10 11:22:53 +00:00
|
|
|
package available.
|
|
|
|
|
|
|
|
To install it, simply use
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
npm install solc
|
|
|
|
|
2016-05-19 17:27:57 +00:00
|
|
|
Details about the usage of the Node.js package can be found in the
|
2016-05-20 10:52:32 +00:00
|
|
|
`solc-js repository <https://github.com/ethereum/solc-js>`_.
|
2015-12-10 11:22:53 +00:00
|
|
|
|
|
|
|
Binary Packages
|
|
|
|
===============
|
|
|
|
|
|
|
|
Binary packages of Solidity together with its IDE Mix are available through
|
|
|
|
the `C++ bundle <https://github.com/ethereum/webthree-umbrella/releases>`_ of
|
|
|
|
Ethereum.
|
|
|
|
|
|
|
|
Building from Source
|
|
|
|
====================
|
|
|
|
|
|
|
|
Building Solidity is quite similar on MacOS X, Ubuntu and probably other Unices.
|
|
|
|
This guide starts explaining how to install the dependencies for each platform
|
|
|
|
and then shows how to build Solidity itself.
|
|
|
|
|
|
|
|
MacOS X
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
|
|
|
Requirements:
|
|
|
|
|
|
|
|
- OS X Yosemite (10.10.5)
|
|
|
|
- Homebrew
|
|
|
|
- Xcode
|
|
|
|
|
|
|
|
Set up Homebrew:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
brew update
|
2016-04-03 01:07:25 +00:00
|
|
|
brew upgrade
|
2016-05-13 14:32:35 +00:00
|
|
|
|
2015-12-10 11:22:53 +00:00
|
|
|
brew install boost --c++11 # this takes a while
|
2016-05-13 14:32:35 +00:00
|
|
|
brew install cmake cryptopp miniupnpc leveldb gmp libmicrohttpd libjson-rpc-cpp
|
2015-12-10 11:22:53 +00:00
|
|
|
# For Mix IDE and Alethzero only
|
|
|
|
brew install xz d-bus
|
2016-03-11 20:40:45 +00:00
|
|
|
brew install homebrew/versions/v8-315
|
2016-05-13 14:32:35 +00:00
|
|
|
brew install llvm --HEAD --with-clang
|
2015-12-10 11:22:53 +00:00
|
|
|
brew install qt5 --with-d-bus # add --verbose if long waits with a stale screen drive you crazy as well
|
|
|
|
|
2016-06-04 19:33:53 +00:00
|
|
|
Ubuntu 16.04
|
|
|
|
------------
|
2015-12-10 11:22:53 +00:00
|
|
|
|
2016-06-04 19:33:53 +00:00
|
|
|
Below are the instructions to install the minimal dependencies required
|
|
|
|
to compile Solidity on Ubuntu 16.04 (Xenial Xerus).
|
2015-12-10 11:22:53 +00:00
|
|
|
|
2016-06-04 19:33:53 +00:00
|
|
|
One of the dependencies (Crypto++ Library, with version >= 5.6.2) can be
|
|
|
|
installed either by adding the Ethereum PPA (Option 1) or by backporting
|
2016-06-04 19:36:10 +00:00
|
|
|
``libcrypto++`` from Ubuntu Development to Ubuntu Xenial (Option 2).
|
2015-12-10 11:22:53 +00:00
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
2016-06-04 19:33:53 +00:00
|
|
|
These dependencies are not enough to compile the GUIs (Alethzero and Mix)
|
2015-12-10 11:22:53 +00:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
2016-06-04 19:33:53 +00:00
|
|
|
sudo apt-get -y install build-essential git cmake libgmp-dev libboost-all-dev \
|
|
|
|
libjsoncpp-dev libleveldb-dev libcurl4-openssl-dev libminiupnpc-dev \
|
|
|
|
libjsonrpccpp-dev libmicrohttpd-dev
|
|
|
|
|
|
|
|
# (Option 1) For those willing to add the Ethereum PPA:
|
2015-12-10 11:22:53 +00:00
|
|
|
sudo add-apt-repository -y ppa:ethereum/ethereum
|
|
|
|
sudo add-apt-repository -y ppa:ethereum/ethereum-dev
|
|
|
|
sudo apt-get -y update
|
|
|
|
sudo apt-get -y upgrade
|
2016-06-04 19:33:53 +00:00
|
|
|
sudo apt-get -y install libcryptopp-dev
|
|
|
|
|
|
|
|
## (Option 2) For those willing to backport libcrypto++:
|
|
|
|
#sudo apt-get -y install ubuntu-dev-tools
|
|
|
|
#sudo pbuilder create
|
|
|
|
#mkdir ubuntu
|
|
|
|
#cd ubuntu
|
|
|
|
#backportpackage --workdir=. --build --dont-sign libcrypto++
|
|
|
|
#sudo dpkg -i buildresult/libcrypto++6_*.deb buildresult/libcrypto++-dev_*.deb
|
|
|
|
#cd ..
|
2015-12-10 11:22:53 +00:00
|
|
|
|
|
|
|
Building
|
|
|
|
--------
|
|
|
|
|
2016-06-04 19:33:53 +00:00
|
|
|
Run this if you plan on installing Solidity only:
|
2015-12-10 11:22:53 +00:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
git clone --recursive https://github.com/ethereum/webthree-umbrella.git
|
|
|
|
cd webthree-umbrella
|
|
|
|
./webthree-helpers/scripts/ethupdate.sh --no-push --simple-pull --project solidity # update Solidity repo
|
2016-06-04 19:33:53 +00:00
|
|
|
./webthree-helpers/scripts/ethbuild.sh --no-git --project solidity --cores 4 -DEVMJIT=0 -DETHASHCL=0 # build Solidity only
|
2015-12-10 11:22:53 +00:00
|
|
|
|
|
|
|
If you opted to install Alethzero and Mix:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
git clone --recursive https://github.com/ethereum/webthree-umbrella.git
|
|
|
|
cd webthree-umbrella && mkdir -p build && cd build
|
|
|
|
cmake ..
|
|
|
|
|
|
|
|
If you want to help developing Solidity,
|
|
|
|
you should fork Solidity and add your personal fork as a second remote:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
cd webthree-umbrella/solidity
|
|
|
|
git remote add personal git@github.com:username/solidity.git
|
|
|
|
|
|
|
|
Note that webthree-umbrella uses submodules, so solidity is its own git
|
2016-05-24 17:57:36 +00:00
|
|
|
repository, but its settings are not stored in ``.git/config``, but in
|
|
|
|
``webthree-umbrella/.git/modules/solidity/config``.
|
2015-12-10 11:22:53 +00:00
|
|
|
|
|
|
|
|