Amazon Linux 2022 (AL2022) と Node.js

そろそろ Node も 18かなという感じ。この時点、2022/9/下、 https://nodejs.org/ja/ にて、バージョンは「16.17.0 LTS 推奨版」「18.9.0 最新版」です。
前回記事(2022/2/) AmazonLinux2 に Node.js - hs9587’s diary より少し進んでいるけど、LTS推奨版のメジャーバージョン 16 は変わっていません。それはいいとして、AmazonLinux2 では、glibc とかバージョンが合わなくて、18系は入りません。
そして「りあクト!」の第4版が出て、それが「v18.7.0 って」なので 18系が良いのですが、どうしましょう。りあクト! TypeScriptで始めるつらくないReact開発 第4版【① 言語・環境編】 - くるみ割り書房 ft. React - BOOTH第4版【② React基礎編】第4版【③ React応用編】

Amazon Linux 2022 (AL2022)

前回記事(2022/2/) AmazonLinux2 に Node.js - hs9587’s diary では、Amazon Linux 2 (AL2) を見ていました、その AL2 の次は AL2022 という事です。
Amazon Linux 2022 のプレビューの発表
Comparing Amazon Linux 2 and Amazon Linux 2022 - Amazon Linux 2022
EC2コンソールからの「インスタンスの起動」では、「アプリケーションおよび OS イメージ (Amazon マシンイメージ)」 の選択で、「クイックスタート」には出て来ないの注意、「その他の AMI を閲覧する」で「コミュニティ AMI」になります、検索ワードは「al2022」にしましょう、「Amazon Linux 2022」「Amazon Linux」ではすぐ出てきません。そして日付のついたのが複数出て来るの、新しい日付のをえらべばいいでしょう、minimal じゃなくて良いよね。今カーネルはみんな 5.15 みたい。

glibc のバージョンは上がっています、Node.js 18 (2.27, 2.28以上)には全然余裕です。

Package name Amazon Linux 2 Amazon Linux 2022
glibc 2.26 2.34
gcc 7.3 11.2
binutils 2.29 2.35

https://docs.aws.amazon.com/linux/al2022/ug/compare-al2-to-AL2022.html#glibc-gcc-and-binutils

パッケージコマンド「dnf」

パッケージコマンドは「dnf」です。
Package management tool - Amazon Linux 2022

まだ「yum」も使える(dnf のポインターになってる)けど、これからはこちらを使いましょう。

dnf check-release-update

そして時々「dnf check-release-update 」しましょう。たまに

WARNING:
  A newer release of "Amazon Linux" is available.

とか言われます、適宜「dnf update --releasever=2022.0.<何か>」どうぞ。

パッケージ、nodejs, npm あります

nodejs.x86_64 1:18.4.0-1.amzn2022 amazonlinux
npm.x86_64 1:8.12.1-1.18.4.0.1.amzn2022 amazonlinux

パッケージのバージョンは 18.4 です、最新にはなってませんが 18系です。
npm があれば yarn とかも来ます

sudo dnf install nodejs npm -y 
sudo npm install -g yarn typescript ts-node typesync npm-check-updates
node --version                   
v18.4.0
npm --version                     
8.12.1
npx --version                     
8.12.1
yarn --version                    
1.22.19
ts-node -v                        
v10.9.1

とか。

他のパッケージ

nkf , w3m もはいってるのはいいですね。nkf があるので guess はエイリアスにしておきます

alias guess='nkf --guess'

locate (mlocate) は無いようです、findutilsパッケージは入ってるので「find / -name <ファイル名>」しましょう、sudo 必要かな。

asdf で nodejs

「りあクト!」第4版のリードに従って、バージョンマネージャ asdf でのインストールもやってみます。
Getting Started | asdf
GitHUB からホームにもってきて、.bashrc .zshrc を調整、asdfコマンド動きます

(0)ec2-user@ip-<何か>[18] asdf --version 
v0.10.2-7e7a1fa

そして
.default-npm-packages

yarn
typescript
ts-node
typesync
npm-check-updates

として

asdf plugin add nodejs
asdf install nodejs latest
asdf global nodejs latest

すると

node --version
v18.9.1
npm --version
8.19.1
npx --version
8.19.1
yarn --version
1.22.19
ts-node -v
v10.9.1

とか。いい感じ。

fs.inotify.max_user_watches=65536

あと、手元機の VSCodessh拡張から nodejs機をみていると、max_user_watches の制限に引っかかるようなので、調整しておきます
Running Visual Studio Code on Linux

(0)ec2-user@ip-<何か>[30] cat /proc/sys/fs/inotify/max_user_watches
15275
(0)ec2-user@ip-<何か>[33] sudo sed -i.old -e '$afs.inotify.max_user_watches=65536' /etc/sysctl.conf
[~] <pts/1>
(0)ec2-user@ip-<何か>[34] tail -1 /etc/sysctl.conf         
fs.inotify.max_user_watches=65536
(0)ec2-user@ip-<何か>[35] sudo sysctl -p                   
fs.inotify.max_user_watches = 65536
[~] <pts/1>
(0)ec2-user@ip-<何か>
[36] cat /proc/sys/fs/inotify/max_user_watches
65536