958bc870b3
* GCC_VERSION=10.2.0 * BINUTILS_VERSION=2.35.1 * GDB_VERSION=10.1 (except centos-7 8.3) * CMAKE_VERSION=3.18.4 * CPPCHECK_VERSION=2.2 * LLVM_VERSION=11.0.0 * SWIG_VERSION=4.0.2
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).
|