さくらインターネットにnode18をインストールする
経緯(TLDR)
- API(php)とフロント(React.js)のシステムをさくらのサーバーにデプロイする要件があった。
- composer installはサーバーで実行する。
- 一方でreactのビルドはnodejsが必要なので、手元で実行しかできない。
- サーバーでビルドできるようにすれば、1行でできるはず。
- ということでさくらインターネットのレンタルサーバーにnode18(LTS)をインストールすることにした。
* ちなみにnode v16のLTSのサポートは2023年9月11日で終わるらしいので、v18のLTSバージョンをインストールすることにした。
* ほんとはcicdツール(jenkinsとか)でビルドして、sftpあたりでデプロイすればいいんですがそれの開発だったり、インフラ整備がだるい。取引相手的に保守費用請求できないということで苦肉の策です。
めんどくさい人向け
とりあえずコピペでできるようにした。
自己責任でお願いします。
いきなり本番環境では実行しないでね。
バージョン違いなどで実行できない場合もあるので。
クリックしたら展開
## install python3
mkdir -p ~/work/python3
cd ~/work/python3
wget --no-check-certificate https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
tar zxf Python-3.8.12.tgz
cd ./Python-3.8.12
./configure --prefix=$HOME/local/python/
make && make install
## opensslをインストール
mkdir -p ~/work/openssl
cd ~/work/openssl
curl -sSf https://www.openssl.org/source/openssl-1.1.1o.tar.gz -O
tar zxf openssl-1.1.1o.tar.gz
cd openssl-1.1.1o
./config --prefix=$HOME/openssl --openssldir=$HOME/local/openssl
make && make install
## nodejsをインストール
mkdir -p ~/work/node
cd ~/work/node
export NODE_VERSION=v18.15.0
curl -sSf https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION.tar.gz -O
tar zxf node-$NODE_VERSION.tar.gz
cd node-$NODE_VERSION
./configure --shared-openssl --shared-openssl-includes=$HOME/openssl/include/ --shared-openssl-libpath=$HOME/openssl/lib/
export LD_LIBRARY_PATH=$HOME/openssl/lib
nohup make install DESTDIR=$HOME/local PREFIX= &
## めっちゃ時間かかるので、nohupしてます。ログアウトやネットが切れても実行し続けてくれます。
## ↓↓のコマンド(tail -f nohup.out)でログが見れます。が、見たくない人は実行しなくても良いです。
tail -f nohup.out
## パスを通す
echo "export PATH=$PATH:$HOME/local/bin
export LD_LIBRARY_PATH=$HOME/openssl/lib" >> ~/.bashrc
## 通したパスを反映
source ~/.bashrc
## yarnをインストール
npm install -g yarn
手順
- sshしてbashに切り替える
- python3をインストール
- opensslをインストール
- nodejsをインストール
- yarnをインストール
sshしてbashに切り替える
さくらのサーバーのデフォルトがcsh
らしいので、bashにしましょう。
cshはexportが動かんらしい。
## さくらサーバーはbashじゃないので、bashに切り替えましょう
## ssh sakura-serverあたりをした後に以下を実行
bash
python3をインストール
node16からpython3が必要になったらしい。
mkdir -p ~/work/python3
cd ~/work/python3
wget --no-check-certificate https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
tar zxf Python-3.8.12.tgz
cd ./Python-3.8.12
./configure --prefix=$HOME/local/python/
make && make install
opensslをインストール
デフォルトでインストールされているopensslのバージョンが低すぎるらしい。
新しいバージョンをインストール。
最新ではないけど、他の人がこのバージョンでいけてたので、これが良さそう。
ここを見てくれたら解説されているらしい
mkdir -p ~/work/openssl
cd ~/work/openssl
curl -sSf https://www.openssl.org/source/openssl-1.1.1o.tar.gz -O
tar zxf openssl-1.1.1o.tar.gz
cd openssl-1.1.1o
./config --prefix=$HOME/openssl --openssldir=$HOME/local/openssl
make && make install
nodejsをインストール
nodejsをインストール
ビルドにめっちゃ時間かかる。
ビルド中にネットが切れたり、ログアウトすると止まってしまう。
そこで、nohup使って阻止する。
ログアウトやネットが切れても実行し続けてくれます。
nohup中のログはnohup.out
に出力される。tail -f nohup.out
で見れます。ctrl+c
で出れます。
mkdir -p ~/work/node
cd ~/work/node
export NODE_VERSION=v18.15.0
curl -sSf https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION.tar.gz -O
tar zxf node-$NODE_VERSION.tar.gz
cd node-$NODE_VERSION
./configure --shared-openssl --shared-openssl-includes=$HOME/openssl/include/ --shared-openssl-libpath=$HOME/openssl/lib/
export LD_LIBRARY_PATH=$HOME/openssl/lib
nohup make install DESTDIR=$HOME/local PREFIX= &
## めっちゃ時間かかるので、nohupしてます。ログアウトやネットが切れても実行し続けてくれます。
## ↓↓のコマンド(tail -f nohup.out)でログが見れます。が、見たくない人は実行しなくても良いです。
tail -f nohup.out
pathを通す
echo "export PATH=$PATH:$HOME/local/bin
export LD_LIBRARY_PATH=$HOME/openssl/lib" >> ~/.bashrc
source ~/.bashrc
yarnをインストール
npm install -g yarn
インストールできたか確認
下記コマンドで確認できます。
python --version
openssl version
node -v
npm -v
yarn -v