如何在Amazon Linux上安装Node.JS


Answers:


396

迷迷糊糊地发现,后来很难再次发现。后代放在这里:

sudo yum install nodejs npm --enablerepo=epel

编辑3:从2016年7月起,编辑1不再适用于nodejs 4(和编辑2都不适用)。这个答案(https://stackoverflow.com/a/35165401/78935)提供了一个真正的单线。

编辑1:如果您正在寻找nodejs 4,请尝试EPEL测试库:

sudo yum install nodejs --enablerepo=epel-testing

编辑2:要使用上述命令从通过EPEL存储库安装的nodejs 0.12升级到EPEL测试存储库的nodejs 4,请按照以下步骤操作:

sudo yum rm nodejs
sudo rm -f /usr/local/bin/node
sudo yum install nodejs --enablerepo=epel-testing

较新的软件包将节点二进制文件放入/usr/bin,而不是/usr/local/bin

和一些背景:

该选项--enablerepo=epel导致yum在EPEL存储库中搜索软件包。

EPEL(企业Linux的额外软件包)是Fedora团队基于开源和免费社区提供的存储库项目,它为Linux发行版提供100%高品质的附加软件包,包括RHEL(Red Hat Enterprise Linux),CentOS和Scientific Linux。Epel项目不是RHEL / Cent OS的一部分,但它通过提供许多开源软件包(如网络,系统管理员,编程,监视等)而设计用于主要的Linux发行版。大多数epel软件包都由Fedora repo维护。

通过http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/


8
这绝对是我所见过的最快的方法,但警告可能会有用-EPEL存储库与当前稳定节点不同步,并且在安装时无法使用“ n”来解决此问题。方式(至少,并非没有我以外的某种魔法)。我发现乏味的git clone / make install方法是确保一致和最新安装的唯一方法。
分号

22
我得到了节点0.10.36和npm 1.3.6。这些已经过时了。
voltrevo

4
@Semicolon可以通过仅安装npm sudo npm install -g n和/ sudo n v0.12或其他喜欢的版本来解决。
unboundev

4
n按预期更新,但未正确更新节点链接。您必须运行额外的命令:sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node
Masadow 2015年

4
此答案无效,因为sudo yum install nodejs --enablerepo=epel-testing返回了错误:“没有可用的包nodejs。” 而sudo yum install nodejs --enablerepo=epel只给出了很旧的版本...
令人反感的

223

像其他人一样,被接受的答案也给了我一个过时的版本。

这是另一种效果很好的方法:

$ curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -
$ yum -y install nodejs

您还可以将12.x替换为另一个版本,例如10.x,8.x等。

您可以在NodeSource Github页面上查看所有可用版本,并根据需要从那里拉出。

注意:您可能需要sudo根据环境运行使用。


4
这是我需要在AWS Elastic Beanstalk上使用的版本,以获取比已安装的版本更高的版本。
乔恩·伯吉斯

1
当我需要参加竞选npm installpackage.json,它的表现非常完美
Chetabahana '16

32
我需要使用curl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
user465342 '16

16
如果您的权限被拒绝,则需要添加一些sudo。curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -sudo yum -y install nodejs
sampoh

1
如果您想安装Node.js 8.x,请执行curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
Argun

64

接受的答案给了我节点0.10.36和npm 1.3.6,它们已经过时了。我从nodejs下载页面上获取了最新的linux-x64 tarball,安装起来并不难:https ://nodejs.org/dist/latest/ 。

# start in a directory where you like to install things for the current user
(For noobs : it downloads node package as node.tgz file in your directlry)
curl (paste the link to the one you want from the downloads page) >node.tgz

现在,将您刚刚下载的tar上压缩-

tar xzf node.tgz

运行此命令,然后将其添加到您的.bashrc

export PATH="$PATH:(your install dir)/(node dir)/bin"

(例如:export PATH =“ $ PATH:/home/ec2-user/mydirectory/node/node4.5.0-linux-x64/bin”)

并更新npm(仅一次,请勿添加到.bashrc):

npm install -g npm

请注意,-g那里意味着全局,实际上意味着该npm实例的全局这是我们刚刚安装的实例,并且仅限于当前用户。这将适用于npm“全局”安装的所有软件包。


4
这实际上是最好的答案,因为您确切地得到了想要的版本
Mariusz

1
希望我先阅读此答案-这应该是公认的答案,因为您可以选择要安装的版本。-谢谢@voltrevo
Mike W

2
@voltrevo谢谢您的回答。是的,还有其他方法可以在Linux上安装节点。可接受的答案是单行代码,它恰巧插入YUM软件包系统中以进行自动化和托管更新。YUM仓库中的软件包确实有些陈旧,并且在更广泛的部署中也经过了更好的测试。就个人而言,我建议将最新最好的软件留给本地开发环境,并使用更像生产环境公认的答案的东西。干杯!
Tim Fulmer

对于旧的centos版本,这是最好的选择
user1336321 2016年

现在运行节点-v之后的错误是:“无法执行二进制文件”。有任何想法吗?
JosFabre

28

对我有用的过程(遵循这些相当古老的说明并进行了一些更新):

  • 检查git是否已安装git --version或通过以下方式安装:
    sudo yum install git
  • 安装gcc和openssl:
    sudo yum install gcc-c++ make
    sudo yum install openssl-devel
  • 将git repo克隆到一个名为node(您可以稍后删除)的目录中:
    git clone https://github.com/nodejs/node.git
  • https://github.com/nodejs/node/releases上确定所需的节点版本
  • 转到刚刚创建的节点目录并安装节点
    cd node
    git checkout v6.1.0-将所需的版本放在v
    ./configure
    make
    sudo make install
  • 测试该节点安装/使用工作要么node --version或简单地node(经由出口节点process.exit()^CX 2或^C+ exit
  • 检查npm版本:npm --version并根据需要更新sudo npm install -g npm
  • 可选:使用以下命令删除node目录rm -r node

笔记:

  1. 接受的答案无效,因为sudo yum install nodejs --enablerepo=epel-testing返回了错误:No package nodejs available.
    ... and sudo yum install nodejs --enablerepo=epel(即不带-testing)仅给出了非常旧的版本。
  2. 如果您已经安装了旧版本的节点,则可以使用以下命令将其删除:
    sudo npm uninstall npm -g ...因为npm可以自行卸载
    sudo yum erase nodejs
    sudo rm -f /usr/local/bin/node
    sudo yum rm nodejs在接受的答案中,该rm命令无效,因为不是有效的yum命令,请参阅yum --help)。
  3. 可以通过git clone git://github.com/nodejs/node.git而不是克隆节点存储库,git clone https://github.com/nodejs/node.git但是您可能会遇到各种错误(请参阅此处)。
  4. 如果您已经有/node以前安装的目录,请在使用git clone命令之前将其删除(否则会发生冲突):
    rm -r node
  5. 如果您在使用任何sudo npm...命令时都遇到麻烦-例如sudo: npm: command not found和/或在没有sudo的情况下安装节点程序包时遇到权限问题,请编辑sudo nano /etc/sudoers并添加:/usr/local/bin到该行的末尾,Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin以便读取Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

3
@Gio如果此命令不能使您满意,可以选择其他答案;-) ...“按一个命令”不是IMHO问题的最重要部分。
goredwards

我在接受答案中犯了一个错误之后,这非常有用。谢谢你
Daron Tancharoen

@talentedandrew该etc/sudoers文件控制着谁可以在什么计算机上以什么用户身份运行什么命令-但只能在其secure_path节点上列出的目录中运行/查找/查找命令,并且应该在其中安装/usr/local/binsudo应该找到它-请参见stackoverflow .com / a / 31734090/3092596 如果sudo找不到,则需要将该路径添加到sudo的路径secure_path-另请参见:superuser.com/a/927599/404543
goredwards

我想补充一点,使用此方法安装后,您可能必须修复符号链接: sudo ln -s /usr/local/bin/node /usr/bin/node sudo ln -s /usr/local/lib/node /usr/lib/node sudo ln -s /usr/local/bin/npm /usr/bin/npm sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
BuffMcBigHuge

23

使用NVM轻松安装...

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install node

要安装特定版本的Node(例如12.16.3),请将最后一行更改为

nvm install 12.16.3

有关如何使用NVM的更多信息,请访问文档:https : //github.com/nvm-sh/nvm


1
这完全有效。比@goredwards回答所需的时间更少。在Amazon ECS优化的AMI上试用。
Jayant Bhawal '16

3
接受的答案和所有EDITs 1-3都不适合我,但这有效。谢谢!
seantomburke

1
整齐紧凑。
斯蒂芬·特雷奥

1
简单而出色
Abhinav

2
这应该是答案。除非有人希望从源代码进行构建,否则到目前为止,这是最好的。
柯克兰

19

对于v4 LTS版本,请使用:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs

对于Node.js v6,请使用:

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs

尝试在Amazon Linux上安装本机插件时,我也遇到了一些问题。如果要执行此操作,还应该安装构建工具:

yum install gcc-c++ make

这是一个了不起的答案。我不再需要20分钟来安装Node。
David Webber

如果您在弹性beantalk上运行带有某些npm编译前端的php应用程序,则可以使用它。它是使它工作的install.config文件的一部分-gist.github.com/marekjalovec/1ccee0c2254e65fc5d82eb35c7da82ae
Marek Jalovec

14

我刚遇到这个。我尝试了一些较流行的答案,但最后,对我有用的是Amazon的快速设置指南。

教程:在Amazon EC2实例上设置Node.js

本教程的要旨是:

  1. 确保您已登录到实例。
  2. 抓取nvm: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
  3. 活性 . ~/.nvm/nvm.sh
  4. 使用nvm安装节点nvm install 4.4.5(注意:您可以选择其他版本。首先通过运行检出远程版本$ nvm ls-remote
  5. 最后,通过运行以下命令来测试您是否已正确安装节点Node $ node -e "console.log('Running Node.js' + process.version)"

希望这对下一个人有帮助。


您可能要在该链接中解释内容。一个好的答案仅使用链接作为参考,而不是答案的主要主题。
BusyProgrammer

6

似乎没有人提到这一点。在Amazon Linux 2上,加载EPEL的官方方法是:

  • sudo amazon-linux-extras install epel

...那么您可以:

  • sudo yum install nodejs

     

请参阅附加程序库(Amazon Linux 2)


好吧,这似乎是最好的答案!
拉伸

@Stretch不是。它安装了节点6。太旧了。
GabrielBB

5

我安装了Node.js 6.x,并想安装Node.js8.x。

这是我使用的命令(来自Nodejs的站点,还有一些额外的步骤来处理yum缓存的数据):

  1. sudo yum remove nodejs:卸载Node.js 6.x(我不知道这是否必要)
  2. curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
  3. sudo yum clean all
  4. sudo yum makecache:重新生成元数据缓存(文档中没有此内容,但是yum一直尝试安装Node.jx 6.x,但未成功,直到我发出了最后两个命令)
  5. sudo yum install nodejs:安装Node.js 8.x

3

sudo yum install nodejs npm --enablerepo=epel适用于Amazon Linux AMI curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - yum -y install nodejs 适用于RedHat。


2

最简单的解决方案是(以root用户身份执行这些操作)

sudo su root
cd /etc
mkdir node
yum install wget
wget https://nodejs.org/dist/v9.0.0/node-v9.0.0-linux-x64.tar.gz
tar -xvf node-v9.0.0-linux-x64.tar.gz
cd node-v9.0.0-linux-x64/bin
./node -v
ln -s /etc/node-v9.0.0-linux-x64/bin/node node

在此处输入图片说明


谢谢,它有所帮助
arupjbasu



0

如官方文档中所述,只需简单的2个步骤即可-

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs


0

您可以通过将安装的软件包重新安装到当前版本来更新/安装节点,这可以在进行更新的同时避免很多错误。

这是由nvm使用以下命令完成的。在这里,我将节点版本更新为8,并将所有可用的软件包也重新安装到v8!

nvm i v8 --reinstall-packages-from=default

它也适用于AWS Linux实例。

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.