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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

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

Ruby on Rails

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

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

2回答

4863閲覧

Rails の開発構築の際に出るエラー

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

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

Ruby on Rails

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

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2018/08/06 09:39

編集2018/08/08 08:45

このサイト(https://www.sejuku.net/blog/39936#VirtualBox)を参考に
Ruby と Ruby on Rails の開発構築をしているのですが、Rails のインストール作業として、

$bundle install --path vendor/bundler

を実行したのですが、下記エラーが発生しました。

発生している問題・エラーメッセージ

[!] There was an error parsing `Gemfile`: You cannot specify the same gem twice with different version requirements. You specified: rails (~> 5.1.6) and rails (~> 5.1.4therubyracer). Bundler cannot continue.

おそらく、異なるバージョンを複数回指定することはできません的な事を言ってるんと思うんですが、どうすれば解消できるでしょうか。
上記サイトの手順通りにやっていたんですが、二点ほど違う手順を踏んでしまいました。
一つは「gem “rails” のコメントを外す」の意味が分からず、

sed -i 's/# gem "rails"/gem "rails", "~> 5.1.0"/g' Gemfile ```をそのままコピーして実行してしまった事。 (実は未だに確信がないのですが、#←を消すってことでしょうか?間違ってたらごめんなさい。正直自信ないです) もうひとつは、railsチュートリアルを学ぶための環境構築なので、railsチュートリアルでrailsのバージョンを5.1.4に指定するとあったので、後で二度手間になると思い、上記コードの5.1.0を5.1.4に書き換えて実行したことです。 よくわからないのは5.1.6です。このバージョンは書き込んだ覚えがないのです。 分かる方、教えて頂きたいです。 >dyoshikawaさん こういうことでよろしいのでしょうか?間違ってたらすみません! ```ここに言語を入力 [vagrant@localhost ~]$ gem environment RubyGems Environment: - RUBYGEMS VERSION: 2.6.14.1 - RUBY VERSION: 2.4.4 (2018-03-28 patchlevel 296) [x86_64-linux] - INSTALLATION DIRECTORY: /home/vagrant/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0 - USER INSTALLATION DIRECTORY: /home/vagrant/.gem/ruby/2.4.0 - RUBY EXECUTABLE: /home/vagrant/.rbenv/versions/2.4.4/bin/ruby - EXECUTABLE DIRECTORY: /home/vagrant/.rbenv/versions/2.4.4/bin - SPEC CACHE DIRECTORY: /home/vagrant/.gem/specs - SYSTEM CONFIGURATION DIRECTORY: /home/vagrant/.rbenv/versions/2.4.4/etc - RUBYGEMS PLATFORMS: - ruby - x86_64-linux - GEM PATHS: - /home/vagrant/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0 - /home/vagrant/.gem/ruby/2.4.0 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - https://rubygems.org/ - SHELL PATH: - /home/vagrant/.rbenv/versions/2.4.4/bin - /home/vagrant/.rbenv/libexec - /home/vagrant/.rbenv/plugins/r/bin - /home/vagrant/.rbenv/shims - /home/vagrant/.rbenv/bin - /usr/local/bin - /usr/bin - /usr/local/sbin - /usr/sbin - /home/vagrant/.local/bin - /home/vagrant/bin

takahashimさん

[vagrant@localhost ~]$ mkdir -p app/samurai/sample1 [vagrant@localhost ~]$ cd app/samurai/sample1/ [vagrant@localhost sample1]$ bundle init Gemfile already exists at /home/vagrant/app/samurai/sample1/Gemfile [vagrant@localhost sample1]$ sed -i 's/ gem "rails"/gem "rails", "~> 5.1.0"/g' Gemfile [vagrant@localhost sample1]$ bundle install --path vendor/bundler [!] There was an error parsing `Gemfile`: You cannot specify the same gem twice with different version requirements. You specified: rails (~> 5.1.6) and rails (~> 5.1.4therubyracer). Bundler cannot continue. # from /home/vagrant/app/samurai/sample1/Gemfile:20 # ------------------------------------------- # # See https://github.com/rails/execjs#readme for more supported runtimes > gem "rails", "~> 5.1.4"'therubyracer', platforms: :ruby # # -------------------------------------------

>dyoshikawaさん
何から何まで無知で申し訳ないです。お手数かけます。
これのことでしょうか?

[vagrant@localhost sample1]$ cat Gemfile source 'https://rubygems.org' git_source(:github) do |repo_name| repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") "https://github.com/#{repo_name}.git" end # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 5.1.6' # Use sqlite3 as the database for Active Record gem 'sqlite3' # Use Puma as the app server gem 'puma', '~> 3.7' # Use SCSS for stylesheets gem 'sass-rails', '~> 5.0' # Use Uglifier as compressor for JavaScript assets gem 'uglifier', '>= 1.3.0' # See https://github.com/rails/execjs#readme for more supported runtimes gem "rails", "~> 5.1.4"'therubyracer', platforms: :ruby # Use CoffeeScript for .coffee assets and views gem 'coffee-rails', '~> 4.2' # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks gem 'turbolinks', '~> 5' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 2.5' # Use Redis adapter to run Action Cable in production gem "rails", "~> 5.1.4"'redis', '~> 4.0' # Use ActiveModel has_secure_password gem "rails", "~> 5.1.4"'bcrypt', '~> 3.1.7' # Use Capistrano for deployment gem "rails", "~> 5.1.4"'capistrano-rails', group: :development group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] # Adds support for Capybara system testing and selenium driver gem 'capybara', '~> 2.13' gem 'selenium-webdriver' end group :development do # Access an IRB console on exception pages or by using <%= console %> anywhere in the code. gem 'web-console', '>= 3.3.0' gem 'listen', '>= 3.0.5', '< 3.2' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

お二方へ。
数日にわたって回答いただきありがとうございました。
お二方の御指示通り、色々試行錯誤してみましたが、何時間もエラーの連発でちょっと疲弊しきっています。
自分には環境構築はまだ早かったということで、クラウドIDEを使ってみようかと思います。
色々調べているうちに、エラーとはちゃんと向き合うべきだという声もたくさんありましたが、環境構築の段階で何日も何時間もかかっているため、このままではプログラミングの学習自体、挫折してしまいそうなので、今回は折れようかと思います。
ありがとうございました。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/08/06 10:27

gemfileはどうなっていますか?
退会済みユーザー

退会済みユーザー

2018/08/07 07:36

ごめんなさい、初心者過ぎて質問の意味が理解できないです、、申し訳ないです。gemfileの作成は上手くいってるかということでしょうか。一応Gemfile already existsとあるので、存在はしていると思います。
退会済みユーザー

退会済みユーザー

2018/08/07 07:39

ああすみません、現状のGemfileの中身を質問文に追記してほしいということです。このコメント欄ではなく(見づらいので)、質問本文に追記お願いしたいです。
退会済みユーザー

退会済みユーザー

2018/08/07 10:04

Gemfileの内容(ソースコード)を記載してほしいのですが・・・Gemfileを右クリックしてテキストエディタ(Windowsならメモ帳など)で開くか、 cat Gemfile コマンドでソースを表示できます。
guest

回答2

0

質問者さんはプログラミング自体未経験者と見受けますので、おそらく貼られている参考記事のような環境構築作業は難しいです。

Virtualbox, Vagrantまで導入できているのであれば rails-dev-box を使うべきです。

https://github.com/rails/rails-dev-box

Rails公式のVagrantイメージであり、設定なしで簡単にRailsを始められるはずです。
導入方法はrails-dev-boxのGitHubページ(↑のリンク)のReadme.mdを読むか、次のような記事を参考にすると良いでしょう。

https://qiita.com/sayama0402/items/99bbf6d0977c5c6414cb

投稿2018/08/07 10:11

編集2018/08/07 10:18
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

このsedスクリプトは微妙ですね…。「コメントを外す」というのは、ふつうは、

# gem "rails"

というのを、

gem "rails"

にすることで、

gem "rails", "~> 5.1.0"

みたいにはしません(コメント外してるだけじゃないじゃん…。あと2回実行すると壊れるし、そもそもgオプションも不要だし)。

それと、5.1.6が出てきた理由ですが、おそらく何回かbundle installを行なっていませんか?
この手順だと、最初にbundle initで生成されたGemfileをbundle exec rails new .で上書きするような形になっているようです。で、後者で生成されたGemfileにgem 'rails', '~> 5.1.6'が入ってきてるんではないでしょうか。

あんまりこのやり方は良いようには思えない(Gemfileを上書きするくらいだったらRailsをグローバルにインストールしてしまった方がいいと思う…)のですが、この手順でやるんであれば、sample1ディレクトリをrm -rf sample1とかでいったん削除し、mkdir sample1 && cd sample1でもう一度作り直してから、bundle initからやり直した方がいいと思います。

なお、bundle exec rails new .を実行すると、

Overwrite /xxxx/app/samurai/sample1/Gemfile? (enter "h" for help) [Ynaqdh]

のように質問してくると思いますが、ここではYを選択してください(そのままenterでも良いです)。

投稿2018/08/06 11:19

takahashim

総合スコア1877

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

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

退会済みユーザー

退会済みユーザー

2018/08/07 07:31

とりあえず削除し、もう一度試してみましたが、以下のようになりました。 [vagrant@localhost ~]$ mkdir -p app/samurai/sample1 [vagrant@localhost ~]$ cd app/samurai/sample1/ [vagrant@localhost sample1]$ bundle init Gemfile already exists at /home/vagrant/app/samurai/sample1/Gemfile [vagrant@localhost sample1]$ sed -i 's/ gem "rails"/gem "rails", "~> 5.1.0"/g' G emfile [vagrant@localhost sample1]$ bundle install --path vendor/bundler [!] There was an error parsing `Gemfile`: You cannot specify the same gem twice with different version requirements. You specified: rails (~> 5.1.6) and rails (~> 5.1.4therubyracer). Bundler cannot continue. # from /home/vagrant/app/samurai/sample1/Gemfile:20 # ------------------------------------------- # # See https://github.com/rails/execjs#readme for more supported runtimes > gem "rails", "~> 5.1.4"'therubyracer', platforms: :ruby # # ------------------------------------------- 一度削除したにもかかわらず、bundle initするともう既に存在しますと出ました。 なので作業を続けるとやはり、また同じようなエラーが出ます。 どうしたら良いでしょう?
退会済みユーザー

退会済みユーザー

2018/08/07 08:08

こちらも本文に記載しておきます。
takahashim

2018/08/07 10:30

> 一度削除したにもかかわらず、bundle initするともう既に存在しますと出ました。 というのはちょっとおかしいですね…。権限かなにかの都合でちゃんと消えてなかったか、消すディレクトリを間違えた可能性があります。 もう一度mkdir と cdをやって、bundle initを実行する前にlsをして空であることを確認するのがよいかも。それでも空になってなかったら、sample2とかの別のディレクトリを作って試す方が良さそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問