This page covers common configuration steps for Omnibus.
Status Note: The latest release of Omnibus (v3.2.0) is from July 2014. Configuration options may be outdated.
Main Omnibus configuration file, typically in omnibus/config/:
# Path to project root
project_root File.expand_path(File.join(File.dirname(__FILE__), '..'), __FILE__)
# Build directory
build_dir File.join(project_root, 'omnibus', 'build')
# Package output directory
package_dir File.join(project_root, 'omnibus', 'pkg')
# Cache directory for downloaded sources
cache_dir File.join(project_root, 'omnibus', 'cache')
# Git reference for versioning
git_ref Omnibus::GitCalculator.new(project_root)
# Install directory inside package
install_dir "/opt/myapp"
# Top-level package name
package_name 'myapp'
# Package maintainer
package_maintainer 'maintainer@example.com'
# Iteration (package release number)
package_iteration '1'
# Signing settings
sign_passphrase ENV['OMNIBUS_SIGN_PASSPHRASE']
sign_with :key do
ENV['OMNIBUS_SIGN_KEY']
end
Create software definitions in omnibus/software/:
name "myapp"
default_version "1.0.0"
source url: "https://github.com/myorg/myapp/archive/v#{version}.tar.gz",
sha256: "abc123..."
dependency "zlib"
dependency "openssl"
build do
command "./configure --prefix=#{install_dir}"
command "make -j #{workers}"
command "make install"
end
Project-level configuration:
name "myapp"
maintainer "My Company <maintainer@example.com>"
homepage "https://example.com/myapp"
install_dir "/opt/myapp"
build_version Omnibus::GitCalculator.new(project_root).calc(project_root)
build_iteration "1"
# Creates required layout
requires_relative 'config/software/myapp.rb'
# Platform-specific settings
override :ruby, version: "3.0"
override :zlib, version: "1.2.11"
# Git-based versioning
build_version Omnibus::GitCalculator.new(project_root).calc(project_root)
# Static version
build_version "1.0.0"
# From file
build_version File.read(File.join(project_root, 'VERSION')).strip
# Override software versions by platform
override :openssl, version: "1.1.1k"
override :libffi, version: "3.3"
# Platform-specific overrides
if windows?
override :something, version: "windows-specific"
end
# DEB-specific settings
deb_build_depends "libc6 (>= 2.31)"
deb_priority "optional"
# RPM-specific settings
rpm_build_depends "glibc >= 2.31"
rpm_priority "optional"
Rebuild packages after updating configuration:
# From project root
cd my-project
# Build the package
omnibus build myapp
# Or with specific options
omnibus build myapp \
--override platform=ubuntu-22.04 \
--override arch=x86_64
# Check build output
ls -la omnibus/pkg/
# Verify package contents
dpkg-deb --info omnibus/pkg/myapp*.deb
# or
rpm -qip omnibus/pkg/myapp*.rpm
# Test installation
sudo dpkg -i omnibus/pkg/myapp*.deb
/opt/myapp/bin/myapp --version
Every deployment is unique. We provide consulting for:
Get personalized assistance: office@linux-server-admin.com | Contact Page