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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

2770閲覧

Railsの雛形を作ろうにもエラーが出て、bundle installしても解決できない

Ko-program

総合スコア11

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2021/09/02 10:20

以下を参考にWindows10でVagrant + Virtualbox による仮想環境を用意し、railsの雛形を作成を試みました。
https://www.sejuku.net/blog/39936

しかし本サイトの「Ruby on Rails のインストール」にて、railsの雛形を作成するコマンドを入力したところ

[DEPRECATED] Bundler.with_clean_env has been deprecated in favor of Bundler.with_unbundled_env. If you instead want the environment before bundler was originally loaded, use Bundler.with_original_env (called at /home/vagrant/app/rails/Hero_Display/vendor/bundler/ruby/2.7.0/gems/railties-5.1.7/lib/rails/generators/app_base.rb:385)
Fetching gem metadata from https://rubygems.org/.............
Resolving dependencies.....
Bundler could not find compatible versions for gem "sprockets":
In snapshot (Gemfile.lock):
sprockets (= 4.0.2)

In Gemfile:
sass-rails (~> 5.0) was resolved to 5.1.0, which depends on
sprockets (>= 2.8, < 4.0)

rails (~> 5.1.7) was resolved to 5.1.7, which depends on sprockets-rails (>= 2.0.0) was resolved to 3.2.2, which depends on sprockets (>= 3.0.0)

Running bundle update will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
run bundle exec spring binstub --all
bundler: command not found: spring
Install missing gem executables with bundle install

というエラーを吐かれ、命令通りbundle installと打っても

Bundler could not find compatible versions for gem "sprockets":
In snapshot (Gemfile.lock):
sprockets (= 4.0.2)

In Gemfile:
sass-rails (~> 5.0) was resolved to 5.1.0, which depends on
sprockets (>= 2.8, < 4.0)

rails (~> 5.1.7) was resolved to 5.1.7, which depends on sprockets-rails (>= 2.0.0) was resolved to 3.2.2, which depends on sprockets (>= 3.0.0)

Running bundle update will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

というエラーが発生します。bundle updateと打っても、上記のようなエラーが4つ出るだけでした。

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

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

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

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

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

guest

回答1

0

ベストアンサー

rbenvはインストール済みという前提で手順を書きます。
そのサイトが正しいかどうかも不明なので、手元で動いた手順を書きます。

ruby2.7をインストールする

bash

1$ rbenv install 2.7.4 2$ rbenv global 2.7.4 3$ gem install bundler -v 2.1.4

※bundlerはbundleコマンドを使うために必要です。

rails6のインストーラー用ディレクトリを作成する

bash

1$ mkdir ~/rails6-installer 2$ cd ~/rails6-installer 3$ rbenv local 2.7.4

railsのバージョンを調べる

とりあえず、最新のrailsのバージョンを調べてそれを使う事にします。
どうやら現時点では6.1.4.1のようです。

$ gem search -a ^rails$ *** REMOTE GEMS *** rails (6.1.4.1, 6.1.4, 6.1.3.2, ...

bundle initでGemfileを作る

$ bundle init Writing new Gemfile to /home/ユーザ名/rails6-installer/Gemfile $ cat Gemfile # frozen_string_literal: true source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } # gem "rails"

最後のコメントになっている行のコメントを外して、さらにバージョンを指定します。
viを開くのも面倒なのでsedコマンドで置換しましょう。

bash

1$ sed -i 's/^# gem "rails"/gem "rails", "6.1.4.1"/' Gemfile 2$ cat Gemfile 3# frozen_string_literal: true 4 5source "https://rubygems.org" 6 7git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } 8 9gem "rails", "6.1.4.1"

bundle installを行ってgemをインストールします。

bash

1$ bundle install --path vendor/bundle

これでようやくrails newが出来るようになりました。
このディレクトリはプロジェクト作成用のディレクトリなので、
プロジェクト用のディレクトリは外に作る必要があります。
ここでは~/sampleに新規プロジェクトを作ってみます。
rails newの段階でbundle installが動くとだいたいエラーになるパターンが多いので、
この時点ではbundle installをスキップするオプションをつけてます。

bash

1$ bundle exec rails new ~/sample --skip-bundle

この段階で成功するはずです。
では~/sampleに移動して、bundle installを行います。
ここでエラーになったらググったりして解決します。
(sqlite3のライブラリが入っていないパターンとか)

$ cd ~/sample $ bundle install --path vendor/bundle

こちらは以下の環境で動作確認しました。
Windows10 + vagrant + VirtualBox + Ubuntu 20.04 LTS


追記: node.jsのインストール

nvmをインストールする

node.jsのインストールはnvmで行います。
(nvmはrubyでいうところのrbenvに相当)

  • nvmをホームディレクトリ以下にclone
$ git clone git://github.com/creationix/nvm.git ~/.nvm
  • ~/.bash_profileの最後に以下の内容を追記して、source ~/.bash_profile
# nvm if [[ -s $HOME/.nvm/nvm.sh ]]; then source $HOME/.nvm/nvm.sh fi
  • バージョンが表示できればnvmの導入完了
$ nvm --version 0.38.0

node.jsをインストール

  • nvmでnode.jsの最新版(LTS)をインストール
$ nvm install --lts

これでnpmコマンドが使えます。
webpackerを使うにはnpmパッケージのyarnコマンドが必要なのでインストールします。

yarnをグローバルなところにインストール

$ npm install -g yarn

ここまでやったら、プロジェクトのディレクトリ(~/sample)に戻って、
webpacker:installが実行できるはずです。

$ cd ~/sample $ bundle exec rails webpacker:install

bundle exec rails sでサーバーが起動できます。

$ bundle exec rails s => Booting Puma => Rails 6.1.4.1 application starting in development => Run `bin/rails server --help` for more startup options Puma starting in single mode... * Puma version: 5.4.0 (ruby 2.7.4-p191) ("Super Flight") * Min threads: 5 * Max threads: 5 * Environment: development * PID: 66719 * Listening on http://127.0.0.1:3000 * Listening on http://[::1]:3000 Use Ctrl-C to stop

これでlocalhost:3000に接続できない場合は
bundle exec rails s -b 0.0.0.0 と打つと接続できます。

投稿2021/09/02 10:55

編集2021/09/13 09:20
mingos

総合スコア4025

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

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

Ko-program

2021/09/13 08:32

回答していただいた通りにやってみて、雛形の作成には成功しましたが、 rails s と入力してもrailsの起動ができません。どうもrailsコマンドが見つからないようです。
mingos

2021/09/13 08:45

この手順を使う場合、bundle exec コマンドという形で実行します。 「bundle exec rails s」です。 単純にrails sではrailsコマンドは見つかりません。
Ko-program

2021/09/13 08:52

上記の通り入力した結果、下のようなエラーを吐かれました。 /home/vagrant/sample/vendor/bundle/ruby/2.7.0/gems/webpacker-5.4.2/lib/webpacker/configuration.rb:103:in `rescue in load': Webpacker configuration file not found /home/vagrant/sample/config/webpacker.yml. Please run rails webpacker:install Error: No such file or directory @ rb_check_realpath_internal - /home/vagrant/sample/config/webpacker.yml (RuntimeError)
Ko-program

2021/09/13 08:59

bundle exec rails webpacker:install と入力しても sh: node: command not found sh: nodejs: command not found Node.js not installed. Please download and install Node.js https://nodejs.org/en/download/ Exiting! とだけしか出ません
mingos

2021/09/13 09:01

そういえば、nodeのインストールが必要でしたね。 webpackerはnode.jsのインストールが必要となります。 追記します。
mingos

2021/09/13 09:17

追記しました。
Ko-program

2021/09/13 09:39

railsの起動まで成功したのですが、ブラウザで見る場合どこを見ればいいですか? 最初に挙げたサイト通りであれば、同サイトの「Ruby on Rails を起動してみよう!」の http://192.168.33.10:3000/ でしょうが そこへアクセスしてもなにも表示されません
Ko-program

2021/09/13 09:53

RuntimeError (Your version of SQLite (3.7.17) is too old. Active Record supports SQLite >= 3.8.): と出ました。どうやらSQLiteのバージョンが古いようです
mingos

2021/09/13 10:03 編集

起動したという事は、一応成功しているようです。 vagrantでやっているんでしたね。 rails sは、-bのオプションを付けて起動してください。 bundle exec rails s -b 0.0.0.0 これで起動すれば、http://192.168.33.10:3000/ にアクセスできると思います。 sqliteのバージョンはCentOS7の場合、標準のyumコマンドではでは3.7までしか入らないようです。 となると、今度は選択肢は以下の2つです。 (1) CentOS7にsqlite 3.8をインストールする方法を検索する (2) CentOS8を使う
Ko-program

2021/09/13 10:02

bundle exec rails s -b 0.0.0.0 と入力してrailsが起動していることを確認した後 http://192.168.33.10:3000/ にアクセスした結果 RuntimeError (Your version of SQLite (3.7.17) is too old. Active Record supports SQLite >= 3.8.): と出ました。
Ko-program

2021/09/15 07:11

時間が経ってからもう1度アクセスしたら正常にrailsが起動していました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問