mirror of
https://github.com/KumoCorp/kumomta.git
synced 2026-08-20 08:01:10 +00:00
87 lines
2.5 KiB
Markdown
87 lines
2.5 KiB
Markdown
# Installing KumoMTA for Development
|
|
|
|
## Prepare your environment
|
|
|
|
Read the [Environmental considerations](https://github.com/kumomta/kumomta/blob/main/docs/tutorial/environment_consideration.md) before proceeding. You will need a suitably sized server with all of the prerequisites in order to be successful.
|
|
|
|
## Step by Step
|
|
|
|
The commands below assume you have already followed the steps in [System Preparation](./system_preparation.md) and will install as a local user.
|
|
You can either just execute the installer script (kumoinstall.sh), or follow the steps below manually (same thing).
|
|
|
|
At a minimum, you will need to install some dev tools and other glue before starting.
|
|
And you should make sure you have all the latest patches first too.
|
|
|
|
### In Rocky, CentOS, Alma, and (likely) any other dnf supporting OS
|
|
|
|
```bash
|
|
sudo dnf clean all
|
|
sudo dnf update -y
|
|
sudo dnf group install -y "Development Tools"
|
|
sudo dnf install -y libxml2 libxml2-devel clang telnet git
|
|
|
|
```
|
|
|
|
### In Ubuntu
|
|
|
|
```bash
|
|
sudo apt-get -y update
|
|
sudo apt-get -y upgrade
|
|
sudo apt-get install -y build-essential
|
|
sudo apt-get install -y cmake make gcc clang llvm telnet git apt-utils
|
|
```
|
|
|
|
### In OpenSuse (Note that SLES does not appear to have an available clang package)
|
|
|
|
```bash
|
|
sudo zypper refresh
|
|
sudo zypper update -y
|
|
sudo zypper install -y cmake make gcc clang llvm telnet git gcc-c++
|
|
|
|
```
|
|
|
|
## Install Rust
|
|
|
|
If you are using a priviledged user, drop back to your non-priviledged user first.
|
|
|
|
```bash
|
|
cd
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
|
source ~/.profile
|
|
source ~/.cargo/env
|
|
rustc -V
|
|
|
|
```
|
|
|
|
## Get the repo and build it
|
|
|
|
```git clone https://github.com/kumomta/kumomta.git```
|
|
|
|
```
|
|
cd kumomta
|
|
KUMOD_LOG=kumod=trace cargo run -p kumod -- --policy simple_policy.lua
|
|
|
|
```
|
|
|
|
In the above you are telling Cargo to run the Rust compiler to build an optimized release version and package it as kumod, then execute kumod using the policy file called simple_policy.lua.
|
|
|
|
|
|
You can add debugging output by adding `KUMOD_LOG=kumod=trace` in the environment when you start kumod.
|
|
|
|
|
|
## Run as root after the build
|
|
|
|
Once you have built the package you can run as root separately like this:
|
|
|
|
```bash
|
|
sudo ~/kumomta/target/release/kumod --policy simple_policy.lua
|
|
```
|
|
|
|
## Getting the latest
|
|
|
|
If you want to always be runniung the latest version, start in the instal directory ( IE: ~/kumomta/ ) then pull and build the latest.
|
|
|
|
`git pull`
|
|
|
|
Then `KUMOD_LOG=kumod=trace cargo run -p kumod -- --policy simple_policy.lua`
|