管理者権限がなくてもインストールできる portable-node が便利!

今担当している案件の中で、こちら側に管理者権限のないレンタルサーバー(一つのOSを複数のユーザーで共有するタイプのサーバー)を使用している物があるのですが、今回はこういった環境上でNode.jsを使える仕組みを見つけたので、記事にしたいと思います。

そもそも、なぜroot権限が使えないサーバー上でもNode.jsを使いたいのかというと、ReactなどのAltJSを使用して開発を行う際に、サーバー上でもビルドを行えたほうが、変更したファイルのみアップロードすれば良くなるので、ビルド済みのファイルをアップロードするよりも更新が短時間で済むメリットがあるためです。

今回の方法ではroot権限がないため、/usr/local/binや/optなどのディレクトリにインストールすることはできませんが、ホームディレクトリやプロジェクト内にnode.jsのバイナリを配置し、そのバイナリを使用してjavascriptをサーバーサイドで実行できるようにすることが可能です。

まず、GitHubから、portable-node というツールを取得します。

wget https://raw.github.com/dmrub/portable-node/master/bin/install-node.sh

すると、コマンドを実行したディレクトリで、”install-node.sh”という名前のファイルが生成されます。
このファイルを実行できるようにするために、権限を付与します。

chmod +x ./install-node.sh

ここまでできればnode.jsの取得ができるようになっています。
次のコマンドで、node.jsを取得します。

./install-node.sh --version=ほしいNode.jsのバージョン

たとえは、次のようにします。

$ ./install-node.sh --version=16.13.1

Node.jsのバージョン一覧は次のURLにあります。
参考にしてみてください。

リリース一覧 – Node.js

特にバージョンにこだわりや要件がない場合は、サポート期限の長いLTSバージョンを使用することをおすすめします。

コマンドを実行すると、コマンドを実行した際のカレントディレクトリに次ようなのディレクトリとファイルが作られます。

  • share/
  • node-vバージョン
  • bash-node-vバージョン

これで準備完了です。
あとは通常のnodeコマンドのように “node-vバージョン“のファイルを使用します。

$ ./node-v16.13.1-linux-x64 --version
v16.13.1

なお、同時に生成される”bash-node-vバージョン“を実行すると、取得したnode.jsの実行ファイルにパスが通った状態のbashが起動します。
このあたりも必要に応じで試してみてください。

これでroot権限無しでnode.jsが利用可能になりました。

ただし、yarnやnpmといったパッケージマネージャーはここまでの手順だけでは使用できず、もうひと工夫が必要となります。

yarnについては他の環境からコピーしたもので実行できることを確認したので、また後日記事にしたいと思います!

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG