This project creates full-stack platform-specific packages for
manifold
!
- 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).
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.
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.
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.
vagrant up centos7-builder
bin/rake build:centos7
vagrant up ubuntu18-builder
bin/rake build:ubuntu18
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
Full help for the Omnibus command line interface can be accessed with the
help
command:
$ bin/omnibus help
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.