序章

Node.js は、ユーザーがネットワークアプリケーションをすばやく構築できるようにする汎用プログラミング用のJavaScriptプラットフォームです。 Node.jsは、フロントエンドとバックエンドの両方でJavaScriptを活用することで、開発の一貫性と統合性を高めます。

このガイドでは、Ubuntu18.04サーバーにNode.jsをインストールする3つの異なる方法について学習します。

前提条件

このガイドは、Ubuntu18.04を使用していることを前提としています。 始める前に、システムにsudo権限が設定されたroot以外のユーザーアカウントが必要です。 これを行う方法については、Ubuntu18.04初期サーバーセットアップチュートリアルに従ってください。

サーバーやローカルコンピューターを使用せずにNode.jsのインストールを試してみたい場合は、ブラウザーでインタラクティブ端末を使用できます。 下のインタラクティブターミナルの起動!ボタンをクリックして開始します。

Aptを使用してデフォルトのリポジトリからNode.jsをインストールする

Ubuntu 18.04のデフォルトのリポジトリには、複数のシステム間で一貫したエクスペリエンスを提供するために使用できるバージョンのNode.jsが含まれています。 執筆時点では、リポジトリ内のバージョンは8.10.0です。 これは最新バージョンではありませんが、安定していて、言語をすばやく試すのに十分なはずです。

このバージョンを入手するには、aptパッケージマネージャーを使用できます。 ローカルパッケージインデックスを更新します。

  1. sudo apt update

次に、Node.jsをインストールします。

  1. sudo apt install nodejs

nodeにバージョン番号を照会して、Node.jsが正常にインストールされたことを確認します。

  1. node -v
Output
v8.10.0

リポジトリ内のパッケージがニーズに合っている場合は、Node.jsを設定するために必要なのはこれだけです。 ほとんどの場合、Node.jsパッケージマネージャーであるnpmもインストールする必要があります。 npmパッケージはaptと一緒にインストールできます。

  1. sudo apt install npm

これにより、Node.jsで使用するモジュールとパッケージをインストールできるようになります。

これで、aptとデフォルトのUbuntuソフトウェアリポジトリを使用して、Node.jsとnpmが正常にインストールされました。 ただし、異なるバージョンのNode.js、パッケージアーカイブ、またはバージョンマネージャーを使用することをお勧めします。 次のステップでは、これらの要素と、より柔軟で堅牢なインストール方法について説明します。

NodeSourcePPAを使用したAptでのNode.jsのインストール

Node.jsの最新バージョンをインストールするには、NodeSourceによって管理されているPPA(パーソナルパッケージアーカイブ)を追加できます。 これには、公式のUbuntuリポジトリよりも最新バージョンのNode.jsが含まれ、プラットフォームのいくつかの利用可能なバージョンから選択できるようになります。

まず、PPAの内容にアクセスするために、PPAをインストールします。 ホームディレクトリから、curlを使用して、希望するバージョンのインストールスクリプトを取得し、17.xを希望するバージョンの文字列(異なる場合)に置き換えてください。

  1. cd ~
  2. curl -sL https://deb.nodesource.com/setup_17.x -o /tmp/nodesource_setup.sh

現在利用可能なバージョンの詳細については、NodeSourceのドキュメントを参照してください。

必要に応じて、nano(またはお好みのテキストエディタ)を使用して、このスクリプトの内容を調べることができます。

  1. nano /tmp/nodesource_setup.sh

スクリプトを安全に実行できることを確認したら、テキストエディタを終了します。 nanoを使用した場合は、CTRL + Xを押して終了できます。 次に、sudoを使用してスクリプトを実行します。

  1. sudo bash /tmp/nodesource_setup.sh

PPAが構成に追加され、ローカルパッケージキャッシュが自動的に更新されます。 これで、前のセクションで行ったようにNode.jsパッケージをインストールできます。

  1. sudo apt install nodejs

-vフラグを指定してnodeを実行し、新しいバージョンがインストールされていることを確認します。

  1. node -v
Output
v17.3.0

デフォルトのUbuntuパッケージリポジトリにあるものとは異なり、このnodejsパッケージにはnodenpmの両方が含まれているため、npmを個別にインストールする必要はありません。

npmは、ホームディレクトリの構成ファイルを使用して更新を追跡します。 npmを初めて実行したときに作成されます。 次のコマンドを実行して、npmがインストールされていることを確認し、構成ファイルを作成します。

  1. npm -v
Output
8.3.0

一部のnpmパッケージ(たとえば、ソースからのコードのコンパイルが必要なパッケージ)を機能させるには、build-essentialパッケージをインストールする必要があります。

  1. sudo apt install build-essential

これで、ソースからコードをコンパイルする必要があるnpmパッケージを操作するために必要なツールができました。

このセクションでは、aptとNodeSourcePPAを使用して、Node.jsとnpmを正常にインストールしました。 次に、Node Version Managerを使用して、Node.jsの複数のバージョンをインストールおよび管理します。

NodeVersionManagerを使用したノードのインストール

Node.jsをインストールする別の方法は、nvmと呼ばれるツールであるNodeVersionManager(NVM)を使用することです。 nvmは、オペレーティングシステムレベルで動作するのではなく、ホームディレクトリ内の独立したディレクトリのレベルで動作します。 これは、システム全体に影響を与えることなく、Node.jsの複数の自己完結型バージョンをインストールできることを意味します。

nvmを使用して環境を制御すると、Node.jsの最新バージョンにアクセスし、以前のリリースを保持および管理できます。 これはaptとは異なるユーティリティですが、それを使用して管理するNode.jsのバージョンは、aptを使用して管理するバージョンとは異なります。

Ubuntu 18.04マシンにNVMをインストールするには、プロジェクトのGitHubページにアクセスしてください。 メインページに表示されるREADMEファイルからcurlコマンドをコピーして、インストールスクリプトの最新バージョンを取得します。

コマンドをbashにパイプする前に、スクリプトを監査して、同意できないことを実行していないことを確認することをお勧めします。 これを行うには、curlコマンドの最後にある| bashセグメントを削除します。

  1. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh

出力を確認し、出力に問題がないことを確認してください。 満足したら、最後に| bashを追加して同じコマンドを実行します。 使用するURLは、最新バージョンのNVMによって異なりますが、現時点では、以下を実行することでスクリプトをダウンロードして実行できます。

  1. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

これにより、nvmスクリプトがユーザーアカウントにインストールされます。 これを使用するには、最初に.bashrcファイルを入手します。

  1. source ~/.bashrc

nvmをインストールすると、分離されたNode.jsバージョンをインストールできます。 まず、nvmに利用可能なノードのバージョンを尋ねます。

  1. nvm ls-remote
Output
... v14.18.2 (Latest LTS: Fermium) v15.0.0 v15.0.1 v15.1.0 v15.2.0 v15.2.1 v15.3.0 v15.4.0 v15.5.0 v15.5.1 v15.6.0 v15.7.0 v15.8.0 v15.9.0 v15.10.0 v15.11.0 v15.12.0 v15.13.0 v15.14.0 v16.0.0 v16.1.0 v16.2.0 v16.3.0 v16.4.0 v16.4.1 v16.4.2 v16.5.0 v16.6.0 v16.6.1 v16.6.2 v16.7.0 v16.8.0 v16.9.0 v16.9.1 v16.10.0 v16.11.0 v16.11.1 v16.12.0 v16.13.0 (LTS: Gallium) v16.13.1 (Latest LTS: Gallium) v17.0.0 v17.0.1 v17.1.0 v17.2.0 v17.3.0

非常に長いリストですが、リストされているリリースされたバージョンのいずれかを入力することで、Nodeのバージョンをインストールできます。 たとえば、バージョンv16.13.1を入手するには、次のコマンドを実行します。

  1. nvm install v16.13.1
Output
Now using node v16.13.1 (npm v8.1.2)

nvmが最後にインストールされたバージョンを使用するように切り替わる場合があります。 ただし、nvmに、ダウンロードしたばかりのバージョンを使用するように指示することはできます(異なる場合)。

  1. nvm use v16.13.1

次のコマンドを実行して、現在使用されているバージョンを確認します。

  1. node -v
Output
v16.13.1

複数のノードバージョンがインストールされている場合は、lsを実行してそれらのリストを取得できます。

  1. nvm ls
Output
-> v16.13.1 system default -> v16.13.1 iojs -> N/A (default) unstable -> N/A (default) node -> stable (-> v16.13.1) (default) stable -> 16.13 (-> v16.13.1) (default) lts/* -> lts/gallium (-> v16.13.1) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.17.0 (-> N/A) lts/dubnium -> v10.24.1 (-> N/A) lts/erbium -> v12.22.8 (-> N/A) lts/fermium -> v14.18.2 (-> N/A) lts/gallium -> v16.13.1

次のいずれかのバージョンをデフォルトにすることもできます。

  1. nvm alias default 16.13.1
Output
default -> 16.13.1 (-> v16.13.1)

このバージョンは、新しいセッションが発生したときに自動的に選択されます。 次のコマンドのように、エイリアスで参照することもできます。

  1. nvm use default
Output
Now using node v16.13.1 (npm v8.1.2)

Nodeの各バージョンは、独自のパッケージを追跡し、これらを管理するためにnpmを使用できます。

npmにNode.jsプロジェクトの./node_modulesディレクトリにパッケージをインストールさせることもできます。 次の構文を使用して、expressモジュールをインストールします。

  1. npm install express
Output
added 50 packages, and audited 51 packages in 4s 2 packages are looking for funding run `npm fund` for details found 0 vulnerabilities npm notice npm notice New minor version of npm available! 8.1.2 -> 8.3.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.3.0 npm notice Run npm install -g [email protected] to update! npm notice

モジュールをグローバルにインストールして、同じバージョンのNode.jsを使用する他のプロジェクトで利用できるようにする場合は、-gフラグを追加できます。

  1. npm install -g express
Output
added 50 packages, and audited 51 packages in 1s 2 packages are looking for funding run `npm fund` for details found 0 vulnerabilities

これにより、パッケージが次の場所にインストールされます。

  1. ~/.nvm/versions/node/16.13.1/lib/node_modules/express

モジュールをグローバルにインストールすると、コマンドラインからコマンドを実行できますが、プログラム内からパッケージを要求するには、パッケージをローカル領域にリンクする必要があります。

  1. npm link express

次のコマンドを実行すると、nvmで使用できるオプションの詳細を確認できます。

  1. nvm help

Nodeバージョンマネージャーnvmを使用してNodeを正常にインストールし、さまざまなバージョンのNodeをインストールおよび管理しました。

Node.jsを削除する

ターゲットとするバージョンに応じて、aptまたはnvmを使用してNode.jsをアンインストールできます。 デフォルトのリポジトリバージョンを削除するには、システムレベルでaptを使用します。 このコマンドは、パッケージを削除し、構成ファイルを保持します。 これは、将来パッケージを再度インストールする予定がある場合に役立ちます。

  1. sudo apt remove nodejs

後で使用するために構成ファイルを保存したくない場合は、次のコマンドを実行してパッケージをアンインストールし、それに関連付けられている構成ファイルを削除します。

sudo apt purge nodejs

最後のステップとして、削除されたパッケージとともに自動的にインストールされた未使用のパッケージを削除できます。

  1. sudo apt autoremove

nvmを使用して有効にしたNode.jsのバージョンをアンインストールするには、最初に、削除するバージョンが現在アクティブなバージョンであるかどうかを確認します。

  1. nvm current

対象のバージョンが現在アクティブなバージョンではなくである場合は、次のコマンドを実行できます。

  1. nvm uninstall node_version
Output
Uninstalled node node_version

このコマンドは、選択したバージョンのNode.jsをアンインストールします。

削除するバージョンが現在アクティブなバージョンである場合は、最初にnvmを非アクティブ化して、変更を有効にする必要があります。

  1. nvm deactivate

これで、以前に使用したuninstallコマンドを使用して、現在のバージョンをアンインストールできます。 これにより、再インストールに使用できるキャッシュされたファイルを除いて、Node.jsのターゲットバージョンに関連付けられているすべてのファイルが削除されます。

結論

Ubuntu 18.04サーバーでNode.jsを起動して実行するには、かなりの数の方法があります。 状況によって、ニーズに最適な方法が決まります。 Ubuntuのリポジトリでパッケージ化されたバージョンを使用するのは1つの方法ですが、nvmまたはNodeSourcePPAを使用するとさらに柔軟性が高まります。

Node.jsを使用したプログラミングの詳細については、チュートリアルシリーズNode.jsでのコーディング方法を参照してください。