criu/INSTALL.md
Adrian Reber 2cd9d5ded8 docs: update INSTALL.md with a section about building CRIU
The building section also contains the information how to change the
network locking backend without source code changes.

Signed-off-by: Adrian Reber <areber@redhat.com>
2025-03-21 12:40:31 -07:00

1.9 KiB

Building CRIU from source code

First, you need to install compile-time dependencies. Check Installation dependencies for more info.

To compile CRIU, run:

make

This should create the ./criu/criu executable.

To change the default behaviour of CRIU, the following variables can be passed to the make command:

  • NETWORK_LOCK_DEFAULT, can be set to one of the following values: NETWORK_LOCK_IPTABLES, NETWORK_LOCK_NFTABLES, NETWORK_LOCK_SKIP. CRIU defaults to NETWORK_LOCK_IPTABLES if nothing is specified. If another network locking backend is needed, make can be called like this: make NETWORK_LOCK_DEFAULT=NETWORK_LOCK_NFTABLES

Installing CRIU from source code

Once CRIU is built one can easily setup the complete CRIU package (which includes executable itself, CRIT tool, libraries, manual and etc) simply typing

make install

this command accepts the following variables:

  • DESTDIR, to specify global root where all components will be placed under (empty by default);
  • PREFIX, to specify additional prefix for path of every component installed (/usr/local by default);
  • BINDIR, to specify where to put CRIT tool ($(PREFIX)/bin by default);
  • SBINDIR, to specify where to put CRIU executable ($(PREFIX)/sbin by default);
  • MANDIR, to specify directory for manual pages ($(PREFIX)/share/man by default);
  • LIBDIR, to specify directory where to put libraries (guess the correct path by default).

Thus one can type

make DESTDIR=/some/new/place install

and get everything installed under /some/new/place.

Uninstalling CRIU

To clean up previously installed CRIU instance one can type

make uninstall

and everything should be removed. Note though that if some variable (DESTDIR, BINDIR and such) has been used during installation procedure, the same must be passed with uninstall action.