LINUXEVERYDAY
Solution to everyday Linux problems
HOME
Containerization
LXC & LXD
Database
MongoDB
Editors & IDEs
Visual Studio Code
Linux
CentOS
Ubuntu
Debian
Programming
Node.js
TypeScript
Others
Virtualization
Proxmox VE
VirtualBox
VMware
Install LXC Latest Stable from Source on Debian 9 Stretch
Shahriar Shovon
LXC & LXD
lxc
lxd
containerization
debian
install from source
{"ops":[{"insert":"In this article, I will show you how to install/compile LXC from the source on Debian 9 Stretch. These are the steps I took to install it successfully on my system. Take a look at "},{"attributes":{"link":"https://linuxcontainers.org"},"insert":"LXC Official Website"},{"insert":" to learn more.\n"},{"insert":{"video":"https://www.youtube.com/embed/-wWKNyagbNs?showinfo=0"}},{"insert":"\n\n\n"},{"attributes":{"bold":true},"insert":"Clone the Source from Github:"},{"attributes":{"header":1},"insert":"\n"},{"insert":"First, I am going to clone the stable LXC 2.0 branch from "},{"attributes":{"link":"https://github.com/lxc/lxc"},"insert":"LXC GitHub repository"},{"insert":".\n$ sudo apt-get update"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"$ sudo apt-get install git -y"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"$ git clone https://github.com/lxc/lxc.git -b stable-2.0"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"$ cd lxc/"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"\n\n\n"},{"attributes":{"bold":true},"insert":"Install Required Packages:"},{"attributes":{"header":1},"insert":"\n"},{"insert":"To install the required dependencies for LXC, run the following command:\n$ sudo apt-get install autoconf automake pkg-config build-essential make gcc libtool debootstrap liblxc1 libapparmor-dev libcgmanager-dev libpython3-dev python3-dev libcap-dev bridge-utils rsync -y"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"\n\n\n"},{"attributes":{"bold":true},"insert":"Generate Configuration File:"},{"attributes":{"header":1},"insert":"\n"},{"insert":"Now, I have to generate the "},{"attributes":{"bold":true},"insert":"makefile "},{"insert":"configuration program for LXC. \nTo do that, from the "},{"attributes":{"bold":true},"insert":"lxc/ "},{"insert":"directory, run the following command:\n$ ./autogen.sh"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"\n\n\n"},{"attributes":{"bold":true},"insert":"Installing LXC 2.0.x:"},{"attributes":{"header":1},"insert":"\n"},{"insert":"Now I have to run the "},{"attributes":{"bold":true},"insert":"configure"},{"insert":" executable to configure "},{"attributes":{"bold":true},"insert":"Make"},{"insert":".\n$ export CC=\"gcc -Wno-maybe-uninitialized\""},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"$ ./configure \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --prefix=/usr \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --libdir=/usr/lib/x86_64-linux-gnu \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --libexecdir=/usr/lib/x86_64-linux-gnu \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --with-rootfs-path=/usr/lib/x86_64-linux-gnu/lxc \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --sysconfdir=/etc \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --localstatedir=/var \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --with-config-path=/var/lib/lxc \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --enable-python \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --disable-doc \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --disable-rpath \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --enable-apparmor \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --disable-selinux \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --disable-lua \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --disable-tests \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --enable-cgmanager \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --enable-capabilities \\"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" --with-distro=debian"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"\n\n\n"},{"attributes":{"bold":true},"insert":"Build and Install LXC:"},{"attributes":{"header":1},"insert":"\n"},{"insert":"Now run the following command to compile and install LXC.\n$ make && sudo make install "},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"\n\n\n"},{"attributes":{"bold":true},"insert":"Testing installation:"},{"attributes":{"header":1},"insert":"\n"},{"insert":"To test if everything is working, I am going to create an LXC container with the following command:\n$ sudo lxc-create -t debian -n debtest -- -r stretch"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"\nThen start the container:\n$ sudo lxc-start -n debtest"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"\nLog into the console:\n$ sudo lxc-attach -n debtest"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"\nThat's it. \n\n\n\n"},{"attributes":{"bold":true},"insert":"References:"},{"attributes":{"header":1},"insert":"\n"},{"insert":"[1] "},{"attributes":{"link":"https://www.claudiokuenzler.com/blog/517/install-lxc-from-source-ubuntu-14.04-trusty#.WaxgyNBvGUk"},"insert":"Install LXC from source on Ubuntu 14.04 Trusty"},{"insert":"\n[2] "},{"attributes":{"link":"https://stackoverflow.com/questions/30241499/debian-lxc-create-error"},"insert":"linux - debian lxc create error - Stack Overflow"},{"insert":"\n"}]}