criu/INSTALL.md
Kir Kolyshkin 5502b5b568 Makefile.install: cure LIBDIR guessing logic
Commit 6a51c7e ("make: Allow to install in custom dirs") replaced
all := assignments with ?=, effectively disabling the LIBDIR guessing
logic (as once a variable is assigned, further ?= make no sense).

That commit description says that setting PREFIX from make command line
didn't work. I can't find the original bug report but according to
GNU make documentation (see [1], [2]) as well as to my best knowledge,
any variable set in Makefile can be overridden from the command line,
unless "override VAR = value" is used in the Makefile.

The result of this patch is LIBDIR is correctly set for distros such as
Fedora and Debian, so "make install" works more correct. Surely, any
variable can still be overriden from the command line.

I have also checked the build of Fedora package from criu.spec with this
change -- it works fine.

Now, I am not sure why it was not working for the original bug reporter.
The only hypothesis I have is he tried to do something like

	PREFIX=/usr make

instead of

	make PREFIX=/usr

If this was the case, it was not a bug but wrong usage.

While at it, fix LIBDIR description in INSTALL.md.

[1] https://www.gnu.org/software/make/manual/html_node/Overriding.html
[2] https://www.gnu.org/software/make/manual/html_node/Override-Directive.html

travis-ci: success for Makefile.install fixes
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2017-02-06 13:48:49 +03:00

1.3 KiB

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);
  • SYSTEMDUNITDIR, to specify place where systemd units are living ($(PREFIX)/lib/systemd/system 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.