Skip to content
Reto Gantenbein edited this page Dec 28, 2023 · 20 revisions

Installation Guide

These instructions describe how the LXC/LXD packages built in the ganto/lxc4 COPR project from the spec files hosted in this repository can be used to run LXC or LXD on a Fedora Linux host.

IMPORTANT

These packages are not official Fedora packages and they are only minimally functionally tested. Use them at your own risk and don't forget to create a backup before you perform an update. If you find an issue with the packages, please open a Github issue in this repository. However I won't provide any general LXC/LXD support. For this please check https://discuss.linuxcontainers.org/

Prerequisites

Currently the packages are available for Fedora 32/33/34/Rawhide and the x86_64, aarch64 and armhfp architecture.

Enable the COPR repository:

# dnf copr enable ganto/lxc4

LXC

Install LXC including liblxc and the lxc-* command line utilities:

# dnf install lxc

If you already have LXC installed from the Fedora repository run:

# dnf update lxc

IMPORTANT

This will replace the official lxc packages in case you had previously installed them from the Fedora repositories. However, the release numbers of the COPR packages are chosen in way, that the official lxc packages should replace the COPR packages again once the same (or newer) version is provided by Fedora.

Incus

Incus is a community fork of LXD that was created after LXD has been moved to the Canonical umbrella. Install it via:

# dnf install incus

NOTE

This is a first pre-release of Incus. It's not considered stable yet and some things might still be broken.

If you don't want to install all the dependencies for virtual machine support disable the weak dependencies:

# dnf --setopt=install_weak_deps=False install incus

If you later want to install support for virtual machines run:

# dnf install incus-agent

LXD

Install the LXD daemon and the lxc command line client:

# dnf install lxd

This is enough to run the traditional Linux containers. However LXD is also able to manage virtual machines (as an alternative to libvirt). For this additional packages are needed (see below).

Virtual Machine Support

If you want to run virtual machines with LXD additional packages are required:

# dnf install lxd-agent edk2-ovmf genisoimage qemu-img qemu-system-x86-core qemu-char-spice qemu-device-usb-redirect qemu-device-display-virtio-vga qemu-device-display-virtio-gpu

IMPORTANT

If you installed the lxd-agent package on a VM that itself is managed through LXD then you need to re-enable the systemd service lxd-agent.service otherwise you won't be able to access the VM after a reboot via lxc shell anymore:

systemctl enable lxd-agent.service

Getting started

For more details please check the upstream documentation:

Clone this wiki locally