Skip to content

ManifoldScholar/manifold-omnibus

Repository files navigation

manifold Omnibus project

This project creates full-stack platform-specific packages for manifold!

Supported Package Platforms

  • Ubuntu 18.04 x86_64
  • Ubuntu 16.04 x86_64
  • CentOS 7.5 x86_64 (other RHEL7 derivatives should work, but have not been tested)
  • macOS (provisional, not intended for production use).

Installation

You must have a sane Ruby 2.0.0+ environment with Bundler installed. Ensure all the required gems are installed:

$ bundle install --binstubs

For building other platforms on macOS, you must also have vagrant installed alongside virtualbox. This will build rpm and deb packages in a virtualized environment.

Usage

Build

You create a platform-specific package using the build project command:

$ bin/omnibus build manifold

The platform/architecture type of the package created will match the platform where the build project command is invoked. For example, running this command on a MacBook Pro will generate a Mac OS X package. After the build completes packages will be available in the pkg/ folder.

Vagrant

To build packages in vagrant, use the following strategies. While provisioning the machines, a warning may display about vagrant failing to connect to the machine while it is waiting for it to boot—this will resolve itself without need to intervene.

The build steps will take a while depending on your host architecture & performance; you may want to grab a drink. Once the build is finished, the compiled packages will appear in the pkg folder on the host.

CentOS 7
vagrant up centos7-builder
bin/rake build:centos7
Ubuntu 18
vagrant up ubuntu18-builder
bin/rake build:ubuntu18

Clean

You can clean up all temporary files generated during the build process with the clean command:

$ bin/omnibus clean manifold

Adding the --purge purge option removes ALL files generated during the build including the project install directory (/opt/manifold) and the package cache directory (/var/cache/omnibus/pkg):

$ bin/omnibus clean manifold --purge

Help

Full help for the Omnibus command line interface can be accessed with the help command:

$ bin/omnibus help

Version Manifest

Git-based software definitions may specify branches as their default_version. In this case, the exact git revision to use will be determined at build-time unless a project override (see below) or external version manifest is used. To generate a version manifest use the omnibus manifest command:

omnibus manifest PROJECT -l warn

This will output a JSON-formatted manifest containing the resolved version of every software definition.