Installing Phonegap on Ubuntu 13.10 - node.js

I am completely stuck.
I have tried using the guide on http://www.jakenovak.com/installing-phonegap-on-ubuntu-13-10-with-local-android-package-building/
Then I tried using the latest ppa via:
sudo apt-get update
sudo apt-get install -y python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
but whatever I attempt to install phone gap via
sudo npm install -g phonegap
or
sudo npm install -gf phonegap
I get the error:
npm http GET http://registry.npmjs.org/phonegap
npm http 304 http://registry.npmjs.org/phonegap
npm http GET http://registry.npmjs.org/phonegap/-/phonegap-3.3.0-0.19.5.tgz
npm http 200 http://registry.npmjs.org/phonegap/-/phonegap-3.3.0-0.19.5.tgz
npm ERR! TypeError: Arguments to path.resolve must be strings
npm ERR! at Object.exports.resolve (path.js:313:15)
npm ERR! at Object.exports.relative (path.js:370:20)
This seems like an npm error but I am not sure how to resolve it.
Any help would be very welcome.
Thanks,
Fido

Okay I managed to figure this out. It was a duplication error on my part. I had two versions of npm installed. Version 1.1 etc which kept producing the error, when I switched to the correct version 1.3.24 this error resolved itself. I am guessing that simply upgrading npm resolves this issue.

Related

npm install failes with ERR! tar.unpack (raspi)

I try to install Selenium Code Line Runner following this tutorial
https://www.seleniumhq.org/selenium-ide/docs/en/introduction/command-line-runner/
I managed to sudo apt-get install nodejs and sudo apt-get install npm
but I failed with installing selenium-side-runner via sudo npm install -g selenium-side-runner
I get the following error:
npm ERR! tar.unpack ...
See also: error messages
I stumbled upon some tricks as follows:
Installation to SD Card (Raspi)
Card is not full
sudo npm cache clean and retry didn't work
sudo rm -r /usr/local/lib/node_modules/selenium-side-runner and retry didn't work
Any other ideas?
An update of NPM did it!
sudo npm install -g npm#latest

npm install fails with apt-get update error -The following signatures were invalid: XYZ

I was trying to upgrade npm:
npm install npm -g
Which seemed to show that I was installing the newest version. However, when I ran npm -v it still showed an older version. So I ran which npm, changed to that directory and ran:
rm -rf npm
Now my npm installation is gone completely. How do I get it back? The npm install seems to only be a part of node, but I already have node version 9.11.2.
sudo apt-get update
W: GPG error: http://extras.ubuntu.com/ubuntu precise Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1225425345345
I am unable to figure out how to fix this issue. I would like to restore my installation of npm version 6.4.1 and node version 9.11.2.
installing node and npm via n helped me come out of this issue.not bothering about package manager errors-
sudo apt-get install npm
sudo npm i -g n
sudo n 9
sudo npm i -g npm

is there any version dependency issues exist among nodejs, npm and sailsjs?

I followed these steps to build my first sailsjs MVC application:
sudo apt-get install nodejs
nodejs -v returns v0.10.25
sudo apt-get install npm
npm -v returns 1.3.10
sudo npm install -g sails
After that i got following errors:
npm http GET https://registry.npmjs.org/sails
npm http 304 https://registry.npmjs.org/sails
npm WARN engine sails#0.11.3: wanted: {"node":">= 0.10.0","npm":">= 1.4.0"} (current: {"node":"v0.10.25","npm":"1.3.10"})
> sails#0.11.3 preinstall /usr/local/lib/node_modules/sails
> node ./lib/preinstall_npmcheck.js
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
npm ERR! weird error 127
npm ERR! not ok code 0
Try sudo apt-get install nodejs-legacy , it seems debian maintainers renamed the package to that.
Also you are getting the warning in sails, because you have an unmet dependency version.
If you check the error, where it states which version of npm it needs, it says
"npm":">= 1.4.0" but you have the 1.3.10 version on your system. You need 1.4.0 or newer.
Try
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
To see if that updates the npm
If that does not work, try reinstalling node with the repositories from nodeSource
sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
Change the 4.x to the desired node version, but i recommend you to install the latest one which is 4.1.0 (I know it works with sails)
I have ubuntu so i can't check, but that should work.
Also check the link below if none of the above worked (Not sure if your question can be considered duplicate)
Cannot install packages using node package manager in Ubuntu

Fail to install twitter bootstrap node.js dependencies (on Ubuntu)

I've downloaded Bootstrap 3.1.1 source files from the official website and I am getting errors when attempting to run npm install in the bootstrap/ directory when following the bootstrap setup directions from the site.
I'm on a Ubuntu 14.04 platform with npm 1.3.10 installed from distribution repositories, and could successfully run npm install -g grunt-cli without a problem.
When I try to sudo npm install from the bootstrap directory, however, I see a long string of successful GET messages, which then terminate with this error:
npm http 304 https://registry.npmjs.org/proto-list
> phantomjs#1.9.7-4 install /home/cboettig/Documents/code/thirdparty/bootstrap/node_modules/grunt-contrib-qunit/node_modules/grunt-lib-phantomjs/node_modules/phantomjs
> node install.js
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
npm ERR! weird error 1
npm ERR! not ok code 0
I've consulted the README.Debian mentioned in the warning, which only seems to say that Debian platforms need to call nodejs instead of node to avoid namespace collisions. I'm unsure how to verify if that is a problem.
I found the error message, weird error 1 to be not particularly helpful either.
How do install this project cleanly without errors?
Run these commands
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install python-software-properties python g++ make nodejs
to install node.js from repository.
install nodejs-legacy, this fix the error

"message failed to fetch from registry" while trying to install any module

I can't install any node module from the npm.
npm install socket.io
The above command resulted to below output, it is not able to install socket.io
npm http GET https://registry.npmjs.org/socket.io
npm ERR! Error: failed to fetch from registry: socket.io
npm ERR! at /opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:139:12
npm ERR! at cb (/opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:32:9)
npm ERR! at Request._callback (/opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:137:18)
npm ERR! at Request.callback (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:109:22)
npm ERR! at Request.<anonymous> (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:198:58)
npm ERR! at Request.emit (events.js:88:20)
npm ERR! at ClientRequest.<anonymous> (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:195:10)
npm ERR! at ClientRequest.emit (events.js:67:17)
npm ERR! at CleartextStream.<anonymous> (http.js:1134:11)
npm ERR! at CleartextStream.emit (events.js:67:17)
npm ERR! You may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-#googlegroups.com>
npm ERR!
npm ERR! System Linux 2.6.18-194.el5
npm ERR! command "node" "/opt/node0610/bin/npm" "install" "socket.io"
npm ERR! cwd /opt/node0610/lib/node_modules
npm ERR! node -v v0.6.10
npm ERR! npm -v 1.1.0-3
npm ERR! message failed to fetch from registry: socket.io
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /opt/node0610/lib/node_modules/npm-debug.log
npm not ok
My NPM Version is :
[applmgr#dev node_modules]$ npm --version
1.1.0-3
My NodeJS Version is :
[applmgr#dev node_modules]$ node --version
v0.6.10
I had this issue with npm v1.1.4 (and node v0.6.12), which are the Ubuntu 12.04 repository versions.
It looks like that version of npm isn't supported any more, updating node (and npm with it) resolved the issue.
First, uninstall the outdated version (optional, but I think this fixed an issue I was having with global modules not being pathed in).
sudo apt-get purge nodejs npm
Then enable nodesource's repo and install:
curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs
Note - the previous advice was to use Chris Lea's repo, he's now migrated that to nodesource, see:
https://chrislea.com/2014/07/09/joining-forces-nodesource/
https://nodesource.com/blog/chris-lea-joins-forces-with-nodesource
From: here
https://github.com/isaacs/npm/issues/2119
I had to execute the command below:
npm config set registry http://registry.npmjs.org/
However, that will make npm install packages over an insecure HTTP connection. If you can, you should stick with
npm config set registry https://registry.npmjs.org/
instead to install over HTTPS.
I'm on Ubuntu. I used apt-get to install node. Npm was not included in that package, so it had to be installed separately. I assumed that would work, but apparently the npm version in the Ubuntu distribution was outdated.
The node wiki has this instruction:
Obtaining a recent version of Node or installing on older Ubuntu and other apt-based distributions may require a few extra steps. Example install:
sudo apt-get update
sudo apt-get install -y python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
After that, npm was already included and worked perfectly.
For me, it's usually a proxy issue, and I try everything:
npm config set registry http://registry.npmjs.org/
npm config set strict-ssl false
npm config set proxy http://myusername:mypassword#proxy.us.somecompany:8080
npm config set https-proxy http://myusername:mypassword#proxy.us.somecompany:8080
set HTTPS_PROXY=http://myusername:mypassword#proxy.us.somecompany:8080
set HTTP_PROXY=http://myusername:mypassword#proxy.us.somecompany:8080
export HTTPS_PROXY=http://myusername:mypassword#proxy.us.somecompany:8080
export HTTP_PROXY=http://myusername:mypassword#proxy.us.somecompany:8080
export http_proxy=http://myusername:mypassword#proxy.us.somecompany:8080
npm --proxy http://myusername:mypassword#proxy.us.somecompany:8080 \
--without-ssl --insecure -g install
You also need to install software-properties-common for add-apt-repository to work.
so it will be
sudo apt-get purge nodejs npm
sudo apt-get install -y python-software-properties python g++ make software-properties-common
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
One thing that has worked for me with random npm install errors (where the package that errors out is different under different times (but same environment) is to use this:
npm cache clean
And then repeat the process. Then the process seems to go smoother and the real problem and error message will emerge, where you can fix it and then proceed.
This is based on experience of running npm install of a whole bunch of packages under a pretty bare Ubuntu installation inside a Docker instance. Sometimes there are build/make tools missing from the Ubuntu and the npm errors will not show the real problem until you clean the cache for some reason.
This problem is due to the https protocol, which is why the other solution works (by switching to the non-secure protocol).
For me, the best solution was to compile the latest version of node, which includes npm
apt-get purge nodejs npm
git clone https://github.com/nodejs/node ~/local/node
cd ~/local/node
./configure
make
make install
There are now official instructions from joyent (primary nodejs backer). For Ubuntu:
sudo apt-get purge nodejs npm
curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs
For other unix distributions, osx and windows see the link. Note this will install both node and npm.
The only thing that worked for me on Elementary OS Luna, a Ubuntu Fork. I am on x86 architecture. I tried all the answers here but finally decided to install it from source.
First, make sure its not installed using the package manager:
sudo apt-get purge nodejs npm -y
I went to the download page to lookup the latest source & download it, http://nodejs.org/download/. You can use curl, wget or your browser to get it:
wget http://nodejs.org/dist/v0.10.34/node-v0.10.34.tar.gz
tar -xvf node-v0.10.34.tar.gz
cd node-v0.10.34
./configure
make
sudo make install
The make might take a while. When done, you should have node and npm installed and working in your /usr/local/bin directory which should be already on your path. You should verify where it lives:
which npm node
I also had to change the permissions to get it to work:
sudo chown -R $USER /usr/local
If it didn't work check your path:
echo $PATH
Note that installing it this way, it will not be managed by apt-get package manager. Cheers!
Recently I had this problem after upgrading node.js (and inevitably npm) to the newest version:
> npm --version
< 2.0.0-alpha-5
Note: I didn't ask for an unstable version, I just got it after brew install npm on OSX.
Downgrading npm fixed the problem for me.
The easiest way to install the stable npm is npm install -g npm but it might not work under some circumstances and downgrade of node.js might be needed then.
The below method worked for me, Kudos to github user : midnightcodr
Make sure You remove any nodejs/npm packages already installed.
sudo apt-get purge nodejs
sudo apt-get purge npm
Now Install Node js using the command below( Thanks to midnightcodr on github)
curl -L https://raw.github.com/midnightcodr/rpi_node_install/master/setup.sh | bash -s 0.10.24
Note that you can invoke node with command node and not nodejs.
Once node is installed , Install npm
sudo apt-get install npm
It could be that the npm registry was down at the time or your connection dropped.
Either way you should upgrade node and npm.
I would recommend using nave to manage your node environments.
https://npmjs.org/package/nave
It allows you to easily install versions and quickly jump between them.
for raspberry pi I found and modified a solution I found
here is what I ran
sudo su -
cd /opt
wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-arm-pi.tar.gz
tar xvzf node-v0.10.28-linux-arm-pi.tar.gz
ln -s node-v0.10.28-linux-arm-pi node
chmod a+rw /opt/node/lib/node_modules
chmod a+rw /opt/node/bin
echo 'PATH=$PATH:/opt/node/bin' > /etc/profile.d/node.sh
the only mod I did was change all 10.25 to 10.28 which was the latest linux-arm-pi at the time
#therefromhere's answer is the best one. However Node versions have moved ever onwards and upwards, and the versioning was complicated by the remerge of io.js. Following the steps in his answer, you will end up with Node version 0.10.25 - not the most recent version.
You should still purge any existing node/npm packages with
sudo apt-get purge nodejs npm
and then go and look at the nodesource deb install page at https://github.com/nodesource/distributions#debinstall.
All Node.js versions are listed on the above page with the Linux commands to install them. And these packages will work on both Debian and Ubuntu.
P.S. If you want to run Node v4.4 or higher on Ubuntu Precise or Debian Wheezy, you should review the information about running on older distros.
P.P.S. If your apt-get is failing, the script will not complete (Google references were failing my apt-get update). You should see messages about the NodeSource signing key being added to your keyring and a final message instructing you to Run 'apt-get install nodejs' to install Node.js.
P.P.P.S. npm is installed with node. Once installed, you can update to the latest npm with sudo npm install npm -g
For people having this issue from a company network which implement a security system that use a mitm for https traffic, you can configure npm to use your company certificate.
npm config set cafile 'path/to/certif-file'
See https://docs.npmjs.com/cli/v9/using-npm/config#cafile
But don't use configs like strict-ssl=false or setting the registry to http://. This is not a secure way of working.

Resources