tendermint/docs/guides/install-from-source.md

101 lines
2.7 KiB
Markdown

# Install from Source
This page provides instructions on installing Tendermint from source.
To download pre-built binaries, see the [Download page](/download).
## Install Go
Make sure you have [installed Go](https://golang.org/doc/install) and set the `GOPATH`.
## Install Tendermint
You should be able to install the latest with a simple
```
go get github.com/tendermint/tendermint/cmd/tendermint
```
Run `tendermint --help` for more.
If the installation failed, a dependency may been updated and become incompatible with the latest Tendermint master branch.
We solve this using the `glide` tool for dependency management.
Fist, install `glide`:
```
go get github.com/Masterminds/glide
```
Now we can fetch the correct versions of each dependency by running:
```
cd $GOPATH/src/github.com/tendermint/tendermint
glide install
go install ./cmd/tendermint
```
Note that even though `go get` originally failed,
the repository was still cloned to the correct location in the `$GOPATH`.
The latest Tendermint Core version is now installed.
### Reinstall
If you already have Tendermint installed, and you make updates,
simply
```
cd $GOPATH/src/github.com/tendermint/tendermint
go install ./cmd/tendermint
```
To upgrade, there are a few options:
- set a new `$GOPATH` and run `go get github.com/tendermint/tendermint/cmd/tendermint`. This makes a fresh copy of everything for the new version.
- run `go get -u github.com/tendermint/tendermint/cmd/tendermint`, where the `-u` fetches the latest updates for the repository and its dependencies
- fetch and checkout the latest master branch in `$GOPATH/src/github.com/tendermint/tendermint`, and then run `glide install && go install ./cmd/tendermint` as above.
Note the first two options should usually work, but may fail.
If they do, use `glide`, as above:
```
cd $GOPATH/src/github.com/tendermint/tendermint
glide install
go install ./cmd/tendermint
```
Since the third option just uses `glide` right away, it should always work.
### Troubleshooting
If `go get` failing bothers you, fetch the code using `git`:
```
mkdir -p $GOPATH/src/github.com/tendermint
git clone https://github.com/tendermint/tendermint $GOPATH/src/github.com/tendermint/tendermint
cd $GOPATH/src/github.com/tendermint/tendermint
glide install
go install ./cmd/tendermint
```
### Run
To start a one-node blockchain with a simple in-process application:
```
tendermint init
tendermint node --proxy_app=dummy
```
See the
[App Development](/docs/guides/app-development)
guide for more details on building applications,
and the
[Using Tendermint](/docs/guides/using-tendermint)
guide for more details about using the `tendermint` program.
## Next Step
Learn how to [create your first ABCI app](/docs/getting-started/first-abci-app).