The following steps explain how to compile and install LXC from source on an Ubuntu 18.04 LTS where the same directory paths (as known from the installation through the package) are used. These steps are based on pretty much the same steps for Ubuntu 14.04.
The source code of the LXC project is located on Github. Therefore the whole Git repository can be cloned or downloaded in zip format.
Install the packages needed to download, if you haven't installed these already:
ckadm@ubuntu:~$ sudo apt-get install git wget curl
To clone (= download) the Git repository use the git command:
ckadm@ubuntu:~$ git clone https://github.com/Napsty/lxc.git
Or use a zip file download of the current state of the repository:
ckadm@ubuntu:~$ wget https://github.com/lxc/lxc/archive.master.zip; unzip master.zip
Change into the cloned or unzipped repository:
ckadm@ubuntu:~$ if [ -d lxc ]; then cd lxc; elif [ -d lxc-master]; then cd lxc-master; fi
Before the source code can be compiled, a few packages need to be installed first:
ckadm@ubuntu:~$ sudo apt-get install build-essential automake autoconf pkg-config docbook2x libapparmor-dev libselinux1-dev libpython3-dev python3-dev libcap-dev libtool
Now everything should be ready. To create the configure command, autogen needs to be launched first:
ckadm@ubuntu:~/lxc$ ./autogen.sh
The configure command was adjusted to use the exact same paths as the LXC package from the Ubuntu repositories would use:
ckadm@ubuntu:~/lxc$ ./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --libexecdir=/usr/lib/x86_64-linux-gnu --with-rootfs-path=/usr/lib/x86_64-linux-gnu/lxc --sysconfdir=/etc --localstatedir=/var --with-config-path=/var/lib/lxc --enable-python --enable-doc --disable-rpath --enable-apparmor --enable-selinux --disable-lua --enable-tests --enable-cgmanager --enable-capabilities --with-distro=ubuntu
make will compile the source code and create the binaries:
ckadm@ubuntu:~/lxc$ make
And make install will place the binaries into the right places (= paths):
ckadm@ubuntu:~/lxc$ sudo make install
Important note: You still need to do other preparations (e.g. create a virtual bridge) before you can launch your containers.
No comments yet.
AWS Android Ansible Apache Apple Atlassian BSD Backup Bash Bluecoat CMS Chef Cloud Coding Consul Containers CouchDB DB DNS Database Databases Docker ELK Elasticsearch Filebeat FreeBSD Galera Git GlusterFS Grafana Graphics HAProxy HTML Hacks Hardware Icinga Influx Internet Java KVM Kibana Kodi Kubernetes LVM LXC Linux Logstash Mac Macintosh Mail MariaDB Minio MongoDB Monitoring Multimedia MySQL NFS Nagios Network Nginx OSSEC OTRS Office OpenSearch PGSQL PHP Perl Personal PostgreSQL Postgres PowerDNS Proxmox Proxy Python Rancher Rant Redis Roundcube SSL Samba Seafile Security Shell SmartOS Solaris Surveillance Systemd TLS Tomcat Ubuntu Unix VMWare VMware Varnish Virtualization Windows Wireless Wordpress Wyse ZFS Zoneminder