Redmineの最新番(4.0.1)を、Ubuntu Server 18.04 にインストールするために、表題のRubyと、そのWebフレームワークであるRuby on Railsをインストールするために色々試行錯誤した覚書です。

ここでは、ユーザーローカル環境にRubyの環境をいれてみた方法について、書いていきます。

最初は、このRbenvとか言うプログラムが何者なのか全くわからないままにやっていたのですが、2度、3度と繰り返してインストール、検証するうちに何と無くぼやっとですがわかってきました。

Rbenvを入れると、好きなRubyのバージョンや、Railsのバージョンを選んで、開発用に環境を用意できるみたいですね。私の場合は、Rubyを勉強するためではなく、最新版のRedmineを入れてみようという好奇心からいれてみました。

ゴール

  • サーバ:Ubuntu Server 18.04 LTS
  • Rbenvを使用して、Ruby 2.6.1、Rails 5.2.2を導入する
  • その後、Redmine4.0.1を入れる
  • インストール先は~/.rbenv以下

rbenvと依存関係のインストール

パッケージリストの更新

$ sudo apt update

rbenvをインストールするのに必要とされるパッケージをインストール

$ sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev libmysqlclient-dev

GitHubからrbenvを~/.rbenvにクローン

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv

環境変数$PATHrbenvコマンドの実行パスを追加するスクリプトを~/.bashrcに追加

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

rbenvを自動的に読み込ませるために、~/.bashrceval "$(rbenv init -)"を追加

$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc

現在のログインセッションに反映

$ source ~/.bashrc

rbenvが正しくセットアップ出来たか確認するために、typeコマンドを使用します。

次のような表示が出れば正しくセットアップされています。

$ type rbenv

rbenv is a function
rbenv ()
{
    local command;
    command="${1:-}";
    if [ "$#" -gt 0 ]; then
        shift;
    fi;
    case "$command" in
        rehash | shell)
            eval "$(rbenv "sh-$command" "$@")"
        ;;
        *)
            command rbenv "$command" "$@"
        ;;
    esac
}

ruby-buildでRubyをインストール

ruby-buildプラグインをGitHubからインストール。

これは、Rubyの複数のバージョンのRubyを簡単に導入できるようにするツールです。

$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

rbenv install -lで、インストールできるバージョンのリストが表示されます。ここでは、ruby2.6.1を導入します。

$ rbenv install 2.6.1

インストールしたRubyをデフォルトで使用できるようにするために、rbenv globalを使用します。

$ rbenv global 2.6.1

rbenv global [version]で、指定したバージョンのRubyが配置されます。

正しく配置されているかバージョンを確認。

$ ruby -v
ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-linux]

例えば、Ruby2.3.0を使用したい場合、rbenv install 2.3.0、その後rbenv global 2.3.0とするだけで、現在の環境を偏向することが出来ます。もし、再度2.6.0を使用したければ、rbenv global 2.6.0で公開し直せばOK。

もちろん、このようにしても、2.3.0と2.6.0はそれぞれインストールされた状態になっています。

gemを利用する

gemとは、Rubyで利用できる色々なライブラリのことを指しますが、それをインストールするツール名もこれまたgemです。

前準備として、インストールの時にドキュメントを作成しないように(時間がかかるために)~/.gemrcにそれを無効にするスクリプトを書いておきます。

$ echo "gem: --no-document" > ~/.gemrc

次に、bundlerをインストールします。

bundlerは、gemの依存関係を管理するツールです。

$ gem install bundler
Fetching bundler-2.0.1.gem
Successfully installed bundler-2.0.1
1 gem installed

gem envを使うことで、gemライブラリ群の環境設定を知ることが出来ます。引数にhomeを指定すると、gemライブラリがどこにインストールされているのか確認できます。

$ gem env home
/home/someone/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0

Railsのインストール

最新バージョンのRailsをインストールする場合は、単純に次のようにコマンドを実行します。

$ gem install rails
:
Successfully installed rails-5.2.2
38 gems installed

もし、バージョンを指定してインストールする場合は次のようにします。

$ gem search '^rails$' --all
$ gem install rails -v 4.2.7

最後におまじないです。

$ rbenv rehash

バージョンを確認します。

$ rails -v
Rails 5.2.2

結果

ここまでやってきて、便利な半面一つ疑問に残るのが、「ユーザ別に環境を作成できるのは良いとして、サーバーとして利用するにはどうすればいいの?」っていうことです。

実際、このあとRedmine4.0.1をインストールし、動作させるところまで確認してみましたが、ユーザーにローカルに実行環境がインストールされているために、必要なものを手作業でシステムワイドにコピーするという、時代錯誤な方法を撮るしかありませんでした。

そこで次は、システムワイドにインストールする方法について検証してみようと思います。


0件のコメント

コメントを残す

メールアドレスが公開されることはありません。