如何在没有sudo访问但安装了npm 1.3.10的情况下安装Node.js?


14

我对Ubuntu 14.04不了解。

我需要安装Node.js。我正在使用的Ubuntu对组织来说是一个很大的系统,所以我没有sudo访问权限,但是我发现已安装npm 1.3.10。

我正在寻找将Node.js安装到用户目录中的命令序列。我是Node.js此处的nodejs.org(LTS版本,64位)上下载的~/Downloads/node-v8.9.1-linux-x64.tar.xz。接下来我该怎么办?


您公司的硬件不适合您在未授权的范围内进行安装。请与您的IT部门联系,而不是在网络上发布随机内容。

3
@MichaelBay Node.js也可以在本地安装,而无需使用sudo且无需联系IT部门即可获得在全球范围内安装Node.js的授权。
karel

Answers:


17

为了在本地安装Node.js和npm,而不必使用sudo,请打开终端并输入:

echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
wget -c http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install 
wget -c https://www.npmjs.org/install.sh | sh  

默认情况下,curb软件包未安装在Ubuntu中。如果您的系统上未安装curl,请在运行之前将install.sh文件curl中的所有实例替换为wget -c并将更改保存到install.sh文件中。

这将安装node-v9.2.0,这是比您已经下载的文件更高的Node.js版本。


非常感谢您,karel。我不仅知道如何安装Node.js,而且还学习了一种从源代码将软件安装到用户文件夹中的通用方法。仅需提及两件事:1)首先,我已经有一个〜/ .bashrc,因此我在geditor中手动添加了路径并重新登录。2)我不理解第六个命令,因此我分别运行它们:首先是wget ...第二个tar -xzf ...,最后是cd到解压缩的文件夹中。我也不明白最后一条命令。这是否意味着我从该URL下载install.sh并运行它?
user5280911'1

使用现有〜/ .bashrc所做的一切都可以。关于最后一个命令,它确实从url下载install.sh文件并运行它,此外,install.sh文件甚至不需要具有可执行权限,因为您是作为普通用户而不是sudo运行命令的。 。
karel

1
我知道了。谢谢。很抱歉,我无法投票给您答案,因为我的信誉点还不够,但是我会尽力而为。再次感谢你的帮助。
user5280911 '17

当您无权使用C编译器时,是否有办法(可能使用二进制文件)实现此目的?
西蒙·伊斯特

GitHub用户isaacs是npm的发明者编写了一些脚本,用于无需使用node和npm的安装技术sudonode-and-npm-in-30-seconds.sh。注意:使用sudo时,npm> = 0.3 更安全。如果您不知道它的作用,请不要这样做!
karel

2

我以这种方式锻炼-分2个步骤。

步骤1:下载并提取Node.js二进制文件

# create a directory where you want to install node js
mkdir ~/nodejs-latest

# download and extract nodejs binaries into the created directory
cd ~/nodejs-latest
wget -c http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1


步骤2:设定PATH和来源

# append the following lines to the ~/.bashrc file
export NODE_HOME=~/nodejs-latest
export PATH=$PATH:$NODE_HOME/bin

# refresh environment variables
source ~/.bashrc

然后,您可以使用node --version和验证nodejs的安装npm --version


我认为您的命令正在下载Node源文件(未编译)。也许您打算下载二进制文件?
西蒙·伊斯特

-1

我喜欢使用ubuntu组来实现这一目标。这很简单。

  1. 首先使用apt-get安装nodejs和npm

    sudo apt-get update && sudo apt-get install nodejs npm

  2. 找出谁登录,即用户名,运行以下命令在终端查看

    whoami

  3. 您可以使用非常简单的命令查看分配给您的组的列表,通常第一个组是您的用户名本身

    groups

  4. 运行以下命令以允许访问登录的用户

    sudo chmod 777 -R /usr/local && sudo chgrp $(whoami) -R /usr/local

  5. 更新npm和nodejs

    npm install -g npm

没关系,您的用户可以在不使用sudo的情况下运行npm命令

您还可以参考不带sudo的npm throws错误


1
修改文件系统的标准权限应该是最后的操作。
卡洛斯·达戈雷特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.