AWS Aamazon Linux 2 にanyenv | rubyenv 〜 nodenvインストールまで!

Rails6がリリースされ、Webpackがデフォルトになりましたね。
その為、リリースする際には rubynode が必要になります。

今回は、この2つを簡単にインストールでき、かつバージョン管理ができる anyenv をご紹介します。

ec2インスタンスを作ったばかりの場合は、以下の記事で初期設定が終わってから、こちらに戻ってきてくださいね!

AWS Amazon EC2 初期設定 | AmazonLinux2を立ち上げたら最初にすべき10の設定 [sshログイン〜ec2-userの削除まで]

AWS Aamazon Linux 2 にanyenv | rubyenv 〜 nodenvインストールまで!

anyenvとは

anyenvは、〇〇envを管理する為の便利なツールです。
今回は、このanyenvを使って

  • rubyenv
  • nodenv

の2つのenvツールをインストールしたいと思います。

最初にサーバーにインストールするのは面倒ですが、

  • rubyのバージョンアップ
  • nodeのバージョンアップ

の可能性があるなら、最初に入れておかない手はないですよね。

anyenvのインストール

yum更新

$ sudo yum update -y

gitのインストール

$ sudo yum install git -y

anyenvをgit cloneする

[注意]:anyenv製作者のRyosuke IWANAGAさんが新たにanyenvのgithubリポジトリを作成されました。
旧リポジトリ:https://github.com/riywo/anyenv
新リポジトリ:https://github.com/anyenv/anyenv

$ cd /usr/local
$ git clone https://github.com/anyenv/anyenv

anyenvフォルダの権限を変更

$ sudo chgrp -R wheel anyenv
$ sudo chmod -R g+rwxXs anyenv

環境変数の設定

  • シェルの作成
    $ cd /etc/profile.d/
    $ sudo vi anyenv.sh
    export ANYENV_ROOT="/usr/local/anyenv"
    export ANYENV_DEFINITION_ROOT="/usr/local/anyenv/share/anyenv-install"
    export PATH="${ANYENV_ROOT}/bin:${PATH}"
    eval "$(anyenv init --no-rehash -)"
  • シェルに読み込ませる
    $ exec $SHELL -l

anyenv インストール

$ anyenv install --init
$ exec $SHELL -l

インストール確認

$ anyenv --version
anyenv 1.1.1
$ which anyenv
/usr/local/anyenv/bin/anyenv

anyenvのプラグインをインストールする「plugins」ディレクトリの作成

今回はanyenv-updateプラグインとanyenv-gitプラグインの2つをインストールするので、先にそれらのプラグインをインストールする「plugins」ディレクトリを.anyenv以下に作成しておきます。

$ mkdir -p /usr/local/anyenv/plugins

anyenv-updateプラグインのインストール

anyenv updateコマンドでanyenvで入れた**env系の全てをアップデートしてくれるプラグインです。

$ git clone https://github.com/znz/anyenv-update.git /usr/local/anyenv/plugins/anyenv-update

anyenv-gitプラグインのインストール

anyenv gitコマンドでanyenvで入れた**env系の全てのgitコマンドを実行するプラグインです。

$ git clone https://github.com/znz/anyenv-git.git /usr/local/anyenv/plugins/anyenv-git

anyenv-gitの使い方

$ anyenv git pull //anyenvでインストールした全てのenv系とインストールされているプラグインのアップデート
$ anyenv git gc  //ガーベージコレクション(お掃除)
$ anyenv git remote -v //全てのリモートリポジトリを表示
$ anyenv git status //gitのステータス表示

以上でanyenvのインストールおよびanyenvを快適に使用するプラグインのインストールは完了です。

確認

以下のコマンドを打って、インストールできるenv系のリストが表示されてればOKです。

$ anyenv install -l
  Renv
  crenv
  denv
  erlenv
  exenv
  goenv
  hsenv
  jenv
  luaenv
  nodenv
  phpenv
  plenv
  pyenv
  rbenv
  sbtenv
  scalaenv
  swiftenv
  tfenv

rbenvのインストール

必要なツールのインストール

$ sudo yum -y install gcc-c++ openssl-devel git readline-devel

anyenv経由でrbenvをインストールします。

$ anyenv install rbenv

シェルに読み込ませる

$ exec $SHELL -l

インストール出来たか確認。
※ Warningは、まだrbenvでインストールされているrubyがないので警告されてるだけです。

$ anyenv versions
rbenv:
Warning: no Ruby detected on the system

インストール可能なrubyのバージョンを確認

$ rbenv install --list-all

rubyインストール

$ rbenv install 2.6.6
$ rbenv global 2.6.6
$ rbenv rehash
$ rbenv versions
* 2.6.6 (set by /usr/local/anyenv/envs/rbenv/version)

nodenv のインストール

$ anyenv install nodenv
$ exec $SHELL -l

インストール可能なnodeのバージョンを確認

$ nodenv install -l

nodeインストール

$ nodenv install 12.16.1
$ nodenv global 12.16.1
$ nodenv rehash
$ nodenv versions
* 12.16.1 (set by /usr/local/anyenv/envs/nodenv/version)

※ 以下のエラーが出た場合は、default-packagesを作成して上げれば良いそうです。

Installed node-v12.16.1-linux-x64 to /usr/local/anyenv/envs/nodenv/versions/12.16.1

nodenv: default-packages file not found
$ touch /usr/local/anyenv/envs/nodenv/default-packages
$ nodenv install 12.16.1
Installed default packages for 12.16.1

yarnのインストール

rails6だとyarnも必要なのでインストールします。

$ npm install yarn -g
$ cp -a /usr/local/anyenv/envs/nodenv/shims/{node,yarn}
$ yarn -v
1.22.4

まとめ

今回は、AWSのAmazon Linux2にanyenvをインストールし、

  • rubyenv
  • nodenv

をインストールしてみました。

メンテナンスコスト考えれば、入れていおいた方が良いように思います。

また、最近ではanvible等のサーバーインストールもコードで管理する時代になりましたので、もっと便利な方法を模索していきたいですね!

コメント

タイトルとURLをコピーしました