【问题标题】:How to run a global npm executable when the shell has a program with the same name当shell有同名程序时如何运行全局npm可执行文件
【发布时间】:2019-01-29 04:33:13
【问题描述】:

我已经在我的 Ubuntu 18.04 系统上安装了npm-check-updatesnpm install -g npm-check-updatesThis package 要求您在命令行中使用 $ ncu 运行它。

但是当我尝试使用ncu 运行它时,shell 只会执行一个不同的天气更新程序,该程序也使用ncu 命令运行。

有没有办法指定您正在尝试专门运行 npm 可执行文件?谢谢。

我想运行 npm 可执行文件不是位于/usr/local/bin/ncu的二进制文件

【问题讨论】:

  • 尝试“which ncu”并使用你想要的可执行文件的绝对路径
  • which ncu 仅显示 shell 执行的常规二进制文件。我想运行 npm 全局包,而不是显示为 which ncu 的二进制文件

标签: javascript linux bash ubuntu npm


【解决方案1】:

运行whereis 查找二进制图像的位置。

⇒  whereis ncu
ncu: /usr/bin/ncu /usr/local/bin/ncu

例如,在我的电脑中有两个ncus,分别位于/usr/bin/ncu/usr/local/bin/ncu

然后你可以通过它的完整路径运行它:

⇒  /usr/bin/ncu      
No package.json
...

为方便起见,您可以在 ~/.bashrc~/.zshrc 中为其定义别名,例如:

alias ncu2="/usr/bin/ncu"

【讨论】:

  • whereis 不显示 npm 全局可执行文件,这是我想要运行的。我不想在/usr/bin/ncu 上运行二进制文件,而且我不想更改或删除这个二进制文件。
  • 其实我提到的/usr/bin/ncu就是我用npm install -g安装的ncu。因此,如果您在 whereis 中看不到它,那么二进制文件不在您的 $PATH 环境变量中。从那时起,我在笔记本电脑上使用 fedora,我无法告诉您二进制文件在 ubuntu 中的确切位置。不过,如果你找到它,你可以通过它的完整路径或别名来调用它。
  • 不,事实并非如此。我在我的/usr/local/lib/node_modules/ncu 文件夹中找到了节点可执行文件,但我无法通过它的完整路径运行它。 (node /usr/local/lib/node_modules/ncu/index.js 等不起作用)
  • 你的系统上有node吗?我意识到在 ubuntu 上还有一个名为 node 的包。试试nodejs /usr/lib/node_modules/npm-check-updates/bin/ncu,如果是这样的话,它应该可以工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多