Not all pre-reqs install correctly for Hyperledger

2019-07-24 23:45发布

问题:

I've been following the Hyperledger Composer tutorial. I managed to install Ubuntu 16.04 on Hyper-V on my Windows 10 Enterprise. I then started on the following pre-req installation instructions: https://hyperledger.github.io/composer/installing/installing-prereqs.html

I ran the prereqs-ubuntu.sh script. It ran fine with no errors. I examined the logs and saw that it had successfully installed npm 5.6.0, node 8.9.4, docker 17.12.x, docker composer 1.13.x, and Python 2.7.12.

However, when I run run $ sudo npm --version it tells me that the npm command is not found

Same with $ sudo node --version Not found...?!

Why would that be when the log clearly shows that npm and node where successfuly installed?!

回答1:

Well, what I did and managed through:

--> install nodejs and npm:

sudo snap install node --classic --channel=8

so you get the latest node8.

--> then to solve "sudo" problem with node specify the npm prefix:

npm config set prefix ~/.node_modules

add the following to .bash_profile

export PATH=$HOME/.node_modules/bin:$PATH

Now the packages will install into your user directory and no permissions will be harmend.

--> install nvm (to get exactly node 8.9 version on the next step):

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

or

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Verify:

node -v nvm

which should output 'nvm' if the installation was successful.

--> get and set node 8.9 version:

nvm install v8.9.0 
nvm use 8.9.0

--> reset PATHs:

echo export PATH="$HOME/npm/bin:$PATH" >> ~/.bashrc
npm config set prefix ~/npm
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

--> at this stage the docker previous setup shall be destroyed:

docker kill $(docker ps -q)
docker rm $(docker ps -aq)
docker rmi $(docker images dev-* -q)

--> Installing the rest of prereqs:

sudo apt-add-repository -y ppa:git-core/ppa
sudo apt-get update

# install git    
sudo apt-get install -y git

# Ensure that CA certificates are installed
sudo apt-get -y install apt-transport-https ca-certificates

# Add Docker repository key to APT keychain
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# Update package lists
sudo apt-get update

# Verifies APT is pulling from the correct Repository
sudo apt-cache policy docker-ce

# Install Docker
echo "# Installing Docker"
sudo apt-get -y install docker-ce

# Add user account to the docker group
sudo usermod -aG docker $(whoami)

# Install docker compose
echo "# Installing Docker-Compose"
sudo curl -L "https://github.com/docker/compose/releases/download/1.13.0/docker-compose-$(uname -s)-$(uname -m)" \
    -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# Install unzip, required to install hyperledger fabric.
sudo apt-get -y install unzip

--> now you can install Fabric dev. env. (assuming the rest of prereq components stand available):

npm install -g composer-cli  

etc.



回答2:

I think you need to log out and close the shell. And then restart with the new session, as the shell stores your session.

Also, after installation, the use of sudo is not recommended as mentioned on IBM hyperledger website.