45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
|
# Memgraph Build and Run Environments
|
||
|
|
||
|
## Toolchain Installation Procedure
|
||
|
|
||
|
1) Download the toolchain for your operating system from one of the following
|
||
|
links (current active toolchain is `toolchain-v2`):
|
||
|
|
||
|
* [CentOS 7](https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/toolchain-v2/toolchain-v2-binaries-centos-7.tar.gz)
|
||
|
* [CentOS 8](https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/toolchain-v2/toolchain-v2-binaries-centos-8.tar.gz)
|
||
|
* [Debian 9](https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/toolchain-v2/toolchain-v2-binaries-debian-9.tar.gz)
|
||
|
* [Debian 10](https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/toolchain-v2/toolchain-v2-binaries-debian-10.tar.gz)
|
||
|
* [Ubuntu 18.04](https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/toolchain-v2/toolchain-v2-binaries-ubuntu-18.04.tar.gz)
|
||
|
* [Ubuntu 20.04](https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/toolchain-v2/toolchain-v2-binaries-ubuntu-20.04.tar.gz)
|
||
|
|
||
|
2) Extract the toolchain with the following command:
|
||
|
|
||
|
```bash
|
||
|
tar xzvf {{toolchain-archive}}.tar.gz -C /opt
|
||
|
```
|
||
|
|
||
|
3) Check and install required toolchain runtime dependencies by executing
|
||
|
(e.g., on **Debian 10**):
|
||
|
|
||
|
```bash
|
||
|
./environment/os/debian-10.sh check TOOLCHAIN_RUN_DEPS
|
||
|
./environment/os/debian-10.sh install TOOLCHAIN_RUN_DEPS
|
||
|
```
|
||
|
|
||
|
4) Activate the toolchain:
|
||
|
|
||
|
```bash
|
||
|
source /opt/toolchain-v2/activate
|
||
|
```
|
||
|
|
||
|
## Toolchain Upgrade Procedure
|
||
|
|
||
|
1) Build a new toolchain for each supported OS (latest versions).
|
||
|
2) If the new toolchain doesn't compile on some supported OS, the last
|
||
|
compilable toolchain has to be used instead. In other words, the project has
|
||
|
to compile on the oldest active toolchain as well. Suppose some
|
||
|
changes/improvements were added when migrating to the latest toolchain; in
|
||
|
that case, the maintainer has to ensure that the project still compiles on
|
||
|
previous toolchains (everything from `init` script to the actual code has to
|
||
|
work on all supported operating systems).
|