snakespan
By:
snakespan

Keystone: Command 'yo' does not exist

October 29, 2016 204 views
Node.js

Hi,

I'm trying to install Keystone.js which as a pre-requisite, requires installation of both Node and MongoDB, so I followed the following posts to do so:

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-an-ubuntu-14-04-server
https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-14-04

This has installed a 'stable' version of NodeJS on my server. However, when I then install keystone with the following commands:

npm install -g generator-keystone

and create a directory:

mkdir test-directory
cd test-directory

I'm required to run the generator

yo keystone

which returns:

yo: command not found

Searching around, it's cleary that perhaps my PATH wasn't exported:

export PATH="$PATH":~/.node/bin

but that doesn't fix the issue. So I decided to follow the advice of the last post here instead, which uninstalls grunt and yo, and reinstalls yo:

http://stackoverflow.com/questions/24026166/yo-command-not-found

But after uninstalling both packages, I'm now faced with this error upon reinstalling just yo:

sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

How do I resolve this?

For reference, the Keystone documentation is here for installation - http://keystonejs.com/getting-started/

It is probably related to a shift in commands from one version of node to the other, so perhaps I should be installing a specific version of node instead?

1 comment
  • Are you starting from a clean Ubuntu 14.04 installation or building off the Node.js one-click image?

1 Answer

Hey there,
If you installed node.js with sudo apt-get install nodejs on Ubuntu, you will have the binary named nodejs and not node which may be the reason for your error message.
If this is your issue, you could install node via the PPA here.

To test if node is installed and in your path, you can run node -v and you should get a version number returned, for example:

sammy@ubuntu $ node -v
v7.2.0

After you have resolved the node "command not found" issue, you should be able to install yeoman system-wide:

sudo npm install -g yo

You can then check your yo installation:

sammy@ubuntu $ yo --version
1.8.5
by Justin Ellingwood
Node.js is a popular Javascript platform that can be used to build web applications quickly and easily. Node.js uses Javascript on both the front-end and back-end to create a more consistent experience for developers. In this guide, we'll get you up and running with Node.js on an Ubuntu 14.04 server.
Have another answer? Share your knowledge.