npm 更新检查失败

sag*_*mbu 15 npm software-installation 17.04

我实际上是在尝试在我的 ubuntu 17.04 上安装 nodejs 和 npm。我从 nodejs.org 下载了 linux 版本并为 node 和 nodejs 创建了软链接。检查 nodejs 的版本后,它会显示我安装的版本,我很好。

现在我尝试为 npm 做同样的事情。我试图为 npm 创建软链接。

 sudo ln -sf /mnt/7A46BE1454633621/softwares/programming/frontend/nodejs/lib/node_modules/npm/bin/npm 
    /usr/bin/npm
Run Code Online (Sandbox Code Playgroud)

我不知道我创建的链接是否正确。但是在运行npm -v命令时,我看到了 5.0.3 版本,这正是我要安装的版本。显示了版本,但在它的正下方我看到了这样的东西。

5.0.3
npm update check failed                 ?
?           Try running with sudo or get access           ?
?          to the local update config store via           ?
? sudo chown -R $USER:$(id -gn $USER) /home/sagar/.config 
Run Code Online (Sandbox Code Playgroud)

小智 15

我的 npm 版本是 5.0.3,当我使用任何 npm 命令时,我遇到了同样的问题:

npm 错误信息

该命令工作正常,但此代码无缘无故地不断显示。我已使用以下命令从 5.0.3 更新到 5.2.0:

sudo chown -R $USER:$(id -gn $USER) /home/sagar/.config
Run Code Online (Sandbox Code Playgroud)

npm install -g npmnpm i -g npm

现在 npm 工作正常。


Ant*_*nto 5

对我来说完全相同的问题,但似乎与版本无关(我使用的是 npm 5.5.1)。修复权利对~/.config我来说是个窍门:

sudo chown -R $USER:$(id -gn $USER) ~/.config
Run Code Online (Sandbox Code Playgroud)

我想这与~/.config/configstore/update-notifier-npm.json.


Tre*_*her 5

不要使用chown错误消息中提供的命令。该路径~/.config被许多应用程序使用,并且是用于存储配置信息的标准路径。不建议在那里更改组权限。最好只更改所需的路径,例如:

sudo chown -R $USER ~/.config/configstore
Run Code Online (Sandbox Code Playgroud)

特例:Docker

出现此错误的常见情况是使用 Docker 之类的东西(尤其是通过安装自己的家)。考虑设置环境变量,如NPM_CONFIG_CACHEXDG_CONFIG_HOME。第一个设置您的缓存路径,最后一个设置您的配置存储路径。我不会使用.config主目录中的文件夹来避免文件所有权问题。但是使用缓存有助于像 NPM 这样的服务节省带宽。尽量避免在每次构建时过度下载并使用类似的东西(但要检查类似的目标/tmp是否有足够的磁盘空间):

test -d /tmp/$USER/cache || mkdir -p /tmp/$USER/cache
docker run \
  -v /tmp/$USER:/tmp/$USER \
  -e "NPM_CONFIG_CACHE=/tmp/$USER/cache/npm" \
  -e "XDG_CONFIG_HOME=/tmp/$USER/cache/" \
  ...
Run Code Online (Sandbox Code Playgroud)