-
Notifications
You must be signed in to change notification settings - Fork 6
developer notice
HOME | Biocontainer Compatibility Report | Package Installation Benchmark | GPGPU Access | Containerize Canu Assembler | Composability Feature | Developer Notice | Incompatible Images
- Make sure golang and dep are installed on your host.
- go get -v github.com/jasonyangshadow/lpmx
- cd $GOPATH/src/github.com/jasonyangshadow/lpmx
- ./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 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:
- git
- 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)
- automake
- make
- gcc
- g++
- libmemcached-dev(also may need to download source code HERE to compile locally)
- cmake
- libtool
- msgpack-c
- fakeroot
- memcached (for memcached binary program)
- 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
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.