Closed archonic closed 9 years ago
I updated npm from 1.3.24 to 2.1.12 with npm install -g npm
and got past the fibers error. I'm installing using a minimal raspbian image that doesn't have sudo or users other than root and gyp was giving weird permissions warnings.
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/0.10.25"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/tmp/generate-dev-bundle-4o1sOCx2/lib/node_modules/kexec/.node-gyp"
But, success none the less!
Hi Josh ( @archonic ), Sorry about late response, I had not yet time to check your issue yet. Just to make it clear in case you close the issue already, is meteor now running on your side? Thanks for your feedback.
Tom
PS: I will make an update to latest meteor until weekend
I think that was a pretty quick response! The build seemed to finish, but meteor wasn't working. I tried recompiling but there seems to be a problem with the more recent version of npm. This is what the build output looks like now.
root@raspberry-pi:/opt/meteor# ./scripts/generate-dev-bundle.sh
Building dev bundle 0.3.61
BUILDING IN /tmp/generate-dev-bundle-fodhliVW
/opt/node/bin/node
/opt/node/bin/npm
./scripts/generate-dev-bundle.sh: line 147: 11093 Illegal instruction npm install
Illegal instruction
is only thing I can get out of npm now. I believe the update I did may have installed a version of npm that doesn't support ARM architecture, although I'm not sure why the last build appeared to work on the same version. which npm
reports /opt/node/bin/npm
which is a symlink to ../lib/node_modules/npm/bin/npm-cli.js
Not sure what my next step should be...
Huh, well I used the very simple instructions here to install a generically recent version of arm-linux node: http://www.schrankmonster.de/2014/03/22/install-nodejs-npm-raspberrypi-illegal-instruction-error-messages/
I had v0.11.9 installed and that package installed v0.10.33. After restarting bash, the node and npm paths pointed to /usr/local/bin instead of /opt/ and npm worked again.
The build appears to complete, but meteor commands are returning Illegal instruction
:(.
https://gist.github.com/archonic/8005a6a3eb8be2a3de8c
This info may help:
root@raspberry-pi:/var/www/unit22# which node
/usr/local/bin/node
root@raspberry-pi:/var/www/unit22# which npm
/usr/local/bin/npm
root@raspberry-pi:/var/www/unit22# which mongo
/opt/mongo/bin/mongo
root@raspberry-pi:/var/www/unit22# which meteor
/opt/meteor/meteor
root@raspberry-pi:/var/www/unit22# node -v
v0.10.33
root@raspberry-pi:/var/www/unit22# npm -v
1.4.28
root@raspberry-pi:/var/www/unit22# mongo --version
MongoDB shell version: 2.1.1-pre-
root@raspberry-pi:/var/www/unit22# meteor --version
Illegal instruction
Update: I tried rebuilding and the github repo that didn't resolve before seemed to work this time. However meteor is still just always returning Illegal instruction
.
Hi Josh, hm seems that you are running into various pieces ;-)
Could you please have a look at issue #2
It is about something different than yours but Gabriel got his meteor running. So what is your current system (distro and release?). What is your hardware (Raspi A/B?)
Maybe it is an option to start with another clean image on second SD and try to build nodejs and mango by yourself like Gabriel did.
Could you give it a try?
Issue #2 helped me with a few things so far. I'm running a raspbian minimal image (http://www.linuxsystems.it/raspbian-wheezy-armhf-raspberry-pi-minimal-image/). Other than lacking sudo and users other than root, it's like any other minimal raspbian image. I'm running it on a Model A at the moment. My Model B appears to have issues with my SD card. A message about a timeout hardware interrupt comes up and another about reading blocks, then it seems to think all packages don't exist. It can't even find the shutdown or reboot. The Model A runs fine. I think it may actually be a power supply issue. If it's not, then my Model B is probably toast :(
All of the packages pertaining to meteor (node, npm, mongo) are at acceptable versions, and work (as far as I can tell). Meteor finishes building, but any meteor commands (after restarting shell) just return 'Illegal operation'. I'll try verifying that npm, node and mongo commands actually work. If that doesn't, I'll start of a fresh raspbian image.
Hey Josh, keep my fingers crossed. If you can't make it, I can try to assist you on weekend with my Rapi B model. Currently I am just working on UDOO devices, so I had to reactivate the Raspi.
I can start mongod and view the admin interface. npm installs packages just fine. node applications run properly. I got my Model B behaving (at least for now) and tried again to rebuild meteor. I noticed in the section about removal in the readme, it says "Meteor installs itself inside your home directory". There's no meteor directory in /usr/local/bin
- only node and npm directories. The home directory of my root user on this minimal raspbian image is just /root
. There's no meteor directory there either.
Perhaps the user setup on my version of raspbian is having the build script not copy the completed build to the right place?
Update: Scratch that! I have no idea why it worked this time around, but it does. Yay! I think perhaps before I was trying to build meteor with a less than ideal npm version. There is however a new problem. Starting unit22 (my meteor app) has the process hang on logging: updating npm dependencies -- cli-color...
. It says Updating package catalogue
with the ASCII spinning thing and never gets past it. I'll figure that out tomorrow.
Hi Josh, what you could try is: build the application for production instead of just running it via meteor. This will also speed up the startup of your application. In that case you have to make sure that the system wide mongodb is running. When you start your application in production mode, meteor wil not start updater or local mongo etc. This is sometimes better to get whats running that the spinning ascii.
I ran meteor run --production
and that got further. Now it says this:
root@raspberry-pi:/var/www/unit22# meteor run --production
=> Running Meteor from a checkout -- overrides project version (Meteor 1.0)
[[[[[ /var/www/unit22 ]]]]]
=> Started proxy.
db level locking enabled: 1
Unexpected mongo exit code 48. Restarting.
db level locking enabled: 1
Unexpected mongo exit code 48. Restarting.
db level locking enabled: 1
Unexpected mongo exit code 48. Restarting.
Can't start Mongo server.
MongoDB exited because its port was closed, or was already
taken by a previous instance of MongoDB
Check for other processes listening on port 3001
or other Meteor instances running in the same project.
root@raspberry-pi:/var/www/unit22#
Nothing is running on port 3001 and shutting down mongod just tells me it wasn't running. I believe it's because meteor is trying to run it's own mongod instance instead of connecting to the version I compiled. I'll let you know if I find the fix!
If meteor cannot launch mongod
correctly, then try to run your own, and ask meteor to connect to it using the MONGO_URL
constant. To do so, launch it like this :
$ MONGO_URL=mongodb://127.0.0.1:27017/<db's name (test for example)> meteor
I found that running the mongo console was failing to connect. I got rid of the lock file and repaired and restarted but the console still can't connect. I tried running meteor anyways and this was the result.
root@raspberry-pi:/var/www/unit22# MONGO_URL=mongodb://127.0.0.1:27017/test meteor
=> Running Meteor from a checkout -- overrides project version (Meteor 1.0)
[[[[[ /var/www/unit22 ]]]]]
=> Started proxy.
Failed to record package usage. /
(This error is hidden when you are not running Meteor from a checkout.)
Error: DDP connection timed out
at Object.Future.wait (/opt/meteor/dev_bundle/lib/node_modules/fibers/future.js:326:15)
at new ServiceConnection (/opt/meteor/tools/service-connection.js:85:17)
at connectToPackagesStatsServer (/opt/meteor/tools/stats.js:167:14)
at /opt/meteor/tools/stats.js:87:18
- - - - -
at packages/ddp/stream_client_nodejs.js:135
at _.extend.withValue (packages/meteor/dynamics_nodejs.js:56)
at packages/meteor/timers.js:6
at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108)
minifiers: updating npm dependencies -- uglify-js, css-parse, css-stringify...
webapp: updating npm dependencies -- connect, send, useragent...
mongo: updating npm dependencies -- mongodb...
http: updating npm dependencies -- request...
compileLess: updating npm dependencies -- less...
=> Started your app.
=> App running at: http://localhost:3000/
Unfortunately the browser isn't receiving any data, so it might as well not be running. Not sure if I should try recompiling mongo or just give up.
Hi Tom - thanks so much for putting this together. You're helping me make beer with meteor :+1:
Here's what happens when building: https://gist.github.com/archonic/f9ed03bbf7644bd2fdb9