Railsの挙動を気軽に試せる環境が欲しいと思って、手元の仮想環境にRailsをインストールしようしたら、思った以上にハマったので備忘のため、メモを残しておきます。
インストールする環境
Ubuntu 18.04.3 を使います。
ちなみにvagrantのhashicorp/bionic64 のboxを使ってます。
パッケージは最新化してます。
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.3 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
rbenvをインストールする
Progateを見るとRubyの開発環境を構築する際はrbenvを用いてインストールすることが一般的とのことです。
rbenvを用いると簡単にrubyのバージョンをスイッチできるためとのこと。
一般ユーザでrbenvをインストールするとインストールしたユーザでしかrbenvやRubyを実行をできなさそうででどのユーザでも実行できるようにしたいのでサーバ全体インストールします。
※実際はユーザにインストールするか主流なのか、サーバ全体にインストールするのが主流なのかは知りたいところ
rbenvに必要なパッケージをインストールする
こちらのwikiを参考にしてインストールします。
$ sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libreadline-dev' instead of 'libreadline6-dev'
E: Unable to locate package libgdbm6
libgdbm6のパッケージが見つからないと怒られました。
さっきのwikiをよくみたら
# Depending on your version of Ubuntu/Debian/Mint, libgdbm6 won't be available.
# In that case, try an earlier version such as libgdbm5.
apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev
Ubuntsによってはlibgdbm6が利用できないから、libgdbm5を使ってねと。
※注意書きはしっかり読みましょう。
ということで、以下のように書き換えて再度トライ
$ sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev libdb-dev
次はうまく行きました。出力は長かったので割愛します。
rbenvをインストール
必要なパッケージをインストールしていきます。
$ sudo git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv
$ sudo git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build
$ sudo git clone https://github.com/rbenv/rbenv-default-gems.git /usr/local/rbenv/plugins/rbenv-default-gems
sudo sh -c "echo bundler >> /usr/local/rbenv/default-gems"
bashで使えるようにします。
$ sudo vim /etc/profile.d/rbenv.sh
export RBENV_ROOT=/usr/local/rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
##rubyをインストール
rubyの2.6.6 をインスールします。
# rbenv install 2.6.6
バージョンを確認します。
# ruby -v
rbenv: ruby: command not found
The `ruby' command exists in these Ruby versions:
2.6.6
rubyのコマンドがないと怒られました。
どうも rbenv でバージョンを指定しないといけないらしい
# rbenv global 2.6.6
# rbenv rehash
# ruby -v
ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-linux]
rubyのコマンドが打てるところまで確認
##Ruby on Railsをインストール
必要なミドルウェアをインストール
SQLite、nodejs、yarnをインストール
※nodejs と yarn をそのままaptで入れるとrailsが必要なバージョンが入れられないので以下方法でインストール
$ sudo apt install sqlite3 libsqlite3-dev
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt-get install -y nodejs
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn
アプリを作成
rails new blog
railsサーバを起動(仮想サーバに起動しているのでIPを指定)
$ rails s -b xxx.xxx.xxx.xxx
IブラウザでIPを指定してアクセス
http://xxx.xxx.xxx.xxx:3000/
でブラウザにアクセスしたら、railsの画面が表示されました。
##参考
rbenvの必要パッケージ:https://github.com/rbenv/ruby-build/wiki
rbenvをインストールした時の参考
https://gist.github.com/berga/913c4156064dfdd22d913304bc854033
https://loumo.jp/archives/21101
nodejsのインストール方法:https://github.com/nodesource/distributions
yarnのインストール方法:https://qiita.com/guuuuuchan/items/08f71e6e5bc83432df21