Skip to content
This repository has been archived by the owner on May 27, 2023. It is now read-only.

developer notice

jason edited this page Mar 3, 2022 · 2 revisions

HOME | Biocontainer Compatibility Report | Package Installation Benchmark | GPGPU Access | Containerize Canu Assembler | Composability Feature | Developer Notice | Incompatible Images

Compile LPMX

  1. Make sure golang and dep are installed on your host.
  2. go get -v github.com/jasonyangshadow/lpmx
  3. cd $GOPATH/src/github.com/jasonyangshadow/lpmx
  4. ./build.sh

If there are any dependencies issues, try to execute 'dep ensure' inside the project folder and then add vendor subfolder into $GOROOT var.

If there are no errors, LPMX binary version will be generated inside build folder. lpmx build lpmx build

Compile Fakechroot

LPMX uses customized fakechroot for trapping glibc functions(open, mkdir, symlink and etc). Many core features including userspace union file system, composability feature and dynamical environment management are implemented inside it.

Precompiled fakechroot libraries are listed in this repository. If you need to compile all dependencies for LPMX for your distro or with specific glibc version. Following dependencies should be satisfied:

  1. git
  2. autoconf(some old distros will fail to compile source code because of older autoconf(should be >2.64), in this case, please download newer autoconf source code HERE and compile it locally)
  3. automake
  4. make
  5. gcc
  6. g++
  7. libmemcached-dev(also may need to download source code HERE to compile locally)
  8. cmake
  9. libtool
  10. msgpack-c
  11. fakeroot
  12. memcached (for memcached binary program)
  13. libssl-dev (for some Linux distros, e.g debian based)

If you can directly install msgpack-c via your package manager, it will be good and you don't need cmake. For example, for Arch Linux, users can directly install msgpack-c package from AUR by executing 'yaourt -S msgpack-c'. For other distros, such as ubuntu, you may need to compile msgpack-c from source by following the steps:

git clone https://github.com/msgpack/msgpack-c.git
cd msgpack-c
cmake .
make
sudo make install

After these steps, you could start compiling fakechroot.

git clone https://github.com/JasonYangShadow/fakechroot
cd fakechroot
./autogen.sh
./configure
make

Please refer this bash script for packaging dependencies into one tar ball(.tar.gz).

Dependencies required by LPMX are libfakechroot, libfakeroot, faked-sys, libevent, libmemcached, libsasl2, memcached

About YAML configuration file

lpmx receive yml configuration file while creating containers

some configurations can be put in as your requirements:

**NOTE** users may not need to modify configuration files themselves in principle unless they clearly know what they want. Most items in configuration file are set and configurated by LPMX itself, any new value will overrite default one. Therefore, if any errors occur after modification, please empty configuration file and recreate containers.
Clone this wiki locally