Adopted from: install libpod.
First, install and set up go.
$ tce-load -i go.tcz
$ tce-load -wi compiletc
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=~/go
export PATH=$GOPATH/bin:$PATH
Install some more needed tools:
$ go get github.com/cpuguy83/go-md2man
The latest version of runc
is expected to be installed on the system. It is picked up as the default runtime by podman.
$ tce-load -wi libseccomp-dev bash
$ go get -d github.com/opencontainers/runc
$ cd $GOPATH/src/github.com/opencontainers/runc
$ make runc
$ sudo install -D -m0755 runc /usr/local/sbin/runc
$ cd -
The latest version of conmon
is expected to be installed on the system. Conmon is used to monitor OCI Runtimes.
$ tce-load -wi libseccomp-dev glib2-dev
$ go get -d github.com/kubernetes-sigs/cri-o
$ cd $GOPATH/src/github.com/kubernetes-sigs/cri-o
$ make bin/conmon
$ sudo install -D -m 755 bin/conmon /usr/local/lib/podman/conmon
$ cd -
You need to have some basic network configurations enabled and to have the CNI plugins installed on your system.
$ tce-load -wi bash
$ go get -d github.com/containernetworking/plugins
$ cd $GOPATH/src/github.com/containernetworking/plugins
$ bash build_linux.sh
$ sudo mkdir -p /usr/local/lib/cni
$ sudo cp bin/* /usr/local/lib/cni
$ cd -
$ tce-load -wi libseccomp-dev glib2-dev gpgme-dev bash
$ go get -d github.com/containers/libpod
$ cd $GOPATH/src/github.com/containers/libpod
$ sed -e 's|"/etc/cni|"/usr/local/etc/cni|' -i libpod.conf
$ sed -e 's|"/etc/cni|"/usr/local/etc/cni|' -i libpod/runtime.go
$ sed -e 's|/usr/libexec/podman/catatonit|/usr/local/lib/podman/catatonit|' -i libpod.conf
$ sed -e 's|/usr/libexec/podman/catatonit|/usr/local/lib/podman/catatonit|' -i libpod/runtime.go
$ sed -e 's|/usr/share/containers|/usr/local/share/containers|' -i libpod/runtime.go
$ make podman
$ eval `grep ^CATATONIT_VERSION hack/install_catatonit.sh`
$ sudo install -D -m 755 bin/podman /usr/local/bin/podman
$ sudo install -D -m 644 libpod.conf /usr/local/share/containers/libpod.conf
$ cd -
There is supposed to be an "init" binary at init_path
:
$ tce-load -wi autoconf automake
$ git clone https://github.com/openSUSE/catatonit
$ cd catatonit
$ git checkout $CATATONIT_VERSION
$ autoreconf -i
$ ./configure
$ make
$ sudo install -D -m 755 catatonit /usr/local/lib/podman/catatonit
$ cd -
$ tce-load -wi libseccomp glib2 gpgme
$ tce-load -i cni-plugins.tcz conmon.tcz runc.tcz podman.tcz
$ tce-load -wi socat util-linux iptables iproute2
$ tce-load -wi ca-certificates bridge-utils
Need to mount the necessary cgroupfs directories:
$ git clone https://github.com/tianon/cgroupfs-mount
$ cd cgroupfs-mount
$ sudo ./cgroupfs-mount
# needs to be done at boot
Normally this is done by the bundled init script:
# /etc/init.d/services/cgroupfs-mount start