Debian:设置具有全局可访问根的节点路径

Debian:设置具有全局可访问根的节点路径

我已经下载了NodeJS安装程序并将其放在里面/home/deploy/nodejs。我正在尝试设置它的路径,但没有成功。我以 root 身份登录,并且我也想以 root 身份进行访问nodejs和访问。npm为此,我尝试添加/root/.bashrc以下内容:

PATH=/usr/bin/node:/home/deploy/nodejs/bin/
PATH=/usr/bin/npm:/home/deploy/nodejs/bin/

之后我尝试了nodenpm,但没有一个成功。我究竟做错了什么?

里面的文件/home/deploy/nodejs/bin是node、node_modules和npm。我尝试了 .deb 安装程序,但这不是安装 npm,而是安装 Nodejs,所以我必须执行所有这些操作...:-(

更新

npm
/home/deploy/nodejs/bin/npm: 1: /home/deploy/nodejs/bin/npm: dirname: not found
/home/deploy/nodejs/bin/npm: 2: exec: /node: not found

答案1

1)您正在覆盖破坏系统大部分内容的路径。正确的行是:

PATH="$PATH:/home/deploy/nodejs/bin"

这样,您就可以将某些内容附加到 PATH 中,而不是覆盖它。此外,路径由目录(而不是文件)组成,并且/usr/bin应该已经在其中,使得第一部分无用。

2)“您是否尝试过将其关闭然后再次打开?” -.bashrc仅在登录时或使用时加载source ~/.bashrc。如果您想在系统范围内更改路径,则应该在/etc/profile.

3)另外,请确保有一个/home/deploy/nodejs/bin/node文件,并且它是可执行的(如果你正确安装了它,那么肯定是这样,但你可以运行chmod a+x /home/deploy/nodejs/bin/node /home/deploy/nodejs/bin/npm以更加确定)

答案2

我所做的如下:

  1. 从以下地址下载正确的版本(在我的例子中是适用于 Raspberry Pi 3b 的 ARMv7)NodeJS 站点
  2. 在 /opt/node 中解压(使用xz -dtar xf
  3. 这通常会让您在子目录中保留所有内容,因此我移动了所有内容:mv node-v14.15.4-linux-armv7l/* .
  4. 为 Node、npm 和 npx 创建到 /usr/bin 的软链接
    root@fileserver:/opt/node# ln -s /opt/node/bin/npx /usr/bin/npx
    root@fileserver:/opt/node# ln -s /opt/node/bin/node /usr/bin/node
    root@fileserver:/opt/node# ln -s /opt/node/bin/npm /usr/bin/npm 

那么一切都会像魅力一样发挥作用。请注意,您可能必须使用 chmod 更改权限以允许其他用户访问。

对于基于用户的解决方案,请查看https://github.com/nodejs/help/wiki/Installation#how-to-install-nodejs-via-binary-archive-on-linux

相关内容