2021-12-05 17:07:29 +00:00
|
|
|
# Build From Source
|
|
|
|
|
2021-12-08 15:36:49 +00:00
|
|
|
## Install Go SDK
|
|
|
|
|
2021-12-06 15:29:46 +00:00
|
|
|
Go to the Go official website to download the Go SDK <https://go.dev/dl/>.
|
|
|
|
|
2021-12-07 11:07:44 +00:00
|
|
|
An example installation looks like this:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
wget https://go.dev/dl/go1.17.4.linux-amd64.tar.gz
|
|
|
|
sudo rm -rf /usr/local/go
|
|
|
|
sudo tar -C /usr/local -xzf go1.17.4.linux-amd64.tar.gz
|
|
|
|
```
|
|
|
|
|
|
|
|
Then edit your ~/.profile or ~/.bashrc to have this line at the end:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
export PATH=$PATH:/usr/local/go/bin
|
|
|
|
```
|
|
|
|
|
|
|
|
For the changes to be taken into action, you need to log in again, or run:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
source $HOME/.profile
|
|
|
|
```
|
2021-12-06 15:29:46 +00:00
|
|
|
|
|
|
|
Make sure your `go` is successfully installed:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
go version
|
|
|
|
```
|
|
|
|
|
2021-12-08 15:36:49 +00:00
|
|
|
## Install go-sqlite
|
|
|
|
|
2021-12-05 17:07:29 +00:00
|
|
|
If you need to use go-sqlite, you will need to enable CGO first:
|
|
|
|
|
|
|
|
```
|
|
|
|
CGO_ENABLED=1 go get github.com/mattn/go-sqlite3
|
|
|
|
```
|
|
|
|
|
2021-12-08 15:36:49 +00:00
|
|
|
## Install
|
|
|
|
|
|
|
|
### Install bbgo via go install
|
|
|
|
|
2021-12-06 15:29:46 +00:00
|
|
|
Install bbgo:
|
2021-12-05 17:07:29 +00:00
|
|
|
|
|
|
|
```sh
|
2021-12-07 11:26:17 +00:00
|
|
|
go install -x github.com/c9s/bbgo/cmd/bbgo@main
|
2021-12-06 15:29:46 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Your binary will be installed into the default GOPATH `~/go/bin`.
|
|
|
|
You can add the bin path to your PATH env var by adding the following code to your `~/.zshrc` or `~/.bashrc`:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
export PATH=~/go/bin:$PATH
|
|
|
|
```
|
|
|
|
|
|
|
|
And then, check the version, it should be `1.x-dev`:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
bbgo version
|
|
|
|
```
|
|
|
|
|
|
|
|
If not, try running `ls -lh ~/go/bin/bbgo` to see if the binary is installed.
|
|
|
|
If it's already there, it means your PATH is misconfigured.
|
|
|
|
|
|
|
|
If you prefer other place for installing the go related binaries, you can set GOPATH to somewhere else, e.g.
|
|
|
|
|
|
|
|
```shell
|
|
|
|
export GOPATH=~/mygo
|
|
|
|
```
|
|
|
|
|
|
|
|
Then your bbgo will be installed at `~/mygo/bin/bbgo`.
|
|
|
|
|
2021-12-08 15:36:49 +00:00
|
|
|
### Install via git clone
|
|
|
|
|
|
|
|
```shell
|
|
|
|
mkdir -p ~/go/src/github.com/c9s
|
|
|
|
git clone git@github.com:c9s/bbgo.git ~/go/src/github.com/c9s/bbgo
|
|
|
|
cd ~/go/src/github.com/c9s/bbgo
|
|
|
|
go mod download
|
|
|
|
```
|
|
|
|
|
|
|
|
And then you should be able to run bbgo with `go run`
|
|
|
|
|
|
|
|
```shell
|
|
|
|
go run ./cmd/bbgo run
|
|
|
|
```
|
|
|
|
|
|
|
|
You can also use the makefile to build bbgo:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
cd frontend && yarn install
|
|
|
|
make bbgo
|
|
|
|
```
|
|
|
|
|
|
|
|
If you don't need the web interface, you can build the slim version of bbgo:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
make bbgo-slim
|
|
|
|
```
|
|
|
|
|
2021-12-06 15:33:35 +00:00
|
|
|
## Build inside a Alpine container
|
2021-12-06 15:29:46 +00:00
|
|
|
|
|
|
|
Starts a docker container with the alpine image:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
docker run -it --rm alpine
|
|
|
|
```
|
|
|
|
|
|
|
|
Run the following command to install the dependencies:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
apk add git go gcc libc-dev sqlite
|
|
|
|
export CGO_ENABLED=1
|
|
|
|
go get github.com/mattn/go-sqlite3
|
|
|
|
go install github.com/c9s/bbgo/cmd/bbgo@latest
|
|
|
|
```
|
|
|
|
|
|
|
|
Your installed bbgo binary will be located in:
|
|
|
|
|
|
|
|
```
|
|
|
|
/root/go/bin/bbgo version
|
2021-12-06 15:33:35 +00:00
|
|
|
```
|
|
|
|
|
2021-12-07 11:26:17 +00:00
|
|
|
You can use the above instruction to write your own Dockerfile.
|