ことゆうのOUTPUT

アウトプット成果物の置き場

Ruby on Rails 5の学習(速習) 1日目 学習メモ

昨日でRubyの入門書に目を通し終わりました。
もう少しサンプルコードをいじろうかと思っていたのですが、その前にRailsを先にちょっとやってみようか、と考えました。

以下の本を先週木曜に入手しておりまして、早くやってみたいという気持ちが。

現場で使える Ruby on Rails 5速習実践ガイド

現場で使える Ruby on Rails 5速習実践ガイド

  • 作者: 大場寧子,松本拓也,櫻井達生,小田井優,大塚隆弘,依光奏江,銭神裕宜,小芝美由紀
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2018/10/19
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

本日の進捗: 読書 1時間 1章~3章途中 
       Ruby on Railsの環境設定 5時間!!

Railsのインストール(CentOS7上)ではまりました。
本の通りにやろうとしても、データベースの設定方法があまり詳しくなく、ネット記事をあてにしたのですが。。
自分でもよくわからないようなはまり方をしました。

今回の件で学んだことは「知らないことは、とりあえず完コピしてみる」です。
やりたいことが一直線に載っている記事をがんばって探して、それを参考にするべきでした。こういう試行錯誤経験は非常に勉強にはなりますが、ちょっと出鼻をくじかれました。
自分で組み合わせたりすると、うまくいかなくなることがあります(今回の私がそれです)。
ただ、脱線したことでいろいろ新しいことを学べたり、復習できたりできて楽しかったです。いい勉強代だったと考えます。



はまった内容はちゃんとメモを残していなかったので、主なものを挙げるならば、以下のような感じ。

最初は、postgresql-serverはv11をインストールしたのですが。。

sudo yum -y install postgresql11-server
sudo systemctl start postgresql-11.service

bundle install --path vendor/bundle の際に以下のようなエラー。

To see why this extension failed to compile, please check the mkmf.log which can be found here:

/home/vagrant/rails_v5.2.1/scaffold_app/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0-static/pg-1.1.4/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /home/vagrant/rails_v5.2.1/scaffold_app/vendor/bundle/ruby/2.6.0/gems/pg-1.1.4
for inspection.
Results logged to
/home/vagrant/rails_v5.2.1/scaffold_app/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0-static/pg-1.1.4/gem_make.out

An error occurred while installing pg (1.1.4), and Bundler cannot continue.
Make sure that `gem install pg -v '1.1.4' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
pg

これが必要だったみたいです。

sudo yum -y install postgresql-devel

なんとなく動いたのですが、本体とdevelでのver違いによって問題が起こるかどうかわからないので、
最終的なインストールは古いpostgresql-server(9.2.24)にしておきました。


あと、gemのインストール後に gem update --system は忘れずにしておきましょう。



一応、私が行った設定手順を載せておきます。まったくもって怪しいので、取り扱い注意です!

[bundlerをインストール]
参考サイト:
qiita.com

gem install bundler
gem query -ra -n "^rails$"  #Railsの利用可能なバージョンを確認
#v5.2.1をいれることに
mkdir rails_v5.2.1 #rails隔離フォルダ作成
cd rails_v5.2.1
bundle init
echo 'gem "rails", "5.2.1"' >> Gemfile
bundle install --path vendor/bundle

bundlerを使う場合は、コマンドの先頭に、「bundle exec」を付ける。これをやらないと、システム側のgemを指定したことになります。システム共通の場所をフィールドにコマンドが実行される。
bundler、bundle execについて ※自分用メモ - Qiita

curl -L https://github.com/gma/bundler-exec/raw/master/bundler-exec.sh > ~/.bundler-exec.sh

vi ~/.bundler-exec.sh #編集(下の方のリストにrailsを追記)

<<< 省略 >>>
unicorn
unicorn_rails
wagon
rails <-これを追記
}"

vi ~/.bashrc #(または~/.bash_profile)に追記

# "bundle exec" shortcut setting
[ -f ~/.bundler-exec.sh ] && source ~/.bundler-exec.sh

source ~/.bashrc


[postgresqlインストール]

参考サイト(v11のインストール方法)
PostgreSQL 11 を CentOS 7 にインストールするには - Qiita

sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

実際は9.2.24をインストールしました。
sudo yum -y install postgresql-server
sudo yum -y install postgresql-devel

sudo /usr/bin/postgresql-setup initdb

sudo systemctl start postgresql.service
sudo systemctl enable postgresql.service

参考サイト:
Vagrant &amp; CentOS7.2 に Rails と PostgreSQL をインストールする手順 - Qiita

sudo su - postgres
psql #postgresにログイン
# ユーザーを作成
CREATE USER vagrant;
# ユーザーに権限を追加
ALTER ROLE vagrant WITH SUPERUSER CREATEROLE CREATEDB REPLICATION;
(BYPASSRLSは9.5以降なので、適用していない)

\du # ユーザーを確認
\q #postgresからログアウト

exit


[アプリケーション(今回はscaffold_app)を生成]

rails new scaffold_app -d postgresql --skip-bundle
cd scaffold_app
bundle install --path vendor/bundle

#Gemfileの以下をコメント化
#gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]


[nodejs-12インストール]
参考サイト
Node.js v12をyumでインストールしてみた。(CentOS 7) - Qiita

sudo yum install https://rpm.nodesource.com/pub_12.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm
sudo yum -y install nodejs
PGP不整合とかの警告が出ていたので注意!今回はそのままいきますが、後日対応予定。


bin/rails db:create
=>できた!!!