Closed iMagdy closed 12 years ago
The error is most likely because of the &&
in this postinstall script:
npm install git://github.com/viatropos/coffeecup.git --force && npm install git://github.com/viatropos/coffee-script.git --force
We had issues with that on windows before. It turns out the Mac supports &&
and ;
as separators when running multiple commands on a single line. So you can also do this on a Mac:
npm install git://github.com/viatropos/coffeecup.git --force ; npm install git://github.com/viatropos/coffee-script.git --force
I am not very familiar with Linux, if you try running either of these commands what is the output?
Here are some of the issues we were facing with that script on windows:
https://gist.github.com/3442680#gistcomment-407106
I may bundle this into a node script to avoid this in the future, but first let's see if we can fix it for your system. Let me know how it goes.
It's so weird, didn't work for me, I'm using Ubuntu Server 12.04. Linux normally understand && without an issue.
I tried "sudo install tower -g" in a coworker machine, the installation completed successfully, but when I type "tower new app", it says, command not found. :(
It's the first time I see this issue, I tried Geddy, Flatiron, RailwayJS, they're all installed without any issues, I think it's something in the package, but I'm not sure what exactly is this :(
Can you verify this on a Linux machine? VM?
I've installed tower on Ubuntu 12.04 multiple times. It can be installed. Don't use "sudo" though. Take ownership of the folder.
Heres how the OS's support those characters:
;
command1 ; command2
whether command 1 fails, OR succeeds, command 2 will still run.&
Windows. same as ;
for linux/mac
linux/mac: totally different purpose. this will run the command entirely in the background and continue the next thing whether or not the first command is done. when the command is done, it will finish normally.
&&
I believe this method, is the same on all systems. this will run each command in succession. on at a time. however, as soon as one command fails, any further commands will not be processed and the entire line will completely stop regardless of what is after the next &&
as for having to run sudo, on linux I installed node from source. although i did this:
$ ./configure --prefix=/home/shawn/lib/node
$ make
$ make install
this will install node into your home directory. and any time you install something globally from npm with
$ npm install [package] -g
$ npm link
you wont have to use the sudo
command. because all the node_modules
are in your home directory. when I did this, it seemed to prevent various issued i had with permissions in node/npm/tower.
yeah that's another equally valid approach. I've also had it set up this way. I changed it at some point because I ran into an issue and thought this was causing the problem. It turned out not to be, but I never changed it back. In fact, I might do that, because it is a cleaner approach.
I tried this tutorial: https://www.digitalocean.com/community/articles/how-to-install-node-js-on-ubuntu-12-04 To install NodeJS as a local user instead of root, and then ran the command npm install tower, and it succeeded! I got this:
coffeecup@0.3.11 node_modules/coffeecup ├── optparse@1.0.3 ├── uglify-js@1.3.3 └── stylus@0.29.0 (debug@0.7.0, mkdirp@0.3.4, cssom@0.2.5) tower@0.4.1 node_modules/tower ├── ember-states-node@0.9.7-1-1 ├── knox@0.0.11 ├── temp@0.4.0 ├── underscore.logger@0.3.1 ├── inflection@1.2.3 ├── wrench@1.3.9 ├── node-uuid@1.3.3 ├── async@0.1.22 ├── mime@1.2.7 ├── URIjs@1.7.2 ├── ember-runtime-node@0.9.7-1-1 ├── ember-metal-node@0.9.7-1-1 ├── validator@0.4.11 ├── mint@0.3.5 ├── ejs@0.8.2 ├── underscore@1.3.3 ├── underscore.string@2.2.0rc ├── qs@0.5.0 ├── coffee-script@1.3.2 ├── accounting@0.3.2 ├── gm@1.4.2 ├── moment@1.7.0 ├── commander@1.0.4 (keypress@0.1.0) ├── useragent@1.1.0 (yamlparser@0.0.2, semver@1.0.14, request@2.9.202) ├── superagent@0.9.0 (methods@0.0.1, emitter-component@0.0.1, cookiejar@1.3.0, qs@0.4.2, mime@1.2.5, formidable@1.0.9) ├── geolib@1.1.8 (googlemaps@0.1.7) ├── express@2.5.11 (qs@0.4.2, mime@1.2.4, mkdirp@0.3.0, connect@1.9.2) ├── pathfinder@0.3.0-1 (mkdirp@0.3.4, detective@0.2.1, findit@0.1.2) ├── socket.io@0.9.10 (policyfile@0.0.4, redis@0.7.2, socket.io-client@0.9.10) └── nodemailer@0.3.25 (optimist@0.3.4, simplesmtp@0.1.21, mailcomposer@0.1.19)
But when I type tower in the terminal, I get:
imagdy@imagdy:/var/www$ tower No command 'tower' found, did you mean: Command 'towers' from package 'sgt-puzzles' (universe) tower: command not found
:(
O, I forgot to add the -g to the Tower installation line, but when I did that (npm install tower -g) I got:
imagdy@imagdy:/var/www$ tower new todos
module.js:340
throw err;
^
Error: Cannot find module '../lib/tower'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.
try this: cd into the tower directory and run "make watch". That should create the missing library.
@viatropos shouldn't the version on npm have this step already completed though?
Thanks Edubkendo, I did it and got this:
imagdy@imagdy:~/node-latest-install/node_modules/tower$ make watch grunt start --config ./grunt.coffee Loading "grunt.coffee" tasks and helpers...ERROR
Error: Cannot find module './build/tasks'
Task "start" not found. Use --force to continue.
Aborted due to warnings. make: *\ [watch] Error 3
try :
npm install -g grunt
Then, when that finishes, try
make watch
in the tower directory again. Don't forget the -g when you install grunt.
also, and this is odd, I just ran "npm install tower" in an empty directory just to see what was getting installed, and it had everything it needed. I'm wondering something else. Did you remove all the old stuff from your earlier attempts before you did this new install of node and tower? If any of that stuff is hanging around, it may be looking at the wrong tower.
I installed Grunt, with the -g parameter, then I got:
grunt@0.3.15 /home/imagdy/local/lib/node_modules/grunt ├── dateformat@1.0.2-1.2.3 ├── colors@0.6.0-1 ├── semver@1.0.14 ├── async@0.1.22 ├── hooker@0.2.3 ├── underscore@1.2.4 ├── underscore.string@2.1.1 ├── uglify-js@1.3.3 ├── nopt@1.0.10 (abbrev@1.0.3) ├── temporary@0.0.4 (package@1.0.1) ├── gzip-js@0.3.1 (crc32@0.2.2, deflate-js@0.2.2) ├── glob-whatev@0.1.8 (minimatch@0.2.6) ├── jshint@0.5.9 (argsparser@0.0.6, minimatch@0.2.6) ├── connect@2.4.5 (fresh@0.1.0, pause@0.0.1, bytes@0.1.0, cookie@0.0.4, crc@0.2.0, debug@0.7.0, qs@0.4.2, formidable@1.0 .11, send@0.0.4) ├── prompt@0.1.12 (pkginfo@0.2.3, winston@0.5.11) └── nodeunit@0.7.4 (tap@0.3.1)
Then make watch gave me: grunt start --config ./grunt.coffee Loading "grunt.coffee" tasks and helpers...ERROR
Error: Cannot find module './build/tasks'
Task "start" not found. Use --force to continue.
Aborted due to warnings. make: *\ [watch] Error 3
I think I removed all the old stuff, that's why npm is keeping on installing packages into my home folder.
look at the contents of the tower folder and see what's in there. Should have bin build dist lib node_modules packages test tmp
I have these: imagdy@imagdy:~/node-latest-install/node_modules/tower$ ll total 100 drwxrwxr-x 5 imagdy imagdy 4096 Sep 6 22:23 ./ drwxrwxr-x 4 imagdy imagdy 4096 Sep 6 22:23 ../ drwxrwxrwx 2 imagdy imagdy 4096 Sep 1 14:10 bin/ -rw-rw-rw- 1 imagdy imagdy 5080 Sep 1 14:10 grunt.coffee -rw-rw-rw- 1 imagdy imagdy 248 Sep 1 14:10 index.js -rw-rw-rw- 1 imagdy imagdy 1571 Sep 1 14:10 INSTALL.md -rw-rw-rw- 1 imagdy imagdy 948 Sep 1 14:10 Makefile -rw-rw-rw- 1 imagdy imagdy 1121 Sep 1 14:10 MIT-LICENSE.md drwxrwxr-x 34 imagdy imagdy 4096 Sep 6 22:25 node_modules/ -rw-rw-rw- 1 imagdy imagdy 120 Sep 1 14:10 .npmignore -rw-rw-rw- 1 imagdy imagdy 26898 Sep 6 22:21 package.json drwxrwxrwx 16 imagdy imagdy 4096 Sep 6 22:21 packages/ -rw-rw-rw- 1 imagdy imagdy 23040 Sep 1 14:10 README.md
I don't have these: "build", "dist", "lib", "test", "tmp"
ok, its missing like, everything. try running
npm cache clean
then
npm install -g tower
See if it installs those folders.
Same thing same thing.. Here's the whole story:
imagdy@imagdy:~/node-latest-install/node_modules/tower$ npm cache clean imagdy@imagdy:~/node-latest-install/node_modules/tower$ cd .. imagdy@imagdy:~/node-latest-install/node_modules$ npm install -g tower npm http GET https://registry.npmjs.org/underscore npm http GET https://registry.npmjs.org/underscore.string npm http GET https://registry.npmjs.org/mime npm http GET https://registry.npmjs.org/qs npm http GET https://registry.npmjs.org/async npm http GET https://registry.npmjs.org/underscore.logger npm http GET https://registry.npmjs.org/mint npm http GET https://registry.npmjs.org/ejs npm http GET https://registry.npmjs.org/pathfinder npm http GET https://registry.npmjs.org/commander npm http GET https://registry.npmjs.org/express npm http GET https://registry.npmjs.org/socket.io npm http GET https://registry.npmjs.org/useragent npm http GET https://registry.npmjs.org/URIjs npm http GET https://registry.npmjs.org/moment npm http GET https://registry.npmjs.org/node-uuid npm http GET https://registry.npmjs.org/geolib npm http GET https://registry.npmjs.org/validator npm http GET https://registry.npmjs.org/accounting npm http GET https://registry.npmjs.org/inflection npm http GET https://registry.npmjs.org/superagent npm http GET https://registry.npmjs.org/ember-metal-node npm http GET https://registry.npmjs.org/ember-runtime-node npm http GET https://registry.npmjs.org/ember-states-node npm http GET https://registry.npmjs.org/wrench npm http GET https://registry.npmjs.org/temp npm http GET https://registry.npmjs.org/knox/0.0.11 npm http GET https://registry.npmjs.org/gm npm http GET https://registry.npmjs.org/nodemailer npm http 200 https://registry.npmjs.org/underscore.string npm http GET https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.0rc.tgz npm http 200 https://registry.npmjs.org/qs npm http GET https://registry.npmjs.org/qs/-/qs-0.5.0.tgz npm http 200 https://registry.npmjs.org/mime npm http GET https://registry.npmjs.org/mime/-/mime-1.2.7.tgz npm http 200 https://registry.npmjs.org/underscore npm http GET https://registry.npmjs.org/underscore/-/underscore-1.3.3.tgz npm http 200 https://registry.npmjs.org/underscore.logger npm http GET https://registry.npmjs.org/underscore.logger/-/underscore.logger-0.3.1.tgz npm http 200 https://registry.npmjs.org/mint npm http GET https://registry.npmjs.org/mint/-/mint-0.3.5.tgz npm http 200 https://registry.npmjs.org/pathfinder npm http GET https://registry.npmjs.org/pathfinder/-/pathfinder-0.3.0-1.tgz npm http 200 https://registry.npmjs.org/ejs npm http GET https://registry.npmjs.org/ejs/-/ejs-0.8.2.tgz npm http 200 https://registry.npmjs.org/useragent npm http GET https://registry.npmjs.org/useragent/-/useragent-1.1.0.tgz npm http 200 https://registry.npmjs.org/commander npm http GET https://registry.npmjs.org/commander/-/commander-1.0.4.tgz npm http 200 https://registry.npmjs.org/URIjs npm http GET https://registry.npmjs.org/URIjs/-/URIjs-1.7.2.tgz npm http 200 https://registry.npmjs.org/moment npm http GET https://registry.npmjs.org/moment/-/moment-1.7.0.tgz npm http 200 https://registry.npmjs.org/node-uuid npm http GET https://registry.npmjs.org/node-uuid/-/node-uuid-1.3.3.tgz npm http 200 https://registry.npmjs.org/geolib npm http GET https://registry.npmjs.org/geolib/-/geolib-1.1.8.tgz npm http 200 https://registry.npmjs.org/async npm http GET https://registry.npmjs.org/async/-/async-0.1.22.tgz npm http 200 https://registry.npmjs.org/accounting npm http GET https://registry.npmjs.org/accounting/-/accounting-0.3.2.tgz npm http 200 https://registry.npmjs.org/express npm http GET https://registry.npmjs.org/express/-/express-2.5.11.tgz npm http 200 https://registry.npmjs.org/inflection npm http GET https://registry.npmjs.org/inflection/-/inflection-1.2.3.tgz npm http 200 https://registry.npmjs.org/ember-metal-node npm http GET https://registry.npmjs.org/ember-metal-node/-/ember-metal-node-0.9.7-1-1.tgz npm http 200 https://registry.npmjs.org/ember-runtime-node npm http GET https://registry.npmjs.org/ember-runtime-node/-/ember-runtime-node-0.9.7-1-1.tgz npm http 200 https://registry.npmjs.org/socket.io npm http GET https://registry.npmjs.org/socket.io/-/socket.io-0.9.10.tgz npm http 200 https://registry.npmjs.org/superagent npm http GET https://registry.npmjs.org/superagent/-/superagent-0.9.0.tgz npm http 200 https://registry.npmjs.org/ember-states-node npm http GET https://registry.npmjs.org/ember-states-node/-/ember-states-node-0.9.7-1-1.tgz npm http 200 https://registry.npmjs.org/wrench npm http GET https://registry.npmjs.org/wrench/-/wrench-1.3.9.tgz npm http 200 https://registry.npmjs.org/temp npm http GET https://registry.npmjs.org/temp/-/temp-0.4.0.tgz npm http 200 https://registry.npmjs.org/knox/0.0.11 npm http GET https://registry.npmjs.org/knox/-/knox-0.0.11.tgz npm http 200 https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.0rc.tgz npm http 200 https://registry.npmjs.org/qs/-/qs-0.5.0.tgz npm http 200 https://registry.npmjs.org/validator npm http GET https://registry.npmjs.org/validator/-/validator-0.4.11.tgz npm http 200 https://registry.npmjs.org/mime/-/mime-1.2.7.tgz npm http 200 https://registry.npmjs.org/underscore/-/underscore-1.3.3.tgz npm http 200 https://registry.npmjs.org/gm npm http GET https://registry.npmjs.org/gm/-/gm-1.4.2.tgz npm http 200 https://registry.npmjs.org/underscore.logger/-/underscore.logger-0.3.1.tgz npm http 200 https://registry.npmjs.org/mint/-/mint-0.3.5.tgz npm http 200 https://registry.npmjs.org/pathfinder/-/pathfinder-0.3.0-1.tgz npm http 200 https://registry.npmjs.org/ejs/-/ejs-0.8.2.tgz npm http 200 https://registry.npmjs.org/useragent/-/useragent-1.1.0.tgz npm http 200 https://registry.npmjs.org/commander/-/commander-1.0.4.tgz npm http 200 https://registry.npmjs.org/URIjs/-/URIjs-1.7.2.tgz npm http 200 https://registry.npmjs.org/moment/-/moment-1.7.0.tgz npm http 200 https://registry.npmjs.org/node-uuid/-/node-uuid-1.3.3.tgz npm http 200 https://registry.npmjs.org/geolib/-/geolib-1.1.8.tgz npm WARN package.json geolib@1.1.8 No README.md file found! npm http 200 https://registry.npmjs.org/async/-/async-0.1.22.tgz npm http 200 https://registry.npmjs.org/accounting/-/accounting-0.3.2.tgz npm http 200 https://registry.npmjs.org/express/-/express-2.5.11.tgz npm http 200 https://registry.npmjs.org/inflection/-/inflection-1.2.3.tgz
npm http 200 https://registry.npmjs.org/ember-metal-node/-/ember-metal-node-0.9.7-1-1.tgz npm http 200 https://registry.npmjs.org/ember-runtime-node/-/ember-runtime-node-0.9.7-1-1.tgz
npm http 200 https://registry.npmjs.org/socket.io/-/socket.io-0.9.10.tgz npm WARN package.json ember-metal-node@0.9.7-1-1 No README.md file found! npm http 200 https://registry.npmjs.org/superagent/-/superagent-0.9.0.tgz
npm WARN package.json ember-runtime-node@0.9.7-1-1 No README.md file found! npm http 200 https://registry.npmjs.org/ember-states-node/-/ember-states-node-0.9.7-1-1.tgz npm http 200 https://registry.npmjs.org/wrench/-/wrench-1.3.9.tgz npm WARN package.json ember-states-node@0.9.7-1-1 No README.md file found! npm http 200 https://registry.npmjs.org/temp/-/temp-0.4.0.tgz npm http 200 https://registry.npmjs.org/knox/-/knox-0.0.11.tgz npm http 200 https://registry.npmjs.org/validator/-/validator-0.4.11.tgz npm http 200 https://registry.npmjs.org/gm/-/gm-1.4.2.tgz npm http 200 https://registry.npmjs.org/nodemailer npm http GET https://registry.npmjs.org/nodemailer/-/nodemailer-0.3.25.tgz npm http 200 https://registry.npmjs.org/nodemailer/-/nodemailer-0.3.25.tgz npm http GET https://registry.npmjs.org/googlemaps npm http GET https://registry.npmjs.org/keypress npm http GET https://registry.npmjs.org/yamlparser/0.0.2 npm http GET https://registry.npmjs.org/request/2.9.202 npm http GET https://registry.npmjs.org/semver/1.0.14 npm http GET https://registry.npmjs.org/mime/1.2.5 npm http GET https://registry.npmjs.org/methods/0.0.1 npm http GET https://registry.npmjs.org/emitter-component/0.0.1 npm http GET https://registry.npmjs.org/cookiejar/1.3.0 npm http GET https://registry.npmjs.org/qs/0.4.2 npm http GET https://registry.npmjs.org/formidable/1.0.9 npm http GET https://registry.npmjs.org/connect npm http GET https://registry.npmjs.org/mime/1.2.4 npm http GET https://registry.npmjs.org/mailcomposer npm http GET https://registry.npmjs.org/simplesmtp npm http GET https://registry.npmjs.org/optimist npm http GET https://registry.npmjs.org/mkdirp/0.3.0 npm http GET https://registry.npmjs.org/qs npm http GET https://registry.npmjs.org/socket.io-client/0.9.10 npm http GET https://registry.npmjs.org/policyfile/0.0.4 npm http GET https://registry.npmjs.org/detective npm http GET https://registry.npmjs.org/findit npm http GET https://registry.npmjs.org/redis/0.7.2 npm http GET https://registry.npmjs.org/mkdirp npm http 200 https://registry.npmjs.org/yamlparser/0.0.2 npm http 200 https://registry.npmjs.org/semver/1.0.14 npm http GET https://registry.npmjs.org/yamlparser/-/yamlparser-0.0.2.tgz npm http GET https://registry.npmjs.org/semver/-/semver-1.0.14.tgz npm http 200 https://registry.npmjs.org/request/2.9.202 npm http GET https://registry.npmjs.org/request/-/request-2.9.202.tgz npm http 200 https://registry.npmjs.org/mime/1.2.5 npm http GET https://registry.npmjs.org/mime/-/mime-1.2.5.tgz npm http 200 https://registry.npmjs.org/methods/0.0.1 npm http GET https://registry.npmjs.org/methods/-/methods-0.0.1.tgz npm http 200 https://registry.npmjs.org/keypress npm http GET https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz npm http 200 https://registry.npmjs.org/googlemaps npm http GET https://registry.npmjs.org/googlemaps/-/googlemaps-0.1.7.tgz npm http 200 https://registry.npmjs.org/cookiejar/1.3.0 npm http GET https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.0.tgz npm http 200 https://registry.npmjs.org/qs/0.4.2 npm http GET https://registry.npmjs.org/qs/-/qs-0.4.2.tgz npm http 200 https://registry.npmjs.org/emitter-component/0.0.1 npm http GET https://registry.npmjs.org/emitter-component/-/emitter-component-0.0.1.tgz npm http 200 https://registry.npmjs.org/mime/1.2.4 npm http GET https://registry.npmjs.org/mime/-/mime-1.2.4.tgz npm http 200 https://registry.npmjs.org/formidable/1.0.9 npm http GET https://registry.npmjs.org/formidable/-/formidable-1.0.9.tgz npm http 200 https://registry.npmjs.org/mkdirp/0.3.0 npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz npm http 304 https://registry.npmjs.org/qs npm http 200 https://registry.npmjs.org/optimist npm http GET https://registry.npmjs.org/optimist/-/optimist-0.3.4.tgz npm http 200 https://registry.npmjs.org/socket.io-client/0.9.10 npm http GET https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.10.tgz npm http 200 https://registry.npmjs.org/policyfile/0.0.4 npm http GET https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz npm http 200 https://registry.npmjs.org/detective npm http GET https://registry.npmjs.org/detective/-/detective-0.2.1.tgz npm http 200 https://registry.npmjs.org/findit npm http GET https://registry.npmjs.org/findit/-/findit-0.1.2.tgz npm http 200 https://registry.npmjs.org/mkdirp npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.4.tgz npm http 200 https://registry.npmjs.org/mailcomposer npm http GET https://registry.npmjs.org/mailcomposer/-/mailcomposer-0.1.19.tgz npm http 200 https://registry.npmjs.org/redis/0.7.2 npm http GET https://registry.npmjs.org/redis/-/redis-0.7.2.tgz npm http 200 https://registry.npmjs.org/yamlparser/-/yamlparser-0.0.2.tgz npm http 200 https://registry.npmjs.org/semver/-/semver-1.0.14.tgz npm http 200 https://registry.npmjs.org/request/-/request-2.9.202.tgz npm http 200 https://registry.npmjs.org/mime/-/mime-1.2.5.tgz npm http 200 https://registry.npmjs.org/methods/-/methods-0.0.1.tgz npm http 200 https://registry.npmjs.org/connect npm http GET https://registry.npmjs.org/connect/-/connect-1.9.2.tgz npm WARN package.json methods@0.0.1 No README.md file found! npm http 200 https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz npm http 200 https://registry.npmjs.org/googlemaps/-/googlemaps-0.1.7.tgz npm http 200 https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.0.tgz npm http 200 https://registry.npmjs.org/qs/-/qs-0.4.2.tgz npm http 200 https://registry.npmjs.org/emitter-component/-/emitter-component-0.0.1.tgz npm http 200 https://registry.npmjs.org/mime/-/mime-1.2.4.tgz npm http 200 https://registry.npmjs.org/formidable/-/formidable-1.0.9.tgz npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.3.4.tgz npm http GET https://registry.npmjs.org/request npm http GET https://registry.npmjs.org/waitress npm http 200 https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.10.tgz npm http 200 https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz npm http 200 https://registry.npmjs.org/detective/-/detective-0.2.1.tgz npm http 200 https://registry.npmjs.org/simplesmtp npm http GET https://registry.npmjs.org/simplesmtp/-/simplesmtp-0.1.21.tgz npm http 200 https://registry.npmjs.org/findit/-/findit-0.1.2.tgz npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.4.tgz npm http 200 https://registry.npmjs.org/mailcomposer/-/mailcomposer-0.1.19.tgz npm WARN excluding symbolic link test/symlinks/dir1/dangling-symlink -> does-not-exist npm http 200 https://registry.npmjs.org/redis/-/redis-0.7.2.tgz npm http 200 https://registry.npmjs.org/connect/-/connect-1.9.2.tgz npm http GET https://registry.npmjs.org/esprima npm http GET https://registry.npmjs.org/seq npm http 200 https://registry.npmjs.org/simplesmtp/-/simplesmtp-0.1.21.tgz npm http 200 https://registry.npmjs.org/waitress npm http GET https://registry.npmjs.org/waitress/-/waitress-0.1.2.tgz npm http GET https://registry.npmjs.org/wordwrap npm http GET https://registry.npmjs.org/rai npm http GET https://registry.npmjs.org/mimelib npm http 200 https://registry.npmjs.org/esprima npm http GET https://registry.npmjs.org/esprima/-/esprima-0.9.9.tgz npm http 200 https://registry.npmjs.org/waitress/-/waitress-0.1.2.tgz npm http 200 https://registry.npmjs.org/seq npm http GET https://registry.npmjs.org/seq/-/seq-0.3.5.tgz npm WARN package.json connect@1.9.2 No README.md file found! npm http GET https://registry.npmjs.org/formidable npm http 200 https://registry.npmjs.org/wordwrap npm http GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz npm http 200 https://registry.npmjs.org/rai npm http GET https://registry.npmjs.org/rai/-/rai-0.1.6.tgz npm http 200 https://registry.npmjs.org/esprima/-/esprima-0.9.9.tgz npm http 200 https://registry.npmjs.org/seq/-/seq-0.3.5.tgz npm http 200 https://registry.npmjs.org/request npm http GET https://registry.npmjs.org/request/-/request-2.2.9.tgz npm http 200 https://registry.npmjs.org/mimelib npm http GET https://registry.npmjs.org/mimelib/-/mimelib-0.2.4.tgz npm http 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz npm http GET https://registry.npmjs.org/chainsaw npm http GET https://registry.npmjs.org/hashish npm http 200 https://registry.npmjs.org/rai/-/rai-0.1.6.tgz npm http 200 https://registry.npmjs.org/request/-/request-2.2.9.tgz npm http 200 https://registry.npmjs.org/formidable npm http GET https://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz npm http 200 https://registry.npmjs.org/mimelib/-/mimelib-0.2.4.tgz npm http 200 https://registry.npmjs.org/chainsaw npm http GET https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz npm http 200 https://registry.npmjs.org/hashish npm http GET https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz npm http 200 https://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz npm http 200 https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz npm http 200 https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz npm http GET https://registry.npmjs.org/traverse npm http GET https://registry.npmjs.org/traverse npm http 200 https://registry.npmjs.org/traverse npm http GET https://registry.npmjs.org/traverse/-/traverse-0.6.3.tgz npm http GET https://registry.npmjs.org/encoding npm http GET https://registry.npmjs.org/addressparser npm http 200 https://registry.npmjs.org/traverse npm http GET https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz npm http 200 https://registry.npmjs.org/addressparser npm http GET https://registry.npmjs.org/addressparser/-/addressparser-0.1.1.tgz npm http 200 https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz npm http 200 https://registry.npmjs.org/traverse/-/traverse-0.6.3.tgz npm http 200 https://registry.npmjs.org/addressparser/-/addressparser-0.1.1.tgz npm http 200 https://registry.npmjs.org/encoding npm http GET https://registry.npmjs.org/encoding/-/encoding-0.1.3.tgz npm http 200 https://registry.npmjs.org/encoding/-/encoding-0.1.3.tgz npm http GET https://registry.npmjs.org/iconv-lite npm http GET https://registry.npmjs.org/iconv npm http 200 https://registry.npmjs.org/iconv-lite npm http 200 https://registry.npmjs.org/iconv npm http GET https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.5.tgz npm http GET https://registry.npmjs.org/iconv/-/iconv-1.2.3.tgz npm http 200 https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.5.tgz npm http 200 https://registry.npmjs.org/iconv/-/iconv-1.2.3.tgz npm http GET https://registry.npmjs.org/hiredis npm http GET https://registry.npmjs.org/uglify-js/1.2.5 npm http GET https://registry.npmjs.org/ws npm http GET https://registry.npmjs.org/xmlhttprequest/1.4.2 npm http GET https://registry.npmjs.org/active-x-obfuscator/0.0.1 npm http 200 https://registry.npmjs.org/hiredis npm http GET https://registry.npmjs.org/hiredis/-/hiredis-0.1.14.tgz npm http 200 https://registry.npmjs.org/uglify-js/1.2.5 npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz npm http 200 https://registry.npmjs.org/xmlhttprequest/1.4.2 npm http GET https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tgz npm http 200 https://registry.npmjs.org/active-x-obfuscator/0.0.1 npm http GET https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscator-0.0.1.tgz npm http 200 https://registry.npmjs.org/hiredis/-/hiredis-0.1.14.tgz npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz npm http 200 https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tgz npm http 200 https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscator-0.0.1.tgz npm http 200 https://registry.npmjs.org/ws npm http GET https://registry.npmjs.org/ws/-/ws-0.4.21.tgz npm WARN package.json hiredis@0.1.14 No README.md file found!
hiredis@0.1.14 preinstall /home/imagdy/local/lib/node_modules/tower/node_modules/socket.io/node_modules/redis/node_mod ules/hiredis make || gmake
cd deps/hiredis && make static
make[1]: Entering directory /home/imagdy/local/lib/node_modules/tower/node_modules/socket.io/node_modules/redis/node_mo dules/hiredis/deps/hiredis' cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb hiredis.c npm http 200 https://registry.npmjs.org/ws/-/ws-0.4.21.tgz cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb sds.c cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb async.c ar rcs libhiredis.a net.o hiredis.o sds.o async.o make[1]: Leaving directory
/home/imagdy/local/lib/node_modules/tower/node_modules/socket.io/node_modules/redis/node_mod
ules/hiredis/deps/hiredis'
node-waf configure build
Setting srcdir to : /home/imagdy/local/lib/node_modules/tower/node_modules/socket.io/node_modules
/redis/node_modules/hiredis
Setting blddir to : /home/imagdy/local/lib/node_modules/tower/node_modules/socket.io/node_modules
/redis/node_modules/hiredis/build
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for node path : not found
Checking for node prefix : ok /home/imagdy/local
'configure' finished successfully (0.072s)
Waf: Entering directory /home/imagdy/local/lib/node_modules/tower/node_modules/socket.io/node_modules/redis/node_module s/hiredis/build' [1/3] cxx: hiredis.cc -> build/Release/hiredis_1.o [2/3] cxx: reader.cc -> build/Release/reader_1.o [3/3] cxx_link: build/Release/hiredis_1.o build/Release/reader_1.o -> build/Release/hiredis.node Waf: Leaving directory
/home/imagdy/local/lib/node_modules/tower/node_modules/socket.io/node_modules/redis/node_modules
/hiredis/build'
'build' finished successfully (1.980s)
npm http GET https://registry.npmjs.org/zeparser/0.0.5
npm http GET https://registry.npmjs.org/tinycolor
npm http GET https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/options
npm http 304 https://registry.npmjs.org/commander
npm http GET https://registry.npmjs.org/commander/-/commander-0.6.1.tgz
npm http 200 https://registry.npmjs.org/zeparser/0.0.5
npm http GET https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz
npm http 200 https://registry.npmjs.org/tinycolor
npm http GET https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz
npm http 200 https://registry.npmjs.org/options
npm http GET https://registry.npmjs.org/options/-/options-0.0.3.tgz
npm http 200 https://registry.npmjs.org/commander/-/commander-0.6.1.tgz
npm http 200 https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz
npm http 200 https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz
npm http 200 https://registry.npmjs.org/options/-/options-0.0.3.tgz
ws@0.4.21 install /home/imagdy/local/lib/node_modules/tower/node_modules/socket.io/nodemodules/socket.io-client/node modules/ws node install.js
[ws v0.4.21] Attempting to compile blazing fast native extensions. [ws v0.4.21] Native extension compilation successful!
iconv@1.2.3 install /home/imagdy/local/lib/node_modules/tower/node_modules/nodemailer/node_modules/mailcomposer/node_m odules/mimelib/node_modules/encoding/node_modules/iconv node-gyp rebuild
make: Entering directory /home/imagdy/local/lib/node_modules/tower/node_modules/nodemailer/node_modules/mailcomposer/no de_modules/mimelib/node_modules/encoding/node_modules/iconv/build' CC(target) Release/obj.target/iconv/deps/libiconv/libcharset/lib/localcharset.o CC(target) Release/obj.target/iconv/deps/libiconv/lib/iconv.o CXX(target) Release/obj.target/iconv/binding.o SOLINK_MODULE(target) Release/obj.target/iconv.node SOLINK_MODULE(target) Release/obj.target/iconv.node: Finished COPY Release/iconv.node make: Leaving directory
/home/imagdy/local/lib/node_modules/tower/node_modules/nodemailer/node_modules/mailcomposer/nod
e_modules/mimelib/node_modules/encoding/node_modules/iconv/build'
/home/imagdy/local/bin/tower -> /home/imagdy/local/lib/node_modules/tower/bin/tower
tower@0.4.1 postinstall /home/imagdy/local/lib/node_modules/tower npm install git://github.com/viatropos/coffeecup.git git://github.com/viatropos/coffee-script.git --force
/home/imagdy/local/bin/coffee -> /home/imagdy/local/lib/node_modules/coffee-script/bin/coffee /home/imagdy/local/bin/cake -> /home/imagdy/local/lib/node_modules/coffee-script/bin/cake npm http GET https://registry.npmjs.org/optparse npm http GET https://registry.npmjs.org/uglify-js npm http GET https://registry.npmjs.org/stylus npm http 200 https://registry.npmjs.org/optparse npm http GET https://registry.npmjs.org/optparse/-/optparse-1.0.3.tgz npm http 200 https://registry.npmjs.org/uglify-js npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.3.tgz npm http 200 https://registry.npmjs.org/stylus npm http GET https://registry.npmjs.org/stylus/-/stylus-0.29.0.tgz npm http 200 https://registry.npmjs.org/optparse/-/optparse-1.0.3.tgz npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.3.tgz npm http 200 https://registry.npmjs.org/stylus/-/stylus-0.29.0.tgz npm http GET https://registry.npmjs.org/cssom npm http GET https://registry.npmjs.org/debug npm http GET https://registry.npmjs.org/mkdirp npm http 304 https://registry.npmjs.org/mkdirp npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.4.tgz npm http 200 https://registry.npmjs.org/debug npm http GET https://registry.npmjs.org/debug/-/debug-0.7.0.tgz npm http 200 https://registry.npmjs.org/cssom npm http GET https://registry.npmjs.org/cssom/-/cssom-0.2.5.tgz npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.4.tgz npm http 200 https://registry.npmjs.org/debug/-/debug-0.7.0.tgz npm http 200 https://registry.npmjs.org/cssom/-/cssom-0.2.5.tgz /home/imagdy/local/bin/coffeecup -> /home/imagdy/local/lib/node_modules/coffeecup/bin/coffeecup coffee-script@1.3.2 /home/imagdy/local/lib/node_modules/coffee-script
coffeecup@0.3.11 /home/imagdy/local/lib/node_modules/coffeecup ├── optparse@1.0.3 ├── uglify-js@1.3.3 └── stylus@0.29.0 (debug@0.7.0, mkdirp@0.3.4, cssom@0.2.5) tower@0.4.1 /home/imagdy/local/lib/node_modules/tower ├── knox@0.0.11 ├── ember-states-node@0.9.7-1-1 ├── temp@0.4.0 ├── inflection@1.2.3 ├── underscore.logger@0.3.1 ├── wrench@1.3.9 ├── node-uuid@1.3.3 ├── mime@1.2.7 ├── async@0.1.22 ├── URIjs@1.7.2 ├── ember-runtime-node@0.9.7-1-1 ├── ember-metal-node@0.9.7-1-1 ├── validator@0.4.11 ├── mint@0.3.5 ├── ejs@0.8.2 ├── underscore@1.3.3 ├── underscore.string@2.2.0rc ├── qs@0.5.0 ├── accounting@0.3.2 ├── coffee-script@1.3.2 ├── gm@1.4.2 ├── moment@1.7.0 ├── commander@1.0.4 (keypress@0.1.0) ├── useragent@1.1.0 (yamlparser@0.0.2, semver@1.0.14, request@2.9.202) ├── superagent@0.9.0 (methods@0.0.1, cookiejar@1.3.0, emitter-component@0.0.1, qs@0.4.2, mime@1.2.5, formidable@1.0.9) ├── geolib@1.1.8 (googlemaps@0.1.7) ├── express@2.5.11 (qs@0.4.2, mime@1.2.4, mkdirp@0.3.0, connect@1.9.2) ├── pathfinder@0.3.0-1 (mkdirp@0.3.4, findit@0.1.2, detective@0.2.1) ├── socket.io@0.9.10 (policyfile@0.0.4, redis@0.7.2, socket.io-client@0.9.10) └── nodemailer@0.3.25 (optimist@0.3.4, simplesmtp@0.1.21, mailcomposer@0.1.19) imagdy@imagdy:~/node-latest-install/node_modules$ imagdy@imagdy:~/node-latest-install/node_modules$ imagdy@imagdy:~/node-latest-install/node_modules$ imagdy@imagdy:~/node-latest-install/node_modules$ tower
module.js:340
throw err;
^
Error: Cannot find module '../lib/tower'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.
ok, here's an idea. try just installing tower non-globally but into this folder. in other words, cd into the directory "node-latest-install" and then running "npm install tower". See if it puts in those missing folders.
if it does work, it may just work since npm has already created the executable. If not, just cd into where it installed tower and tell it "npm link".
The latest version 0.4.2-1 doesn't run any postinstall
scripts for the global version of tower, so you should be good. See https://github.com/viatropos/tower/issues/272#issuecomment-8522405 (and comments above) for more info, mainly about sudo
since you're on linux and there's no homebrew :)
When I type sudo npm install tower -g it gives me the following after installing all the dependencies:
npm ERR! Failed at the tower@0.4.1 postinstall script. npm ERR! This is most likely a problem with the tower package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! npm install git://github.com/viatropos/coffeecup.git --force && npm install git://github.com/viatropos/coffee-script.git --force npm ERR! System Linux 3.2.0-23-generic npm ERR! command "nodejs" "/usr/bin/npm" "install" "-g" npm ERR! cwd /var/www/nodejs/tower npm ERR! node -v v0.8.8 npm ERR! npm -v 1.1.59 npm ERR! code ELIFECYCLE npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /var/www/nodejs/tower/npm-debug.log npm ERR! not ok code 0