Installation

Note

This document describes how to install KIWI NG.

Apart from the preferred method of installing KIWI NG via a distribution package manager, it is also available on pypi and can be installed using Python’s package manager, pip, as follows:

$ sudo pip install kiwi

Installation from OBS

The most up-to-date packages of KIWI NG can be found on the Open Build Service in the Virtualization:Appliances:Builder project.

To install KIWI NG, follow these steps:

  1. Open the URL https://download.opensuse.org/repositories/Virtualization:/Appliances:/Builder in your browser.

  2. Right-click on the link of your preferred operating system and copy the URL. In Firefox, it is the menu Copy link address.

  3. Insert the copied URL from the last step into your shell. The DIST placeholder contains the respective distribution. Use zypper addrepo to add it to the list of your repositories:

    $ sudo zypper addrepo \
          http://download.opensuse.org/repositories/Virtualization:/Appliances:/Builder/<DIST> \
          kiwi-appliance-builder
    
  4. Install KIWI NG:

    $ sudo zypper --gpg-auto-import-keys install python3-kiwi
    

Note

Other Distributions

If your distribution is not using zypper, please use your package manager’s appropriate command instead. For dnf, as an example, that is:

$ sudo dnf config-manager \
      --add-repo https://download.opensuse.org/repositories/Virtualization:/Appliances:/Builder/<DIST>/Virtualization:Appliances:Builder.repo

$ sudo dnf install python3-kiwi

Installation from Distribution Repositories

Some Linux distributions ship KIWI NG in their official repositories. These include openSUSE and Fedora since version 28. Note that these packages tend not to be as up-to-date as the packages from OBS, so some features described here might not exist yet.

Note

There are many packages that contain the name kiwi in their name; some of these are not even Python packages. Please double-check the package’s description to see whether it is actually the KIWI NG Appliance builder before installing it. Please also note that, depending on how the responsible packager has integrated KIWI NG into the distribution, the install name can be different from the instructions provided in: Installation from OBS.

To install KIWI NG for the desired distribution, run the following command:

Leap/Tumbleweed:
$ sudo zypper install python3-kiwi
Fedora/Rawhide:
$ sudo dnf install kiwi-cli

Installation for SUSE Linux Enterprise

KIWI NG is available and supported for SUSE Linux Enterprise (SLE). The recommended and supported way is to install KIWI NG by using zypper.

However, if you rely on some plugins for KIWI NG, either the plugin itself or any dependencies might not be available for your service pack.

If you want to proceed anyway, keep these things in mind:

  • Plugins that are not provided by SLE are not supported.

  • You will probably need to install dependencies via pip. The pip command installs these dependencies from PyPI (the Python Package Index). However, this approach will not update the RPM database.

  • Depending on your security concerns, installing Python packages outside the secured SLE installation may not be desirable.

  • Python packages installed from PyPI won’t contain any SUSE customizations.

  • Depending on your extension and its dependencies, you might even need a more recent Python version.

Example Appliance Descriptions

There are two places for example appliance descriptions:

The KIWI NG build tests:

The KIWI NG project itself hosts a collection of appliance descriptions that are used for integration testing of the KIWI NG builder itself. These descriptions are required to build prior to any KIWI NG release and are also used as the base for this documentation. Please check them out when working with this reference guide:

$ git clone https://github.com/OSInside/kiwi

$ tree -L 3 kiwi/build-tests
The KIWI NG community descriptions project:

There is a GitHub project hosting example appliance descriptions to be used with the next-generation KIWI NG. Contributions from the community make up the contents of this repository, and users who need an example for a specific use case and distribution can clone the project as follows:

$ git clone https://github.com/OSInside/kiwi-descriptions