Core OmniOS consists of several parts:
- illumos-omnios - Our fork of illumos-gate.
- omnios-build - OmniOS userland packages.
- pkg5 - IPS packaging system.
- kayak - OmniOS installer.
- g11n - Globalisation components (locales, iconv, etc.)
How to build
Each version of OmniOS can only be built on the same version so if you want
to build bloody, you need a machine running up-to-date bloody and the same
for a stable branch such as r151022 - you will need a machine running that
version. A KVM instance works well - just be sure to use the
for the hard disk.
First, create a GitHub account if you don’t have one already and then use the web interface to fork the five repositories listed above.
Once that’s done you can add the
extra.omnios publisher and install
The example below is for bloody - if you’re building a stable version then
just replace /bloody/ in the publisher URL.
# pkg set-publisher -g https://pkg.omniosce.org/bloody/extra extra.omnios # pkg install developer/omni
Next, run the setup tool, providing your github username as an argument as well as a path to a build area. It’s common to create a new ZFS filesystem for this as shown below.
# zfs create -o mountpoint=/build rpool/build % /opt/ooce/bin/omni setup /build <github username>
Note: It is also possible to build OmniOS in a non-global zone. Instructions for setting up a suitable zone can be found in the notes for omni
Once setup is complete, update the repositories using the
and build the illumos and omnios components in turn.
% /opt/ooce/bin/omni update_illumos % /opt/ooce/bin/omni update_omnios % /opt/ooce/bin/omni build_illumos % /opt/ooce/bin/omni build_omnios
You can also use
build_worldto update and build everything at once.