This repository contains packaging configurations for Erlang and Elixir runtime environments, specifically tailored for the Carbonio platform. It includes:
- carbonio-erlang: A headless version of Erlang/OTP compiled with SMP support, built-in zlib, ODBC, and SSL support
- carbonio-elixir: Elixir compiled to work with the packaged Erlang runtime
These packages are built for both DEB and RPM-based Linux distributions and are optimized for use within the Carbonio ecosystem.
- Docker or Podman installed
- Make
This project requires third-party dependencies (like carbonio-openssl) at build time.
Set your Artifactory repository in the container. Dependencies will be fetched automatically from the Zextras Artifactory repositories.
For example, targeting Ubuntu Jammy:
echo "machine zextras.jfrog.io" >> auth.conf
echo "login $USERNAME" >> auth.conf
echo "password $SECRET" >> auth.conf
mv auth.conf /etc/apt
echo "deb [trusted=yes] https://zextras.jfrog.io/artifactory/ubuntu-devel jammy main" > zextras.list
mv zextras.list /etc/apt/sources.list.d/First build dependencies from carbonio-thirds, then build this project with the DEPS_DIR option:
make build TARGET=ubuntu-jammy DEPS_DIR=../carbonio-thirds/artifactsNote: Use the same
TARGET(ubuntu-jammy, ubuntu-noble, rocky-8, rocky-9) for both carbonio-thirds and carbonio-erlang.
ubuntu-jammy- Ubuntu 22.04 LTSubuntu-noble- Ubuntu 24.04 LTSrocky-8- Rocky Linux 8rocky-9- Rocky Linux 9
You can customize the build by setting environment variables:
# Use a specific container runtime
make build TARGET=ubuntu-jammy CONTAINER_RUNTIME=docker
# Use a different output directory
make build TARGET=rocky-9 OUTPUT_DIR=./my-packagesThese packages are distributed as part of the Carbonio platform. To install:
apt-get install <package-name>yum install <package-name>After installation, the Erlang runtime and tools are available at /opt/zextras/common/bin/:
# Check Erlang version
/opt/zextras/common/bin/erl -version
# Check Elixir version
/usr/bin/elixir --versionThe EPMD (Erlang Port Mapper Daemon) service is installed and can be managed via systemd:
# Start EPMD service
systemctl start epmd
# Enable EPMD service on boot
systemctl enable epmdSee CONTRIBUTING.md for information on how to contribute to this project.
This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE.md file for details.