EBUSY on unlink from "npm install -g oauthd" - npm

So, I have an open issue at the oauthd repo: Issue but the activity in their issue list looks very sporadic.
I'm trying to execute "npm install -g oauthd" from a MINGW32 shell.
I'm being told by the console that I am doing that wrong.
abates#MACHINE /c/dev/tools
$ npm -v
1.4.28
abates#MACHINE /c/dev/tools
$ npm install -g oauthd
npm ERR! Error: EBUSY, unlink 'C:\Users\abates\AppData\Roaming\npm\node_modules\
oauthd\node_modules\hiredis'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR! <http://github.com/npm/npm/issues>
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodej
s\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "oauthd"
npm ERR! cwd c:\dev\tools
npm ERR! node -v v0.10.32
npm ERR! npm -v 1.4.28
npm ERR! path C:\Users\abates\AppData\Roaming\npm\node_modules\oauthd\node_modul
es\hiredis
npm ERR! code EBUSY
npm ERR! errno 10
abates#MACHINE /c/dev/tools
$
I couldn't find any useful information about the "EBUSY, unlink..." error that seems to have triggered the crash.

To resolve the "EBUSY, unlink..." error, I upgraded node package manager to 2.1.6.
The race condition was eliminated
Check your PATH.
Make sure that
C:\<install location of node>
loads before
\user\<user>\AppData\npm
$ cd C:\<install location of node>
$npm install npm#2.1.6
$npm -v
2.1.6
$npm install oauthd -g
\
Edit
Note that for my particular installation task (oauthd), there are dependencies on hiredis and dtrace-provider that are failing to build on my machine.
My hunch is that it is ignoring the availability of MSBuild.exe in the PATH and trying to load my MSBuild location directly from the registry but the error descriptions do not lead one to a natural next step other than trial and error.
With that:
Docker to the rescue.
docker#boot2docker:~$ docker run -d --name redis - p 6379:6379 dockerfile/redis
docker#boot2docker:~$ docker run -d --name oauthd -p 443:443 -p 6284:6284 -e oauthd_host_url=http://auth.domain:6284 --link redis:redis vinc/oauthd-instance
works like a champ.
If you aren't using docker, you're doing it wrong.

Related

error while installing npm error for version

I am trying to install npm to the code i am facing the below issue.
Command i try : npm install
or
npm -g install npm
npm cache clean -f
npm install -g n
below is the error:
sh: patch-package: command not found
npm ERR! code 127
npm ERR! path XXXX
npm ERR! command failed
npm ERR! command sh -c patch-package
If you're using yarn you can run yarn patch-package <args>
Otherwise ./node_modules/.bin/patch-package <args>
Or add ./node_modules/.bin to your $PATH environment variable (I prefer doing this)

Using a fork npm package in docker image

I am using a pretty cool npm package react-awesome-query-builder inside one of my docker compose image. However, there is a small bug that I was able to find an answer for. I forked the package, made the change and pushed the changes up to my fork. I then tried modify my package.json to use my forked package
"react-awesome-query-builder": "billtlee/react-awesome-query-builder#Material-UI-subgroups",
However, when I try to docker-compose build the package, I am getting the following error:
npm ERR! code ENOENT
npm ERR! syscall spawn git
npm ERR! path git
npm ERR! errno -2
npm ERR! enoent Error while executing:
npm ERR! enoent undefined ls-remote -h -t ssh://git#github.com/billtlee/react-awesome-query-builder.git
npm ERR! enoent
npm ERR! enoent
npm ERR! enoent spawn git ENOENT
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
I also tried to use the package on codesandbox.io, but it was complaining as well. Does anyone know what I am doing wrong?
Thanks in advance!
Figured out that it's because of git. I added
RUN apk update
RUN apk add git
into my dockerfile and it's now working. Still want to know if anyone knows how to use a forked package in codepen.
I ran into the same issue when using apt-get. I had to use the -y flag as well as I was getting this error when building the docker container without the -y flag link:
#5 3.783 After this operation, 43.1 MB of additional disk space will be used.
#5 3.783 Do you want to continue? [Y/n] Abort.
------
executor failed running [/bin/sh -c apt-get update && apt-get install git libxml2-utils]: exit code: 1
So:
RUN \
apt-get update && \
apt-get install -y git

NPM completely broken and won't reinstall after failed upgrade

Mac Catalina 10.15.6
I already had npm installed. I wanted to upgrade so I ran the following.
npm install -g npm
Below is the output:
$name#$names-MacBook-Pro desktop % npm install -g npm
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm ERR! code EEXIST npm ERR! syscall symlink npm ERR! path
../../../lib/node_modules/npm/man/man1/npm-bin.1 npm ERR! dest
/usr/local/share/man/man1/npm-bin.1 npm ERR! errno -17 npm ERR!
EEXIST: file already exists, symlink
'../../../lib/node_modules/npm/man/man1/npm-bin.1' ->
'/usr/local/share/man/man1/npm-bin.1' npm ERR! File exists:
/usr/local/share/man/man1/npm-bin.1 npm ERR! Remove the existing file
and try again, or run npm npm ERR! with --force to overwrite files
recklessly.
npm ERR! A complete log of this run can be found in: npm ERR!
/Users/$name/.npm/_logs/2020-10-04T14_41_02_611Z-debug.log
Now all NPM commands fail.
zsh: command not found: npm
Everything from:
npm -v
sudo npm install npm -g
I just used home brew to upgrade NPM and it deleted and reinstalled all the necessary files.
This generally works for me on Mac:
brew upgrade
brew cleanup
brew install npm
(note you'll need the xcode tools if you don't have it - try xcode-select --install or check out this answer.)
Now, try npm install again and see if that changes anything.
Also, see this potentially related answer.

Why does Fabric Composer npm-install fail for my Ubuntu setup?

I'm a newbie to npm and hyperledger fabric-composer
Question: What is the problem with my setup? What is the strategy to investigate and solve such errors?
What I did:
Setup Ubuntu Linux 14.04 LTS (64-bit)
Installing prerequisites using the script provided on
https://fabric-composer.github.io/tasks/prerequisites.html
Executing npm install causes (don't know if this info is sufficient):
[...]
File "/usr/local/lib/python2.7/dist-packages/docker/transport/ssladapter.py", line 22, in <module>
urllib3.connection.match_hostname = match_hostname
AttributeError: 'module' object has no attribute 'connection'
npm ERR! Linux 4.4.0-31-generic
npm ERR! argv "/home/mjh/.nvm/versions/node/v4.6.2/bin/node" "/home/mjh/.nvm/versions/node/v4.6.2/bin/npm" "install"
npm ERR! node v4.6.2
npm ERR! npm v4.1.2
npm ERR! code ELIFECYCLE
npm ERR! getting-started#1.0.0 install: `scripts/download-hyperledger.sh && scripts/start-hyperledger.sh && npm run deployNetwork`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the getting-started#1.0.0 install script 'scripts/download-hyperledger.sh && scripts/start-hyperledger.sh && npm run deployNetwork'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the getting-started package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! scripts/download-hyperledger.sh && scripts/start-hyperledger.sh && npm run deployNetwork
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs getting-started
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls getting-started
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/mjh/sample-applications/packages/getting-started/npm-debug.log
See link for detailed npm-debug.log file
https://gist.github.com/mjh-halder/9fe473b44f0a731c996bbc5754011013
I've seen this problem before on trusty (14.04) and relates to an out of date urllib3 library for python, which is used by docker compose.
depending on which version of pip you have installed you can update the urllib library as follows
pip install --upgrade pip
pip install -U urllib3
You are missing permissions, so you need to do sudo npm-install ...
The issue here is related to the last part of the installation script - this is the part that installs the docker-compose tool. Testing this today on a clean Ubuntu 14.04 LTS image, that was the cause.
I'd recommend installing docker-compose following the instructions on the docker site. (https://docs.docker.com/compose/install/)
In effect this is
curl -L "https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(uname -s)-$(uname -m)" -o
chmod +x /usr/local/bin/docker-compose
Run the docker-compose --version to check it's installed correctly
$ docker-compose --version
docker-compose version: 1.10.0
Then run the rest of the Fabric Composer scripts as before.
We're updating the script - but this should get you going.

npm install -g yo command gives -> ERR! yo#1.1.0 postinstall: `node scripts/doctor.js`

I just tried to do a npm install but get this error about doctor,js at the end. Do I need to worry about it?
npm install -g yo
.
.
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 200 https://registry.npmjs.org/fstream/-/fstream-0.1.25.tgz
/usr/local/bin/yo -> /usr/local/lib/node_modules/yo/cli.js
> yo#1.1.0 postinstall /usr/local/lib/node_modules/yo
> node scripts/doctor.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! yo#1.1.0 postinstall: `node scripts/doctor.js`
npm ERR! `sh "-c" "node scripts/doctor.js"` failed with 1
npm ERR!
npm ERR! Failed at the yo#1.1.0 postinstall script.
npm ERR! This is most likely a problem with the yo package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node scripts/doctor.js
npm ERR! You can get their info via:
npm ERR! npm owner ls yo
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 3.11.0-12-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "yo"
npm ERR! cwd /etc/libvirt/qemu
npm ERR! node -v v0.10.15
npm ERR! npm -v 1.2.18
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /etc/libvirt/qemu/npm-debug.log
npm ERR! not ok code 0
EDIT____________--
for some reason node -v outputs nothing in terminal
I have the latest node installed:
WebstormProjects # sudo apt-get install node
Reading package lists... Done
Building dependency tree
Reading state information... Done
node is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 143 not upgraded.
The solution at this link has worked for me:
http://plaidzooks.tumblr.com/post/36894116867/using-node-js-on-debian-ubuntu-systems
Ubuntu comes with a package that automatically creates a link so the command 'nodejs' can be invoked as 'node' only by creating a link.
sudo apt-get install nodejs-legacy
And that got Yeoman working.
Likewise I had this same problem (albeit on a Mac). I uninstalled and upgraded node to the latest version (v0.10.24) but without success.
The symlink fix did work for me, although with a slight tweak:
sudo ln -s /usr/local/bin/node /usr/bin/node
I believe this may be due to the way which node was installed on your system. Apparently, sometimes when installing Node via a package manager, the linked binary is nodejs, (thus nodejs _command_ is the command that works on your machine, not the much more common node _comamand_. You can either re-install Node (the latest version is now 0.10.24) from nodejs.org, or try this solution from this related issue:
For anyone wishing to still use their OS's package of node the simple solution for this is to determine where node is installed on your OS and then create a symbolic link.
For example I had the issue on ubuntu and the install directory is /usr/bin. To create the symlink you can run:
sudo ln -s /usr/bin/nodejs /usr/bin/node
in windows you can use the mklink command.. Be sure to open the command prompt as a administrator
You have to install nodejs in this way:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
I had this same error on a clean Ubuntu 13.10 install and no amount of sym linking (node > nodejs) or installing/uninstalling helped me.
I don't have a deep enough understanding of the node environment to troubleshoot it properly but I was able to install Yeoman globally by cloning the repo and removing the postinstall check from package.json.
If anyone else want's to try this solution:
Clone Yeoman..
cd ~
git clone https://github.com/yeoman/yo
Edit the package.json..
nano yo/package.json
.. to remove these lines..
"scripts": {
"test": "grunt",
"postinstall": "node ./scripts/doctor",
"postupdate": "node ./scripts/doctor"
},
Then, install it using npm..
cd yo
npm install -g
If you want to clean up you can remove the Yeoman repo..
cd ..
rm -R yo/
Obviously your mileage may vary but it's working fine for me so far.
I also noticed I was able to successfully run the doctor.js script independent of the installation process. No idea why it was failing so hard in the first place..
On Ubuntu 14.04, I tried both installing the legacy package (per Antonio's answer) and creating the symlink manually (per Stephen's answer). Neither worked. The Ubuntu package has version 0.10.25 of node.js, but Yeoman seems to require a newer version.
After installing the latest version of node.js from NodeSource (currently v6.9.1), I was able to install Yeoman using npm install -g yo .
To solve this problem you need to install the package nodejs-legacy.
sudo apt-get install nodejs-legacy