MongoDB - NodeJS

Hi,

I recently bought a vero 4K and I wanted to install MongoDB and NodeJS.

Unfortunately, for both of temp,I am not able to install the suitable version.

If it can help for “uname -a”: SMP Sun Oct 29 00:34:17 UTC 2017 aarch64 GNU/Linux
and the output for “arch”: aarch64

Has anyone already installed on of thoses on a vero4K?

Thanks for you help.

Charles

You want the armhf version, not aarch64. The kernel is 64-bit but the userland is 32-bit.

There should be packages available from the Node repositories that will meet your requirements.

Sam

It seems that MongoDB only provides i386 and amd64 packages in its repository.

http://repo.mongodb.org/apt/debian/dists/jessie/mongodb-org/3.4/Release

Interesting. From:

NOTE August 24th, 2016: I was informed today that the JIRA ticket listed below in the last note has been resolved, and that official 64-bit ARM support will be coming in v3.4. It looks like you can find current binaries in the comments of the JIRA ticket here It does appear that only a 64-bit version is available (and my only ever be available) so take this into account if you’re targeting a platform that is only 32-bit.

Also some information here: http://andyfelong.com/2016/01/mongodb-3-0-9-binaries-for-raspberry-pi-2-jessie/

The JIRA ticket contains a post, dated Aug 23 2016 :

ARM support will apply for Ubuntu 16.04 64-bit on ARMv8 or newer.

I checked the official MongoDB download page and that’s still the only ARM version avalable.

I’m a but confused.
Maybe I should have created separated threads for mongoDB and Node.

If I understand correctly, regarding MongoDB for the moment there is no package that I can use.
Is there any other way to build the sources directly for example?

For Node, just tried to follow this guide:
http://nodesource.com/blog/installing-node-js-tutorial-debian-linux/

unfortunately When I try to get node version I encounter the following message:

osmc@vero4k:~$ node -v
-bash: /usr/local/bin/node: cannot execute binary file: Exec format error
osmc@vero4k:~$ sudo node -v
/usr/local/bin/node: 1: /usr/local/bin/node: Syntax error: “)” unexpected

I don’t understand what’s happening.

There’s a thread that Sam linked to. Building it yourself seems to be problematic. The best you can probably do is to use the binaries he’s built, though he’s only on v3.0.x.

Regarding nodejs, what’s the output of

ls -l /usr/local/bin/node
file /usr/local/bin/node
dpkg --print-architecture

(You might need to install the file command using sudo apt-get install file.)

Here is the output:

osmc@vero4k:~$ ls -l /usr/local/bin/node
-rwxr-xr-x 1 root staff 33010964 Nov 19 10:29 /usr/local/bin/node
osmc@vero4k:~$ file /usr/local/bin/node
/usr/local/bin/node: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=fa0d445165ff7c1732fe4e73cda83b411774fc3a, not stripped
osmc@vero4k:~$ dpkg --print-architecture
armhf

There’s your problem. It’s a 32-bit Intel executable.

You need to remove the package and start again. You need to check that you’re installing the armhf version of nodejs.

How can I force the use of the armhf package?

I assume you used the installation script, so I’d guess that it decided to use i386 instead of armhf.

I think the easiest option is simply to download the package directly and install it. With luck, it’ll work without further configuration work.

wget https://deb.nodesource.com/node_6.x/pool/main/n/nodejs/nodejs_6.12.0-1nodesource1_armhf.deb
sudo dpkg -i nodejs_6.12.0-1nodesource1_armhf.deb

Edit: Better still add this line to /etc/apt/sources.list:

deb https://deb.nodesource.com/node_6.x jessie main

Then

sudo apt-get update
sudo apt-get install nodejs

You’ll then get updates whenever they occur and it will better deal with the forthcoming upgrade to Debian stretch.

Hi,

I just wanted to give you a quick update.

I succeeded install node using the source mentioned above.

Regarding NodeDB, using Sam’s link (http://andyfelong.com/2016/01/mongodb-3-0-9-binaries-for-raspberry-pi-2-jessie/) it seems to work fine as well.

Many thanks for you help guys.