While posting this question I figured out the answer, but I’ll post both here in case it helps someone else, and perhaps someone can help with the why of what happened.
When I run:
sudo npm install -g grunt
the last part of it says:
/usr/bin/grunt -> /usr/lib/node_modules/grunt/bin/grunt
npm ERR! peerinvalid The package flatiron does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer flatiron-cli-config@0.1.3 wants flatiron@~0.1.9
npm ERR! peerinvalid Peer flatiron-cli-users@0.1.1 wants flatiron@~0.1.9
npm ERR! System Linux 3.5.0-23-generic
npm ERR! command "nodejs" "/usr/bin/npm" "install" "-g" "grunt"
npm ERR! cwd /home/explunit
npm ERR! node -v v0.8.19
npm ERR! npm -v 1.2.9
npm ERR! code EPEERINVALID
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/explunit/npm-debug.log
npm ERR! not ok code 0
As you can see in the above, I am on node 0.8.19 and npm 1.2.9 (the latest that comes down from ppa:chris-lea on Ubuntu 12.10).
Other things I tried:
- Did the same on a fresh Ubuntu install. No errors. The script output looks the same until those last few error lines.
- Ran “sudo npm cache clean” and tried again. No luck.
- Ran “npm list” and there was nothing else listed
My mistake was not appending the -g on the npm list command.
Once I did that, I saw my list of globally installed modules (e.g. bower, jshint, mocha), and at the very end:
Then I ran this command to see which ones were using flatiron:
In this case it was jitsu, a module I’m not using anymore. I ran
And then ran the original command again. Note for anyone coming later to this question: The correct module for reinstalling grunt command-line globally after the release of 0.4 is now
grunt-cli, NOTgruntlike when I asked the original question.If I actually wanted to keep jitsu I could have updated it instead of uninstalling it (thanks @BenAtkin):
And then run the original command again. See this blog post about peerDependency being added in node 0.8.19 for more background.