This is an old revision of the document!
Fabric (NVM-Docker)
The Hyperledger Fabric Composer environment requires a few prerequisites, that are listed hereunder:
- Docker Engine: Version 1.12.x
- Docker-Compose: Version 1.8.x
- Node: 6.x (note version 7 is not supported)
- npm: 4.0.x
- git: 2.9.x
Starting from a Debian 8(.7.1) template, we'll try to configure a suited environment following Fabric Composer's site recommendations.
Having experienced weird “permission denied” installation errors using the root user
, we'll try to proceed to installation as sysadmin when possible.
NVM (Node.js Version Manager)
Install NVM
> sudo apt-get install build-essential libssl-dev curl > curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh -o install_nvm.sh > bash install_nvm.sh > export NVM_DIR="/home/sysadmin/.nvm" > [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
Install Node.js
> nvm ls-remote ... v6.9.3 (LTS: Boron) v6.9.4 (LTS: Boron) v6.9.5 (LTS: Boron) v6.10.0 (Latest LTS: Boron) v7.0.0 ...
Since Fabric Composer requires Node.js 6.x, and doesn't support 7, let's go for v6.10.0:
> nvm install 6.10.0 ######################################################################## 100.0% Computing checksum with sha256sum Checksums matched! Now using node v6.10.0 (npm v3.10.10) Creating default alias: default -> 6.10.0 (-> v6.10.0)
We are supposed to use npm 4.0.x, 3.10.10 was installed, let's upgrade it as explained on the npmjs.com website:
> npm show npm@* version ... npm@4.0.3 '4.0.3' npm@4.0.5 '4.0.5' npm@4.1.0 '4.1.0' ... > npm install -g npm@4.0.5
Docker
Docker Engine
From the Docker documentation:
Repository version
> sudo apt-get install apt-transport-https ca-certificates curl software-properties-common > curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - OK > sudo nano /etc/apt/sources.list.d/docker.list ADD deb https://apt.dockerproject.org/repo debian-jessie main > sudo apt-get update > apt-cache madison docker-engine ... docker-engine | 1.13.0-0~debian-jessie | https://apt.dockerproject.org/repo/ debian-jessie/main amd64 Packages docker-engine | 1.12.6-0~debian-jessie | https://apt.dockerproject.org/repo/ debian-jessie/main amd64 Packages docker-engine | 1.12.5-0~debian-jessie | https://apt.dockerproject.org/repo/ debian-jessie/main amd64 Packages ... > sudo apt-get install docker-engine=1.12.6-0~debian-jessie
Complementary actions
Now, as we do not want to automatically upgrade the docker-engine
package when using apt-get upgrade
, we'll put the package on hold:
> sudo apt-mark hold docker-engine
To remove the hold:
> sudo apt-mark unhold docker-engine
Start and Autostart Docker:
> sudo systemctl start docker > sudo systemctl enable docker Synchronizing state for docker.service with sysvinit using update-rc.d... Executing /usr/sbin/update-rc.d docker defaults Executing /usr/sbin/update-rc.d docker enable