こんにちわ、PHPエンジニアのエンジニア婦人(@naho_osada)です。
PHPエンジニアとして9年~の経験があります。
CentOS7で新しいバージョンのnodejsが必要になり、インストールした話です。
例によってそのままyum installすると古いものが入ってしまいますので、最新を入れたい場合は必ずリポジトリを更新します。
puppeteerなどを使いたい場合は新しいものでないと動かないので…
インストールはGitHub推奨(2023年)
以前の「リポジトリ参照先を変更して~」を実行すると、Warningが出るようになりました。
赤警告で驚きますが、要は「これもう使うのやめるから別の方法でやってよね、Gitから取ってきて云々してよね」っていってるだけです。
そのため、今CentOS7にnodejsを入れるときはNodesourve Node.js RPMからyum installする方法になります。
sudo yum install https://rpm.nodesource.com/pub_16.x/el/7/x86_64/nodejs-16.17.0-1nodesource.x86_64.rpm
こちらは16のバージョンを指定してインストールさせています。
ただしこちらの方法だとしてもGitHubから取るのを推奨するよ、と書いてあるので、特別バージョン指定が要らない場合はGitHubからcloneしてくる方法が良いと思います。
なお、2023年10月時点の最新は20.xです。
sudo yum install https://rpm.nodesource.com/pub_20.x/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm -y
CentOS7は18以上未対応
最新版は20ですが、CentOS7は未対応のようです。
実際やってみるとエラーが出て入れられないと思います。
- nodeのv18を使ったらエラーになった(CentOS7) – ITのプロへ
- Node.js v12 -> v16にyumでアップデートしてみた。(CentOS 7) #Node.js – Qiita
もし入れるのであれば、先に紹介したように16.xを入れてください。
リポジトリ参照先を変更する(以前の方法)
以下の方法は現在使えません。参考までに残しておきます。
何もしないでyum installをすると古いnodejsが入ってしまうので、まずはリポジトリ参照先を変更します(2020年6月では14が最新でした)。
setup_14.xの数字を変えることで指定のバージョンをyum install)できるようになります。
sudo curl -sL https://rpm.nodesource.com/setup_14.x | bash -
このとき、
「エラー: トランザクション ロックを(/var/lib/rpm/.rpm.lock 上に)作成できません。(許可がありません)」
というエラーが出ることがあります。sudoでもダメなときはsu -uでスーパーユーザーになってからやる(=管理者)と成功します(スーパーユーザーの終了はexitです)。
nodejsをインストールする
更新できたらyum install nodejsでインストールします。nodejsを入れるとnpmも一緒についてきます。
sudo yum install nodejs
# 実行時(2020年6月)は以下がインストールされました
node -v
# 14.4.0
npm -v
# 6.14.5