質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

608閲覧

リモートリポジトリをクローンした際の環境構築を行いたい

keisuke0919

総合スコア34

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/09/04 13:36

クローンしたリポジトリをローカルで正常に動作させたい。

「Everyday Rails - RSpecによるRailsテスト入門」のリモートリポジトリをクローンしました。
そしてGemfileに本書に書いてある通りのgemを入力し、bundle installすると、エラーが出ます。

試したこと

$bundle install
上記を実行すると

rbenv:

1 2The `bundle' command exists in these Ruby versions: 3 2.5.1 4 2.6.2 5 2.6.3

となります。
$rbenv local 2.6.3
を実行してrubyのバージョンを2.6.3に変更
$ruby -v
とすると
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
と表示されるのでバージョン切り替えは成功。
再び、
$bundle install
を実行。

Fetching gem metadata from https://rubygems.org/............. Fetching gem metadata from https://rubygems.org/. Resolving dependencies... Using rake 10.3.2 Using i18n 0.6.9 Fetching json 1.8.1 Installing json 1.8.1 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/json-1.8.1/ext/json/ext/generator /Users/adachikeisuke/.rbenv/versions/2.6.3/bin/ruby -I /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/2.6.0 -r ./siteconf20190904-87012-h8h7sx.rb extconf.rb creating Makefile current directory: /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/json-1.8.1/ext/json/ext/generator make "DESTDIR=" clean current directory: /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/json-1.8.1/ext/json/ext/generator make "DESTDIR=" compiling generator.c In file included from generator.c:1: ./../fbuffer/fbuffer.h:175:47: error: too few arguments provided to function-like macro invocation VALUE result = rb_str_new(FBUFFER_PAIR(fb)); ^ /Users/adachikeisuke/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/intern.h:814:9: note: macro 'rb_str_new' defined here #define rb_str_new(str, len) RB_GNUC_EXTENSION_BLOCK( \ ^ In file included from generator.c:1: ./../fbuffer/fbuffer.h:175:11: warning: incompatible pointer to integer conversion initializing 'VALUE' (aka 'unsigned long') with an expression of type 'VALUE (const char *, long)' (aka 'unsigned long (const char *, long)') [-Wint-conversion] VALUE result = rb_str_new(FBUFFER_PAIR(fb)); ^ ~~~~~~~~~~ generator.c:840:25: error: use of undeclared identifier 'rb_cFixnum' } else if (klass == rb_cFixnum) { ^ generator.c:842:25: error: use of undeclared identifier 'rb_cBignum' } else if (klass == rb_cBignum) { ^ 1 warning and 3 errors generated. make: *** [generator.o] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/json-1.8.1 for inspection. Results logged to /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-18/2.6.0-static/json-1.8.1/gem_make.out An error occurred while installing json (1.8.1), and Bundler cannot continue. Make sure that `gem install json -v '1.8.1' --source 'https://rubygems.org/'` succeeds before bundling. In Gemfile: rails was resolved to 4.1.1, which depends on actionmailer was resolved to 4.1.1, which depends on actionpack was resolved to 4.1.1, which depends on actionview was resolved to 4.1.1, which depends on activesupport was resolved to 4.1.1, which depends on json

上記のエラーが発生。
とりあえず、素直に
$gem install json -v '1.8.1'
を実行。

Building native extensions. This could take a while... ERROR: Error installing json: ERROR: Failed to build gem native extension. current directory: /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/json-1.8.1/ext/json/ext/generator /Users/adachikeisuke/.rbenv/versions/2.6.3/bin/ruby -I /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/2.6.0 -r ./siteconf20190904-87119-16xh3zh.rb extconf.rb creating Makefile current directory: /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/json-1.8.1/ext/json/ext/generator make "DESTDIR=" clean current directory: /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/json-1.8.1/ext/json/ext/generator make "DESTDIR=" compiling generator.c In file included from generator.c:1: ./../fbuffer/fbuffer.h:175:47: error: too few arguments provided to function-like macro invocation VALUE result = rb_str_new(FBUFFER_PAIR(fb)); ^ /Users/adachikeisuke/.rbenv/versions/2.6.3/include/ruby-2.6.0/ruby/intern.h:814:9: note: macro 'rb_str_new' defined here #define rb_str_new(str, len) RB_GNUC_EXTENSION_BLOCK( \ ^ In file included from generator.c:1: ./../fbuffer/fbuffer.h:175:11: warning: incompatible pointer to integer conversion initializing 'VALUE' (aka 'unsigned long') with an expression of type 'VALUE (const char *, long)' (aka 'unsigned long (const char *, long)') [-Wint-conversion] VALUE result = rb_str_new(FBUFFER_PAIR(fb)); ^ ~~~~~~~~~~ generator.c:840:25: error: use of undeclared identifier 'rb_cFixnum' } else if (klass == rb_cFixnum) { ^ generator.c:842:25: error: use of undeclared identifier 'rb_cBignum' } else if (klass == rb_cBignum) { ^ 1 warning and 3 errors generated. make: *** [generator.o] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/json-1.8.1 for inspection. Results logged to /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-18/2.6.0-static/json-1.8.1/gem_make.out

エラー発生。
こちらの記事を参考にして
$bundle update json
を実行すると、インストールが完了し、
$bundle install
が実行できました!
次に、
$rails s
を実行すると、下記のエラーが発生。

/Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-4.1.1/lib/active_support/core_ext/object/duplicable.rb:82: warning: BigDecimal.new is deprecated; use BigDecimal() method instead. /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-4.1.1/lib/active_support/values/time_zone.rb:285: warning: circular argument reference - now => Booting WEBrick => Rails 4.1.1 application starting in development on http://0.0.0.0:3000 => Run `rails server -h` for more startup options => Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option) => Ctrl-C to shutdown server /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-4.1.1/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Fixnum is deprecated /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-4.1.1/lib/active_support/core_ext/numeric/conversions.rb:121: warning: constant ::Bignum is deprecated Exiting Traceback (most recent call last): 8483: from bin/rails:3:in `<main>' 8482: from bin/rails:3:in `load' 8481: from /Users/adachikeisuke/Desktop/rails-4-1-rspec-3-0-01_untested/bin/spring:16:in `<top (required)>' 8480: from /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 8479: from /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 8478: from /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>' 8477: from /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load' 8476: from /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/spring-1.1.3/bin/spring:48:in `<top (required)>' ... 8471 levels... 4: from /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-4.1.1/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 3: from /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-4.1.1/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 2: from /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-4.1.1/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' 1: from /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-4.1.1/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>' /Users/adachikeisuke/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-4.1.1/lib/active_support/core_ext/numeric/conversions.rb:131:in `block (2 levels) in <class:Numeric>': stack level too deep (SystemStackError)

こちらを参考にGemfileのRailsのバージョンを
gem 'rails', '5.1.1'
に変更して
$bundle update rails
を実行すると、

Fetching gem metadata from https://rubygems.org/............. Fetching gem metadata from https://rubygems.org/. Resolving dependencies... Bundler could not find compatible versions for gem "railties": In Gemfile: factory_girl_rails (~> 4.4.1) was resolved to 4.4.1, which depends on railties (>= 3.0.0) jquery-rails was resolved to 3.1.0, which depends on railties (>= 3.0, < 5.0) rails (= 5.1.1) was resolved to 5.1.1, which depends on railties (= 5.1.1) sass-rails (~> 4.0.3) was resolved to 4.0.3, which depends on railties (>= 4.0.0, < 5.0)

上記のエラーが発生しました。

かなりエラーにはまっており、自分一人では解決できそうにありません。
正常に環境構築をして、早くRSpecの学習を始めたいです。
解決策分かる方おられましたら、是非回答をよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

古いバージョンの電子書籍をダウンロードしていました。
最新版をダウンロードした方がクローンした後の環境構築が楽になるっともいます!

投稿2019/09/08 01:11

keisuke0919

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

解決しました!
まず、
Gemfileでrailsのバージョンを4.2.10にします。
gem 'rails', '4.2.10'
そして
$bundle update rails
とすると、うまくアップデートしてくれます。
そして
$rails s
とするとサーバーがたちました!
しかし、ブラウザで
bin/rails db:migrate
をしなさいというエラーが出ます。
言われた通りすると、

rake aborted! NoMethodError: undefined method `last_comment' for #<Rake::Application:0x00007fd50f46a3c0> /Users/adachikeisuke/Desktop/rails-4-1-rspec-3-0-01_untested/Rakefile:6:in `<top (required)>' -e:1:in `<main>' (See full trace by running task with --trace)

というエラーが出ます。
そこでこちらを参考にして、
Gemfileに
gem 'rake', '< 11.0'
と入力して、
$ bundle update rake
と入力して、
$ rake db:migrate
とするとうまくマイグレーションしてくれて、
$rails s
で、サーバーが立ち上がり、うまくアプリケーションが動いてくれました!

投稿2019/09/04 14:04

keisuke0919

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jnchito

2019/09/04 23:06 編集

翻訳者の伊藤です。 そもそもの疑問なんですが、なぜ Rails 4.1版のリポジトリをクローンしてるのでしょうか?(エラーメッセージを見る限り、4.1版っぽいので) 最新のEveryday Rails(電子書籍)を入手しているのであれば、Rails 5.1版のリポジトリをクローンするはずです。 Rails 4.1版 https://github.com/everydayrails/rails-4-1-rspec-3-0 Rails 5.1版 https://github.com/everydayrails/everydayrails-rspec-2017 Rails 5.1版ならすんなりセットアップできる、とは限りませんが、新しい実行環境の方がトラブルは起きにくいとは思います。 また、RSpecを学習する上でもなるべく最新の情報(=最新版の電子書籍)で勉強を進める方が良いと思います。
keisuke0919

2019/09/05 14:43

私の購入した電子書籍にはRails 4.1版のリンクが貼ってありますね。 つい先日購入しましたが、、
jnchito

2019/09/05 21:13 編集

なるほど・・・。もしかしたらこちらのミス?と思い、原稿をgrepしてみましたが、4.1版のリンクは見つかりませんでした。 $ grep 'rails-4-1-rspec-3-0' manuscript/*.txt #=> 結果ゼロ $ grep 'everydayrails-rspec-2017' manuscript/*.txt #=> 結果あり 参考情報としてairget0919さんがご覧になっている電子書籍の最終更新日(巻末の変更履歴に載っている最新の更新日。2019/04/08なら最新です)と、4.1版のリンクが載っているページ(EPUB or MOBIならだいたいの位置がわかる情報)を教えてください。
jnchito

2019/09/05 21:37

もしかすると・・・ですが、"Download Extras"のファイルをダウンロードしていないでしょうか? Leanpubにログインして https://leanpub.com/user_dashboard/library にアクセスすると以下の画面が開きます。 https://www.evernote.com/l/AS6eFZN8jARCT4wcelQA8CfKJOYTqYV4kNo 最新版のファイルを入手する場合は赤枠のいずれかのリンクをクリックしてください。"Download Extras"はRails 4.1版など、過去の版を参考用に収めたファイルになっています。
keisuke0919

2019/09/07 10:50

おっしゃる通り"Download Extras"の方をダウンロードしていました。。 最新版にて引き続き頑張ります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問