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

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


 

 
カテゴリー: Linuxrubyubuntu

zaturendo

中小企業社内SE。

0件のコメント

コメントを残す

アバタープレースホルダー

メールアドレスが公開されることはありません。 が付いている欄は必須項目です