aboutsummaryrefslogtreecommitdiff
path: root/doc/book/cookbook/from_source.md
blob: 84c0d514d6a56752feeb0642516c68580d70f34e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
+++
title = "Compiling Garage from source"
weight = 10
+++


Garage is a standard Rust project.
First, you need `rust` and `cargo`.
For instance on Debian:

```bash
sudo apt-get update
sudo apt-get install -y rustc cargo
```

You can also use [Rustup](https://rustup.rs/) to setup a Rust toolchain easily.

## Using source from `crates.io`

Garage's source code is published on `crates.io`, Rust's official package repository.
This means you can simply ask `cargo` to download and build this source code for you:

```bash
cargo install garage
```

That's all, `garage` should be in `$HOME/.cargo/bin`.

You can add this folder to your `$PATH` or copy the binary somewhere else on your system.
For instance:

```bash
sudo cp $HOME/.cargo/bin/garage /usr/local/bin/garage
```


## Using source from the Gitea repository

The primary location for Garage's source code is the
[Gitea repository](https://git.deuxfleurs.fr/Deuxfleurs/garage).

Clone the repository and build Garage with the following commands:

```bash
git clone https://git.deuxfleurs.fr/Deuxfleurs/garage.git
cd garage
cargo build
```

Be careful, as this will make a debug build of Garage, which will be extremely slow!
To make a release build, invoke `cargo build --release` (this takes much longer).

The binaries built this way are found in `target/{debug,release}/garage`.