全部読めば何が必要で何が不要かなぜそれが必要なのかという事が自分で考えるられるようになるよ~ん!
ちょい長いけど、しっかり理解したいなら読まないと損!(つっても、1本1本は割りと短い)
逆に言えば、理解しなくていい・手順だけが分かればそれでいいってな人にはオススメしません
>> [2017年]MacでRuby on Rails環境構築を理由も含めてきちんと教えちゃる![Ruby]
>> [Mac][Ruby]Rails環境構築には、Xcode / Command Line Toolsが必要なのだ!
>> [Mac][Ruby]Rails環境構築には、Homebrewでパッケージ管理してラクをしろ!
>> [Mac][Ruby]Rails環境構築には、rbenvを使わないなんて正気ですかっ!?
>> [Mac][Ruby]Rails環境構築には、rbenvで複数のRubyバージョンを切り替えろ!
>> [Mac][Ruby]Rails環境構築には、Bundlerで複数のRailsバージョンを切り替えろ!
>> [Mac][Ruby]Rails環境構築には、データベースとしてSQLiteをオススメする!
>> [Mac][Ruby]Rails環境構築には、SQLiteを使うためのgemが必要!
イマココ >> [Mac][Ruby]Rails環境構築には、Railsプロジェクトの作り方にはコツがある!
9本の記事でRails環境構築の解説をしています
この記事は9本目、Railsプロジェクトの作り方について解説してます
- Railsの環境構築手順を知りたい人
- Railsの環境構築で、なぜそれらをインストールするのか「理解」したい人
- Homebrew?、rbenv?、Bundeler?、gem? ←これらの事がよく分からない人
- オススメしません!! → 手っ取り早くRails環境構築手順を知りたい人
- シェルコマンドを知っているのが望ましい
シェルを知らなくても書いてる通りにやればいいけど、もしかしたら意味が分からなくなるかも・・・
Contents
事前説明
ここではRailsプロジェクトを作ります
1.まずはRailsプロジェクト用のディレクトリ(フォルダ)を作る
1-1.今回は、RailsTest
フォルダを作って、その中に複数のプロジェクト用フォルダ(proj_a
とかproj_b
とか)を作ります
> mkdir ~/RailsTest > cd ~/RailsTest > mkdir proj_a > cd proj_a
1-2.現状は当然何も入ってないのを、一応見ておく
> ls -la total 0 drwxr-xr-x 2 username staff 68 8 26 07:10 . drwxr-xr-x 4 username staff 136 8 26 07:10 ..
2.ついにっ! Rubyのバージョンを指定する瞬間がキターーーーーーッ!!!
2-1.Rubyのバージョンを指定
> rbenv local 2.4.1
※global
じゃなくてlocal
なことに注意
2-2..ruby-version
というファイルができる
> ls -la total 8 drwxr-xr-x 3 username staff 102 8 26 07:11 . drwxr-xr-x 4 username staff 136 8 26 07:10 .. -rw-r--r-- 1 username staff 6 8 26 07:11 .ruby-version
2-3.中身見るとこんな感じ
2-1.
のrbenv local 2.4.1
で指定したバージョンが書かれてある
> more .ruby-version 2.4.1
3.Bundlerの出番だぜっ!
3-1.bundle init
でGemfile
ファイルができる
> bundle init Writing new Gemfile to /Users/username/RailsTest/proj_a/Gemfile
3-2.こんな感じでGemfile
ファイルができてる
> ls -la total 16 drwxr-xr-x 4 username staff 136 8 26 07:25 . drwxr-xr-x 4 username staff 136 8 26 07:10 .. -rw-r--r-- 1 username staff 6 8 26 07:06 .ruby-version -rw-r--r-- 1 username staff 145 8 26 07:25 Gemfile
3-3.Gemfile
の中身をそ~っと覗いて見てごらん
> more Gemfile # frozen_string_literal: true source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } # gem "rails" proj_a username$
3-4.Gemfileを編集
# gem "rails"
から#
を消す
#
はコメントなので、それを外すということは有効になるということ
gem "rails", "5.0.5"
↑こんな感じでバージョンを書いても良い(てか、書こうズ!)
- rオプション:リモートドメインに制限
- aオプション:全て表示
- nオプション:正規表現で名前を一致させる
> gem query -ran rails
↑これでもいいけど、大量に出てくる
↓なのでこっちの打ち方がいいよ
> gem query -ran rails | grep '^rails (' rails (5.1.3, 5.1.2, 5.1.1, 5.1.0, 5.0.5, 5.0.4, 5.0.3, 5.0.2, 5.0.1, 5.0.0.1, 5.0.0, 4.2.9, 4.2.8, 4.2.7.1, 4.2.7, 4.2.6, 4.2.5.2, 4.2.5.1, 4.2.5, 4.2.4, 4.2.3, 4.2.2, 4.2.1, 4.2.0, 4.1.16, 4.1.15, 4.1.14.2, 4.1.14.1, 4.1.14, 4.1.13, 4.1.12, 4.1.11, 4.1.10, 4.1.9, 4.1.8, 4.1.7.1, 4.1.7, 4.1.6, 4.1.5, 4.1.4, 4.1.3, 4.1.2, 4.1.1, 4.1.0, 4.0.13, 4.0.12, 4.0.11.1, 4.0.11, 4.0.10, 4.0.9, 4.0.8, 4.0.7, 4.0.6, 4.0.5, 4.0.4, 4.0.3, 4.0.2, 4.0.1, 4.0.0, 3.2.22.5, 3.2.22.4, 3.2.22.3, 3.2.22.2, 3.2.22.1, 3.2.22, 3.2.21, 3.2.20, 3.2.19, 3.2.18, 3.2.17, 3.2.16, 3.2.15, 3.2.14, 3.2.13, 3.2.12, 3.2.11, 3.2.10, 3.2.9, 3.2.8, 3.2.7, 3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2.0, 3.1.12, 3.1.11, 3.1.10, 3.1.9, 3.1.8, 3.1.7, 3.1.6, 3.1.5, 3.1.4, 3.1.3, 3.1.2, 3.1.1, 3.1.0, 3.0.20, 3.0.19, 3.0.18, 3.0.17, 3.0.16, 3.0.15, 3.0.14, 3.0.13, 3.0.12, 3.0.11, 3.0.10, 3.0.9, 3.0.8, 3.0.7, 3.0.6, 3.0.5, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 2.3.18, 2.3.17, 2.3.16, 2.3.15, 2.3.14, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.8, 2.3.7, 2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.2.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.4, 2.0.2, 2.0.1, 2.0.0, 1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.6, 1.1.5, 1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0, 1.0.0, 0.14.4, 0.14.3, 0.14.2, 0.14.1, 0.13.1, 0.13.0, 0.12.1, 0.12.0, 0.11.1, 0.11.0, 0.10.1, 0.10.0, 0.9.5, 0.9.4.1, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.5, 0.8.0)
4.ついにBundlerを使ってインストール開始だっ!!!
4-1.bundle
コマンドでインストール!
vendor/bundle
はフォルダ(ディレクトリ)を作ってそこにインストールするという指定
別にvendor/bundle
じゃなくてもいいけど、これが推奨されてるンで、これに倣ってるといいでしょう
> bundle install --path=vendor/bundle Fetching gem metadata from https://rubygems.org/.......... Fetching version metadata from https://rubygems.org/.. Fetching dependency metadata from https://rubygems.org/. Resolving dependencies... Fetching rake 12.0.0 Installing rake 12.0.0 Fetching concurrent-ruby 1.0.5 Installing concurrent-ruby 1.0.5 Fetching i18n 0.8.6 Installing i18n 0.8.6 Fetching minitest 5.10.3 Installing minitest 5.10.3 Fetching thread_safe 0.3.6 Installing thread_safe 0.3.6 Fetching builder 3.2.3 Installing builder 3.2.3 Fetching erubi 1.6.1 Installing erubi 1.6.1 Fetching mini_portile2 2.2.0 Installing mini_portile2 2.2.0 Fetching rack 2.0.3 Installing rack 2.0.3 Fetching nio4r 2.1.0 Installing nio4r 2.1.0 with native extensions Fetching websocket-extensions 0.1.2 Installing websocket-extensions 0.1.2 Fetching mime-types-data 3.2016.0521 Installing mime-types-data 3.2016.0521 Fetching arel 8.0.0 Installing arel 8.0.0 Using bundler 1.15.4 Fetching method_source 0.8.2 Installing method_source 0.8.2 Fetching thor 0.20.0 Installing thor 0.20.0 Fetching tzinfo 1.2.3 Installing tzinfo 1.2.3 Fetching nokogiri 1.8.0 Installing nokogiri 1.8.0 with native extensions Fetching rack-test 0.6.3 Installing rack-test 0.6.3 Fetching sprockets 3.7.1 Installing sprockets 3.7.1 Fetching websocket-driver 0.6.5 Installing websocket-driver 0.6.5 with native extensions Fetching mime-types 3.1 Installing mime-types 3.1 Fetching activesupport 5.1.3 Installing activesupport 5.1.3 Fetching loofah 2.0.3 Installing loofah 2.0.3 Fetching mail 2.6.6 Installing mail 2.6.6 Fetching rails-dom-testing 2.0.3 Installing rails-dom-testing 2.0.3 Fetching globalid 0.4.0 Installing globalid 0.4.0 Fetching activemodel 5.1.3 Installing activemodel 5.1.3 Fetching rails-html-sanitizer 1.0.3 Installing rails-html-sanitizer 1.0.3 Fetching activejob 5.1.3 Installing activejob 5.1.3 Fetching activerecord 5.1.3 Installing activerecord 5.1.3 Fetching actionview 5.1.3 Installing actionview 5.1.3 Fetching actionpack 5.1.3 Installing actionpack 5.1.3 Fetching actioncable 5.1.3 Installing actioncable 5.1.3 Fetching actionmailer 5.1.3 Installing actionmailer 5.1.3 Fetching railties 5.1.3 Installing railties 5.1.3 Fetching sprockets-rails 3.2.0 Installing sprockets-rails 3.2.0 Fetching rails 5.1.3 Installing rails 5.1.3 Bundle complete! 1 Gemfile dependency, 38 gems now installed. Bundled gems are installed into ./vendor/bundle.
4-2.Gemfile.lock
とvendor
ディレクトリができてるのを確認
> ls -la total 24 drwxr-xr-x 7 username staff 238 8 26 10:23 . drwxr-xr-x 4 username staff 136 8 26 10:18 .. drwxr-xr-x 3 username staff 102 8 26 10:21 .bundle -rw-r--r-- 1 username staff 6 8 26 10:19 .ruby-version -rw-r--r-- 1 username staff 143 8 26 10:20 Gemfile -rw-r--r-- 1 username staff 2677 8 26 10:23 Gemfile.lock drwxr-xr-x 3 username staff 102 8 26 10:21 vendor
↓vendor
ディレクトリの中にRailsとか入ってまっせぇ~
> ls -la vendor/bundle/ruby/2.4.0/gems/
4-3.RubyとRailsのバージョンを、一応確認しておこう
↓Rubyのバージョンを確認
> ruby -v
↓Railsの確認(bundle exec
というのを付けること!)
> bundle exec rails -v
bundle exec
を書くのがメンドウなんすけど。。。bundle exec を常に書くのは面倒です
なので、
bundle exec
を書かなくてもよくなる方法はあります
・・・が、
その方法は紹介しません
bundle exec
を書くのは理由があります
まずはそれを体に染み込ませる必要があると、僕は思っています
体に染み込んだ後で、
bundle exec
を書くのが面倒になって、
それから、書かなくてもいい方法を調べるのがいいです!!
一気に段階を進めすぎると、結局何も理解できていないままになっちゃいます!
5.やっと、Railsアプリを作成するゼヨ!
ついにきたっ!!
Railsアプリの夜明けは近いゼヨ!
5-1.Railsアプリを作るには、最初にこれを打って打って撃ちまくるんだっっ!!!
※Railsアプリ名をMyApp
にしてるけど、好きな名前でいいよ
> bundle exec rails new MyApp
6.Railsアプリを起動する
もうここまで来れば後は起動するだけ
Railsは生成すれば何も書かなくてもとりあえず動くんだよぉ~
まずは動かそうぜ!
6-1.Railsアプリ(MyApp
)の中に入る
いきなり
6-2.
の手順をやって、「あれ?なんで動かへんの?」ってなる> cd MyApp
6-2.さぁ、いよいよRailsが起動するよ~ん♪
> rails server
6-3.ChromeとかFireFoxとかVivaldiとかのWebブラウザでアクセスしやがれっ!
localhost:3000
↓こんな画面が表示される(Railsのバージョンが5の場合)
これで君も今日からRailsエンジニアだっ!!!
Railsの作り方自体は別途お勉強しようね
Rubyプログラミングのレッスンに興味がある方、レッスン内容を聞いてみたい方、なんなりとお問い合わせください。
無料体験レッスンもありますのでお気軽にどうぞ!!!
こんにちわ。とても参考になる内容です、ありがとうございます。
PC初心者丸出しの質問で申し訳ないのですが、制作したGemfileのシャープを外すというのができません、、、。
書かれている通り、また、しらべたところxの入力によって可能なようですが、それもうまくいきません。
ただmore Gemfileで出てきた # gem “rails”の上で入力するのでは意味がないのですよね?申し訳ありませんが、またもう少しここの手順について詳細に教えていただけるとありがたいです。
『1.まずはRailsプロジェクト用のディレクトリ(フォルダ)を作る』で作ったフォルダの中にGemfileがありますので、Visual Stuio CodeとかAtomとかmiとかのテキストエディタで開いて#を外せば良いですよ。
Linux使いだったので、Windowsでまごまごしてました。
すごく丁寧で、とても助かりました!!!
お役に立てたようで嬉しいです!
ありがとうございます!
5−1でつまずきました。ご教授ください。
なんとか構築できましたので、このまま勉強して行きたいと思います。お世話になりました。
コメント見るのが遅くなってすみませんでした。
解決したようで何よりです。
また分からないことがあればコメントください。
とても勉強になります。
一つつまづいた点がありましたので質問させていただきます。
$ bundle install –path=vendor/bundle
を実行すると
________ ________________________________________________
An error occurred while installing nokogiri (1.8.2), and Bundler cannot
continue.
Make sure that `gem install nokogiri -v ‘1.8.2’` succeeds before bundling.
________ ________________________________________________
このようなエラーが表示されうまくインストールされません。
エラーに記載されている以下のコマンドを入力しても解決されませんでした。
$ gem install nokogiri -v ‘1.8.2’
このような場合はどのように対処したらよいでしょうか?
回答遅くなってすみません。
↓この記事は参考になりませんか?
bundle install で nokogiri をインストールしろと言われる解決方法
https://qiita.com/pugiemonn/items/4b23a709ed194b02be6d
nokogiriがgem installできるけどbundle installできない
https://qiita.com/rantarn0326/items/3089d4e6bc9c8113c581
上の記事でもダメならまた連絡ください。
返信遅くなっていてごめんなさい。
この終末はバタバタしてて時間なかったです。
今夜見ますのでお待ちください。
質問です。
最後にrails newコマンドでエラーがでてしまうんですが、この記事の(9本分)一番最初に戻って最初からやり直すにはどうしたらいいでしょうか?
1.どういうエラーですか?(エラーメッセージとか、操作手順とか)
2.何をインストールしたとか、○○と○○の記事の手順通りにやったとかやってないとか
こういう感じの情報を書いていただければ分かるかもしれませんよ。
「エラーが出る」だけでは何が悪そうみたいな当たりをつけられないので、ぜひ情報を書いてみてください。
こんばんは。
初めてrailsの環境を作るという事で今回こちらのサイトで環境構築をさせて頂きました。
大変分かりやすかったです。ありがとうございました。
一点質問があります。
6-2のrails serverコマンド でサーバーを立ち上げる箇所ですが、表記通りrails sever コマンド を打ち込んだところ下記のメッセージが表示されサーバーを立ち上げることが出来ませんでした。
Rails is not currently installed on this system. To get the latest version, simply type:
$ sudo gem install rails
You can then rerun your “rails” command.
そこで、rails serverコマンドの前にbundle execをつけてbundle exec rails serverと打ったところサーバーが立ちあがりlocalhost:3000に接続する事が出来ました。
rails serverで立ち上がらなかったのはrailsのバージョンの違いによるものでしょうか?
それともbundlerでrailsをインストールしたのでbundle execと付けなければいけないのでしょうか?
私のバージョンは下記になります。
ruby:2.5.1
rails:5.2.0
お時間がありましたら、どうぞ宜しくお願いします。
rbenvとかbundlerとかが正しくインストールされているとすれば、この記事で示している手順で問題ありません。(と言うか、rbenvとかbundlerとかが正しくインストールされていることが前提でこの記事は成立しています)
ruby:2.5.1、rails:5.2.0でやってみましたところ、エラーは出ていませんし、問題なく実行できました。
で、問題があるとすれば、元々macにインストールされているrubyが使用されているとか、あとで(bundlerを使わずに)インストールしたrailsが使用されているとかが考えられます。
※この記事で要所要所にrubyやrailsのバージョンを確認するコマンドを入れてるので、考えにくいですけど。
一度rubyやrailsを別のバージョンにして確認してもらえませんか?
それでも同じようなエラーが出るかどうかまた教えてください。
こんにちは。
とても分かりやすく初心者ですがとても参考にさせて頂いています。
質問なのですが、「2-1.Rubyのバージョンを指定」で指定したのですが、
ruby-versionというファイルがでてきません。何か思い当たる点などあれば教えていただきたいです。
rubyはバージョン2.5.1をインストールしたつもりですが、rbenv -vと打つとrbenv 1.1.1と表示されます。さらに、ruby -vと打つとインストールした覚えが無いバージョンのruby(多分初期から入っているruby?)が表示されます。これが原因でしょうか?
> rubyはバージョン2.5.1をインストールしたつもりですが、rbenv -vと打つとrbenv 1.1.1と表示されます。
「rbenv -v」はrbenv自体のバージョンですので正常です。
> さらに、ruby -vと打つとインストールした覚えが無いバージョンのruby(多分初期から入っているruby?)が表示されます。これが原因でしょうか?
「which ruby」と「echo $PATH」で出てきた結果を教えてください。
「.ruby-version」(←ピリオドが先頭についているのに注意)というファイルができるはずです。
ターミナルで「ls -la」と打ってみてください。
先頭に「.」がついているファイルは不可視ファイルと言って、基本的には見えません。
ターミナルなら「ls -la」もしくは「ls -a」で見えますが、Finderだと見えません。
※Finderで不可視ファイルを見る方法はググってください
※私はFunterというツールを使っています
「ls -la」でも見えないならまたコメントください。
返信ありがとうございます。
「which ruby」→「/usr/bin/ruby」
「echo $PATH」→「/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin」
と出ます。
「ls -la」と打つと.ruby-versionと出てきました。
> 「ls -la」と打つと.ruby-versionと出てきました。
であれば、最初のご質問が「ruby-versionというファイルがでてきません。」とありましたので、
『2-2..ruby-versionというファイルができる』から続行できるのではないでしょうか?
> ruby -vと打つとインストールした覚えが無いバージョンのruby
「echo $PATH」で出てくる量が少ない気がします
「which ruby」で出てきたものは、macに初期からインストールされているものでしょう。
この場合、環境変数PATHの設定が足りていないと思います。
.bash_profileに「eval “$(rbenv init -)”」書いてますか?
↓参考
https://gabekore.org/mac-ruby-rails-rbenv
本記事は、「https://gabekore.org/mac-ruby-rails-overview」から順番に読んで一つずつインストール及び設定してくださいね。