Most Powerful Open Source ERP

SlapOS HowTo Install SlapOS Node (Experimental)

FINAL Document summarizing alternative and depreciated ways of installing a SlapOS node.
  • Last Update:2020-05-25
  • Version:002
  • Language:en

Experimental Ways to Install SlapOS Node

This HowTo covers alternative methods of installing a SlapOS nodes, which are either outdated, depreciated or simply experimental. Installation from source and packages may still work but is discouraged. For installing a SlapOS node in officially supported and tested way, please use the single line installer.

For this HowTo, a SlapOS Master to register the node with is required. This can either be a newly installed SlapOS Master or a commercial service like Vifib ( how to create user account on Vifib ).

Table of Content

  • Installing from Packages
  • Installing from Source
  • Installing via USB
  • Installing on Virtual Machine
  • Installing on Windows
  • Upgrading Experimental Installations
 

Installing SlapOS Node from Packages

Installing from Packages has been depreciated but should still work. It requires a GNU/Linux server with wget and Python 2.6/2.7 installed. Supported distributions can be found in the list below and run with the given commands. If a distribution is not listed, installing from sources is another option (depreciated and discouraged).

 

Debian 8

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/Debian_8
  .0/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/Debian_
  8.0/Release.key" | apt-key add - 
# apt-get update; apt-get install slapos-node
 

Debain 7

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/Debian_7
  .0/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/Debian_
  7.0/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

Debian 6

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/Debian_6
  .0/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/Debian_
  6.0/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

Ubuntu 16.10

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  16.10/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _16.10/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node

Ubuntu 16.04

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  16.04/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _16.04/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

Ubuntu 15.04

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  15.04/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _15.04/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

Ubuntu 14.10

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  14.10/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _14.10/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

Ubuntu 14.04

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  14.04/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _14.04/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

OpenSUSE 12.3

sudo su
# zypper addrepo -fc -n "SlapOS Official repo" http://download.opensuse.org/repo
  sitories/home:/VIFIBnexedi/openSUSE_12.3/ slapos
# zypper install slapos.node
 

CentOS 6

sudo su
# wget https://download.opensuse.org/repositories/home:/VIFIBnexedi/CentOS_7/hom
  e:VIFIBnexedi.repo -O /etc/yum.repos.d/slapos.repo
# rpm --import http://download.opensuse.org/repositories/home:/VIFIBnexedi/CentO
  S_7/repodata/repomd.xml.key
# yum install slapos.node -y
 

CentOS 6

sudo su
# wget https://download.opensuse.org/repositories/home:/VIFIBnexedi/CentOS_CentO
  S-6/home:VIFIBnexedi.repo -O /etc/yum.repos.d/slapos.repo
# sudo rpm --import http://download.opensuse.org/repositories/home:/VIFIBnexedi/
  CentOS_CentOS-6/repodata/repomd.xml.key
# sudo yum install slapos.node -y

For the following older distributions following below replace the first line with the line corresponding to your distribution version, run reload and install.

Ubuntu 10.04

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  10.04/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _10.04/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

Ubuntu 11.04

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  11.04/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _11.04/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

Ubuntu 11.10

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  11.10/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _11.10/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

Ubuntu 12.04

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  12.04/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _12.04/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

Ubuntu 12.10

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  12.10/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _12.10/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node

Ubuntu 13.04

sudo su
# echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_
  13.04/ ./" | tee /etc/apt/sources.list.d/slapos.list
# wget -O- "https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu
  _13.04/Release.key" | apt-key add -
# apt-get update; apt-get install slapos-node
 

Fedora 17 (No longer working)

sudo su
# wget https://download.opensuse.org/repositories/home:/VIFIBnexedi/Fedora_17/ho
  me:VIFIBnexedi.repo -O /etc/yum.repos.d/slapos.repo
# rpm --import http://download.opensuse.org/repositories/home:/VIFIBnexedi/Fedor
  a_17/repodata/repomd.xml.key
# yum install slapos.node -y
 

Fedora 18 (No loger working)

sudo su 
# wget https://download.opensuse.org/repositories/home:/VIFIBnexedi/Fedora_18/ho
  me:VIFIBnexedi.repo -O /etc/yum.repos.d/slapos.repo
# rpm --import http://download.opensuse.org/repositories/home:/VIFIBnexedi/Fedor
  a_18/repodata/repomd.xml.key
# yum install slapos.node -y
 

OpenSUSE 12.1

sudo su
# zypper addrepo -fc -n "SlapOS Official repo" http://download.opensuse.org/repo
  sitories/home:/VIFIBnexedi/openSUSE_12.1/ slapos
# zypper install slapos.node
 

OpenSUSE 12.2


# zypper addrepo -fc -n "SlapOS Official repo" http://download.opensuse.org/repo
  sitories/home:/VIFIBnexedi/openSUSE_12.2/ slapos
# zypper install slapos.node

Installing SlapOS Node from Sources

Installing from sources is depreciated and discouraged. It is still useful for understanding the architecture of SlapOS from a practical point of view. You will need a GNU/Linux Server with Python 2.6/2.7 as well as:

  • gcc and the g++ compiler
  • make and patch tools
  • linux headers for tunneling tools
  • uml-utilities and bridge-utils for bridge tools

On Debian-like distributions it is required to install the following using:

sudo su
# apt-get install python gcc g++ make uml-utilities bridge-utils linux-headers-$
  (uname -r) patch wget

The GNU/Linux server should either be connected to the Internet with native IPv6 global address or it should have a public IPv4 address. For servers with only a public IPv4, Re6st installation is requried and shown in how to install a SlapOS node.

A SlapOS Slave node is composed of computer partitions. As a reminder, a partition on a Slave node consists of a UNIX user, his directory, a dedicated tap interface and a dedicated IPv6 address. When a software instance is requested to SlapOS Master, SlapOS Master looks for free partitions on every registered Slave Node and chooses one depending on specific service level parameters specified by the user. The chosen SlapOS Node is then requested to instantiate the user-specified software into an free computer partition. Whenever a software instance is no longer used, it is deleted from the Slave node it was previously allocated to and the computer partition is freed and again available.

The installation process of SlapOS Slave node installs several python scripts among them:

  • slapos node format invoked to create users, directories, tap interfaces and IPv6 addresses for every service of each computer partition.
  • slapos node instance/software, relies on slapgrid core API which implements the SLAP protocol and requests to SlapOS Master Node which software to install, to instanciate, to account usage and to delete.
  • slapos node console provides a command line environment to contact SlapOS Master.
  • slapos node provides access to the list of running processes in all computer partitions.

The following script can be used to download and install SlapOS:

# Download the example script, to build slapos on /opt/slapos
wget https://lab.nexedi.com/nexedi/slapos/raw/master/component/slapos/build.sh

# After download run it.
bash build.sh

SlapOS is installed using Buildout, which downloads the source code, patches and binaries required to build a software on a given architecture. It handles dependencies between software components automatically.

First, a directory for SlapOS software is created by invoking mkdir /opt/slapos. We then move to the SlapOS software directory where a Buildout file is created which extends SlapOS's own buildout.cfg. Nothing will be downloaded, only a text file with a link to a URL is created.

Before starting the boostrap process, some environment variables are unset. This is mostly useless on most GNU/Linux distributions or UNIX-like operating systems but it prevents certain errors in a few GNU/Linux distributions with uncommon environment settings.

After this the bootstrap process is started after ensuring a recent version of python (2.6+) is available. The python invocation bootstraps buildout. The buildout invocation interpretes the buildout.cfg file and installs SlapOS on the server.

# Download default cron entries to slapos works automatically 
# wget https://lab.nexedi.com/nexedi/slapos.package/raw/master/obs/slapos/debian
  /cron.d -O /etc/cron.d/slapos

Optionally, it is possible to define the cron configuration by copying the example above. Parameters can be adapted if you did not follow the exact steps (not recommended). slapformat is invoked every hour so that if we any changes happen on the network (something not supposed to happen), the Master will eventually be notified. This is very useful in case server hardware is moved from one house to another, from one data center to another, etc.

Note: Your SlapOS node will run automatically every minute if you add those lines to your crontab. If you want to manually launch slapos node, do not add those lines.

Install SlapOS Node via USB

Installing via a USB key containing the SlapOS system image is an experimental! way of adding a new SlapOS node. It requires a SlapOS Master to register the node, a USB stick (8GB+), a computer to download the disk image and create the USB key and a second computer to install the SlapOS node with at least 60GB SSD (SSD provides enough read/writes per second to support SlapOS multi-user load). WARNING: your second computer will be completely erased! by the USB key at the first boot, so make sure there is no valuable data on it.

To write the key (CLI), download the lastest SlapOS image. This image was created with SuSE studio and is a universal image which can be installed on a USB key or on a hard disk. Unpack the image using tar.

# Download http://community.slapos.org/download/latest-vmx
# Untar it
tar xzf SlapOS_Image.x86_64-0.5.16.oem.tar.gz

Plug the USB key into your PC, change to root and identify which device (/dev/sdX) is the one corresponding to the USB key

# identify device
sudo su
- lsblk

Write to the key.

# Write key
dd if=SlapOS_Image.x86_64-0.5.16.raw of=/dev/sdX

Insert the USB key into your second computer after ensuring its BIOS is configured to:

  • boot from USB key
  • enable virtualization if you want to host virtual machines
  • restart automatically after a power failure (APM setting)

Boot and once the boot sequence finishes, connect as root (login: "root", pw: "linux").

If you have your own SlapOS configuration (slapos.cfg, certificate, key), place it in your configuration in /etc/opt/slapos/ or /etc/slapos before running slapprepare. To use IPv6 provided by Vifib add a line ipv6_interface = tapVPN in the [slapformat] of your slapos.cfg. In case IPv6 is not available on your network, the key will connect automatically to a server via VPN to get a reliable IPv6. If you have IPv6 but your connection is not reliable you can force the use of Vifib IPv6 by naming a file called openvpn-needed in the directory containing slapos.cfg. Run slapprepare:

#Run command:
slapprepare

# Configuration question you will be asked during boot
Automatically register new computer to Vifib? [y,n]:
What should be the name of this computer? [name]:
Do you want the setup to allow virtual machines inside this node? [y, n]:
Number of SlapOS partitions for this computer? [number]:
Is this a virtual Machine? [y,n]:
Do you want to use SlapOS with a second disk ? [y,n]:
Do you want to use vpn to provide ipv6? [y,n]:
Do you want to force the use lxc on this computer? [y,n]:
Do you want a remote ssh access? [y,n]: 

If you don't want to register with Vifib enter "N" and follow the instructions, else enter "Y". Name your computer to identify it in the network, do not allow nested virtual machines, set 20 partitions, enter "N" for not labelling this computer a virtual machine, set "Y" to use and format(!) this computer's hard disk for SlapOS and opt to use VPN for IPv6 (more stable). Only select LXC if you plan to use them and have a valid ssh public key ready (Note, that slapprepare will install a boot script that resets the root password after each run and boot - use the ssh key to not loose access to your computer).

Confirm if everything is correct, add your Vifib login/password and enter the url of your public ssh key (use a service like pastebin to enter your public key and get a "raw" link).

Once all software has been installed, SlapOS will format the server creating 100 IPv6 adresses, users and directories with respective tab interfaces and bridges. Every resource which will be executed on a SlapOS server will be attached to its dedicated address, user and directory creating a simple form of compartments between processes without the overload of virtualization or chrooting. Once formatting is done, the results will be uploaded to the master you specified.

Install SlapOS Node on Virtual Machine

Installing a Slave Node on a VMWare virtual machine using the SlapOS sytem image is straightforward. You will need a machine with VMWare installed (download version 4.0) as well as well as a SlapOS Master to register with.

Start by

# Download the ".bundle" file for your linux distribuition (32 or 64 bits).
# in case the extension is .txt change it to .bundle 
chmod +x VMware-Player-4.0.2-591240.x86_64.bunble 
gksudo ./VMware-Player-4.0.2-591240.x86_64.bunble 
# follow instructions

Afterwards, download the latest SlapOS image. This image was created with SuSE studio and is a virtual machine which can be run on any player supporting .vmdk files. Unpack after download.

# Download http://community.slapos.org/download/latest-vmx
tar -xzf SlapOS_Image.x86_64-latest.vmx.tar.gz

You can now open your VMware player. Choose Open a Virtual Machine and select yours. Head over to the configuration and change the network adapter to NAT.

Boot and once the boot sequence finishes, connect as root (login: "root", pw: "linux").

If you have your own SlapOS configuration (slapos.cfg, certificate, key), place it in your configuration in /etc/opt/slapos/ or /etc/slapos before running slapprepare. To use IPv6 provided by Vifib add a line ipv6_interface = tapVPN in the [slapformat] of your slapos.cfg. In case IPv6 is not available on your network, the key will connect automatically to a server via VPN to get a reliable IPv6. If you have IPv6 but your connection is not reliable you can force the use of Vifib IPv6 by naming a file called openvpn-needed in the directory containing slapos.cfg. Run slapprepare:

#Run command:
slapprepare

# Configuration questions you will be asked during boot
Automatically register new computer to Vifib? [y,n]:
What should be the name of this computer? [name]:
Do you want the setup to allow virtual machines inside this node? [y, n]:
Number of SlapOS partitions for this computer? [number]:
Is this a virtual Machine? [y,n]:
Do you want to use vpn to provide ipv6? [y,n]:
Do you want to force the use lxc on this computer? [y,n]:
Do you want a remote ssh access? [y,n]: 

If you don't want to register with Vifib enter "N", name your computer to identify it in the network, do not allow nested virtual machines, set 20 partitions, confirm this is a virtual machine and to use VPN for IPv6 (more stable). Only select LXC if you plan to use them and have a valid ssh public key ready (Note, that slapprepare will install a boot script that resets the root password after each run and boot - use the ssh key to not loose access to your computer).

Confirm if everything is correct, add your Vifib login/password and enter the url of your public ssh key (use a service like pastebin to enter your public key and get a "raw" link).

Once all software has been installed, SlapOS will format the server creating 100 IPv6 adresses, users and directories with respective tab interfaces and bridges. Every resource which will be executed on a SlapOS server will be attached to its dedicated address, user and directory creating a simple form of compartments between processes without the overload of virtualization or chrooting. Once formatting is done, the results will be uploaded to the master you specified.

Install SlapOS Node on Windows (Cygwin)

Installing a SlapOS node on Windows was an experimental attempt covering installation of Cygwin and installation of SlapOS from sources (no longer working). You will need a Windows machine as well as a SlapOS Master to register with.

Head to the Cygwin website and install Cygwin to downlaod the GUI installer. Note that the root directory of Cygwin (default: C:\cygwin) will become / during the installation. You also must have write access to the parent directory and be aware that any ACLs (access control lists) on the parent directory will determine access to the installed files.

SlapOS requires a number of packages beyond the minimal Cygwin installation (more info). Please choose the following packages:

 

apache         gcc4            libxslt-dev       readline
apache-dev     gcc4-core       make              rpcgen
autobuild      gcc4-c++        openldap          sqllite3
autoconf       git             openldap-dev      stunnel
automake       glib2.0         openssl           subversion
binutils       gtk+            openssl-dev       subversion-dev
bison          gtk2.0          patch             vim
bzr            libgtk2.0-dev   pkg-config        w32api
cmake          libtool         python            wget
cyrus-sasl     libxml2         python-libxlst    zlib
db4.5          libxml2-dev     python-libxml     zlib-dev
flex           libxslt         python-nummy

Once Cygwin is installed, double click the icon (or C:\cygwin\Cygwin.bat) and enter the following commands:

# create directory
$ mkdir -p /opt/slapos

# get source form windows branch
$ cd /opt/slapos
$ mkdir src
$ git clone -b windows http://git.erp5.org/repos/slapos.git src

# create /opt/slapos/buildout.cfg with content:
[buildout]
extends = src/component/slapos/buildout.cfg

# add openssl path to PATH so python 2.7 can find shared lib
$ export PATH=/opt/slapos/parts/openssl/bin:$PATH
$ echo PATH=/opt/slapos/parts/openssl/bin:$PATH >> ~/.bash_profile

# install SlapOS using buildout
$ cd /opt/slapos
$ python -S -c 'import urllib2;print urllib2.urlopen(\
    "http://www.nexedi.org/static/packages/source/slapos.buildout/bootstrap-1.5.3-dev-SlapOS-002.py" \
    ).read()' > bootstrap.py
$ python -S bootstrap.py
$ bin/buildout -v -N

Wait until buildout completes. Then

$ cd /opt/slapos
#env={} in python2.7 results in not finding required shared library
$ sed -i "s/env={}/env=None/g" `find eggs -name svcbackend.py`

If you have IPv6 you can skip this section. If you only have a public IPv4 but no native IPv6, configure a IPv6 tunnel:

# install IPv6
$ netsh interface ipv6 install

# configure Teredo Tunnel
$ netsh interface ipv6 set teredo client teredo.remlab.net 60

Validate IPv6 works (output should be similar)

$ netsh interface ipv6 show interface

Idx  Met   MTU    State         Name
---  ----  -----  ------------  -----
 14     0   1500  Connected     Wireless Network Connection
 13     0   1500  Disconnected  Local Area Connection
  9     0   1500  Connected     VirtualBox Host-Only Network
  4     2   1280  Connected     Teredo Tunneling Pseudo-Interface
  3     1   1280  Connected     6to4 Pseudo-Interface
  2     1   1280  Connected     Automatic Tunneling Pseudo-Interface
  1     0   1500  Connected     Loopback Pseudo-Interface

And ensure the state of Teredo Tunneling Pseudo-Interface is connected

Next configure SlapOS by creating /opt/slapos/slapos.cfg with:

[slapos]
software_root = /opt/slapgrid
instance_root = /srv/slapgrid
master_url = https://slap.vifib.com
computer_id = COMP-XXX
key_file = /etc/opt/slapos/key
cert_file = /etc/opt/slapos/certificate
certificate_repository_path = /etc/opt/slapos/pki/

[slapformat]
computer_xml = /etc/slapos/slapos.xml
log_file = /var/log/slapformat.log
partition_amount = 2
bridge_name = slapbr0
partition_base_name = slappart
user_base_name = slapuser
tap_base_name = slaptap

# choose any local network that doesn't conflict with current machine 
# configuration
ipv4_local_network = 192.168.0.0/16"

Replace the computer_id with the id you required from your master.

Create the directories and copy the key and certificate files which were generated before to /etc/slapos:

$ mkdir -p /etc/slapos/ski
$ mkdir -p /opt/slapgrid
$ mkdir -p /svr/slapgrid

Next, create the file /opt/slapos/computer_definition.cfg:

[computer]

[partition_0]
address = 192.168.128.28/255.255.255.0
user = slapuser0
network_interface = slapbr0
pathname = slappart0

[partition_1]
address = 192.168.128.32/255.255.255.0
user = slapuser1
network_interface = slapbr0
pathname = slappart1

Run slapformat to register the partitions:

$ cd /opt/slapos
$ bin/slapformat -c --alter_network=False --alter_user=False -i computer_definition.cfg slapos.cfg

Run slapgrid to check what should be done:

$ cd /opt/slapos
$ bin/slapgrid -c slapos.cfg

Everything should be ok and the SlapOS Slave Node is registered. Note, that running slapformat the first time will result in an error Device or resource busy.... On the second run, no more error should appear.

You can also use the windows installer (md5sum: 175829d0d6c7e3d41bb3458fba340c6b) directly. Set the root directory of Slapos to C:\slapos by default, then after installation you can redo the configuration above. The installer will also provide a SlapOS Console for running commands such as slapgrid, slapformat etc.

Upgrading Experimental Installations

  • Packages: upgrade from packages by running:
    $sudo su
    # apt-get update; apt-get install slapos.node
  • Sources: requires to update both SlapOS Client (~/slapos) and Node (/opt/slapos) and depending on distribution (eg Mandriva, Suse) unset some environment variables:
    $ unset PYTHONPATH; 
      unset PYTHONDONTWRITEBYTECODE; unset CONFIG_SITE
    $ cd /opt/slapos
    sudo su
    # echo "[buildout]
    extends = http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.13
      6:/component/slapos/buildout.cfg" > buildout.cfg
    # python -S -c 'import urllib2;print urllib2.urlopen("https://raw.github.com/bui
      ldout/buildout/1/bootstrap/bootstrap.py").read()' | python -S -
    # bin/buildout
  • USB Key: create a new key (automatic upgrade included)

Thank You

Image Nexedi Office
  • Nexedi SA
  • 147 Rue du Ballon
  • 59110 La Madeleine
  • France