Amazon LinuxにNode.JSをyumインストールする方法


251

yumを使用して依存関係をインストールし、次にNode.JSとNPMをソースからインストールすることについての記事を見ました。これは機能しますが、Node.JSとNPMの両方がどこかのパブリックリポジトリにあるように思えます。

AWS Amazon Linuxの1つのコマンドでNode.JSとNPMをインストールするにはどうすればよいですか?


回答:


396

これにつまずいて、後で再び見つけるのは奇妙に困難でした。後世のためにここに置く:

sudo yum install nodejs npm --enablerepo=epel

EDIT 3: 2016年7月の時点で、EDIT 1はnodejs 4では機能しません(EDIT 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(Enterprise Linuxの追加パッケージ)は、Fedoraチームのオープンソースで無料のコミュニティベースのリポジトリプロジェクトであり、RHEL(Red Hat Enterprise Linux)、CentOS、Scientific LinuxなどのLinuxディストリビューション用の100%高品質のアドオンソフトウェアパッケージを提供します。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アプローチは、一貫性のある現在のインストールを確実にするために私が見つけた唯一の方法です。
セミコロン2015年

22
これからノード0.10.36とnpm 1.3.6を取得しました。これらは非常に古くなっています。
voltrevo 2015

4
@Semicolonは、npmをインストールするだけでそれsudo npm install -g nを回避できsudo n v0.12ます。それから、またはその他の好きなバージョンをインストールできます。
unboundev 2015年

4
n期待どおりに更新されますが、ノードリンクが正しく更新されません。追加のコマンドを実行する必要がありますsudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node
。– Masadow

4
sudo yum install nodejs --enablerepo=epel-testingのエラーが返されるため、この回答は機能しませんでした:「使用可能なパッケージnodejsがありません。」sudo yum install nodejs --enablerepo=epel非常に古いバージョンしか提供していませんでしたが、
2016年

224

他の人のように、受け入れられた答えも私に古いバージョンを与えました。

これは非常にうまくいく別の方法です:

$ 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 installのためにpackage.json
Chetabahana

32
私はこれを実行するために必要なcurl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
user465342

16
権限が拒否された場合は、sudoを追加する必要があります。curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -およびsudo yum -y install nodejs
サンポー

1
Node.js 8.xをインストールする場合は、shoud executecurl --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をupzipします-

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グローバルを意味するthereは、実際には、インストールしたばかりのインスタンスであり、現在のユーザーに限定されているそのnpmインスタンスに対してグローバル意味します。これは、npmが「グローバル」にインストールするすべてのパッケージに適用されます。


4
あなたが望むバージョンを正確に手に入れるので、これは実際には最良の答えです
Mariusz '23

1
最初にこの回答を読んでほしいと思います。インストールするバージョンを選択できるので、これは受け入れられる回答になるはずです。-ありがとう@voltrevo
Mike W

2
@voltrevo回答ありがとうございます。はい、Linuxにノードをインストールする他の方法があります。受け入れられた答えはワンライナーであり、これはたまたま自動化および管理された更新のためにYUMパッケージシステムにプラグインします。YUMリポジトリ内のパッケージは少し古い傾向があり、より広い展開でテストされています。個人的には、最新かつ最高のローカル開発環境に任せ、本番環境では受け入れられている回答のようなものを使用することをお勧めします。乾杯!
Tim Fulmer、2016年

古いcentosバージョンの場合、これが最適な方法です
user1336321

ノード-vの実行後のエラーは、「バイナリファイルを実行できません」です。何か案は?
JosFabre 2016年

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またはまたは単にnodeprocess.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.
    ...と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 nodejsrm次のコマンドで承認された回答では、有効な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これが気に入らない場合に選択できる他のたくさんの回答;-) ...「1つのコマンドで」は、質問IMHOの最も重要な部分ではありませんでした。
goredwards 2016年

これは、受諾の回答を間違えた場合に非常に役立ちます。ありがとう
Daron Tancharoen

@talentedandrew etc/sudoersファイルは、どのマシンのどのユーザーとしてどのコマンドを実行できるかを制御します。ただし、secure_pathノードにリストされているディレクトリにあるコマンドのみを実行/検索/検索し、/usr/local/binそこにインストールされている場合は、sudoがそれを見つける必要があります。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

ノードの特定のバージョン(12.16.3など)をインストールするには、最後の行を次のように変更します。

nvm install 12.16.3

NVMの使用方法の詳細については、ドキュメントにアクセスしてください。https//github.com/nvm-sh/nvm


1
これは完全に機能します。@goredwardsの回答よりも時間がかかりません。Amazon ECS最適化AMIで試してみました。
Jayant Bhawal

3
受け入れられた回答とすべての編集1〜3は私にとってはうまくいきませんでしたが、これはうまくいきました。ありがとう!
seantomburke

1
端正でコンパクト。
Stephen Tetreault 2017

1
シンプルで素晴らしい
Abhinav 2017

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

これは素晴らしい答えです。Nodeをインストールするのに20分もかかりません。
デビッドウェバー

Elastic Beanstalkでnpmコンパイル済みフロントエンドを使用してphpアプリケーションを実行する場合、これを使用できます。それはそれを機能させた私のinstall.configファイルの一部です-gist.github.com/marekjalovec/1ccee0c2254e65fc5d82eb35c7da82ae
Marek Jalovec

14

私はこれに出くわしました。私はいくつかのより人気のある答えを試しましたが、結局私にとってうまくいったのはAmazonのクイックセットアップガイドでした。

チュートリアル:Amazon EC2インスタンスでのNode.jsのセットアップ

チュートリアルの要点は次のとおりです。

  1. インスタンスにsshされていることを確認してください。
  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 2017

6

誰もこれについて言及していないようです。上のアマゾンのLinux 2、EPELをロードする公式の方法は次のとおりです。

  • sudo amazon-linux-extras install epel

...その後、次のことができます。

  • sudo yum install nodejs

     

Extras Library(Amazon Linux 2)を参照してください


よくこれは最良の答えのようです!
ストレッチ

@Stretchそうでもない。Node 6をインストールします。古すぎます。
GabrielBB

5

Node.js 6.xをインストールしていて、Node.js 8.xをインストールしたいと思っていました。

これが私が使用したコマンドです(yumキャッシュデータを処理するためのいくつかの追加手順を含むNodejsのサイトから取得):

  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:メタデータキャッシュを再生成します(これはドキュメントにはありませんでしたが、最後の2つのコマンドを発行するまで、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

最も簡単な解決策はこれです(ルートとしてこれらを実行してください)

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

承認された回答をさらに検索せずにAnsibleで実行したい場合は、便宜と将来の参照のためにここにタスクを投稿します。

承認された回答の推奨:https : //stackoverflow.com/a/35165401/78935

同等のAnsibleタスク

tasks:
  - name: Setting up the NodeJS yum repository
    shell: curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
    args:
      warn: no
  # ...

0

インストール済みのパッケージを現在のバージョンに再インストールすることでノードを更新/インストールできます。これにより、更新中に多くのエラーを回避できます。

これは、以下のコマンドを使用してnvmによって実行されます。ここでは、ノードのバージョンを8に更新し、使用可能なすべてのパッケージをv8にも再インストールしました。

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

AWS Linuxインスタンスでも動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.