rails newしたらエラーでました\(^o^)/

eyecatch

爪を切る頻度が高いmizkyです。

rails newして新規プロジェクトを作成した際のエラーについて書きます。

Make sure that `gem install sassc -v ‘2.4.0’ –source ‘https://rubygems.org/’`

error: unrecognized command line option “-std=c++11”

のようなエラーが出ている方のお助けになれば幸いです。

実行環境

仮想環境のCentOS6となります。

エラー内容

rails newで新規プロジェクトを作成しようとすると以下のエラーが発生しました。

[vagrant@localhost]$ rails new myapp
An error occurred while installing sassc (2.4.0), and Bundler cannot continue.
Make sure that `gem install sassc -v '2.4.0' --source 'https://rubygems.org/'` succeeds befor

In Gemfile:
  sass-rails was resolved to 6.0.0, which depends on
    sassc-rails was resolved to 2.1.2, which depends on
      sassc
         run  bundle binstubs bundler
Could not find gem 'sass-rails (>= 6)' in any of the gem sources listed in your Gemfile.
         run  bundle exec spring binstub --all
bundler: command not found: spring
Install missing gem executables with `bundle install`
       rails  webpacker:install
Could not find gem 'sass-rails (>= 6)' in any of the gem sources listed in your Gemfile.
Run `bundle install` to install missing gems.

うっわ。泣きそう。

3行目に

Make sure that `gem install sassc -v ‘2.4.0’ –source ‘https://rubygems.org/’` succeeds

と書いてあるので素直に従ってみます。

[vagrant@localhost]$ gem install sassc -v '2.4.0' --source 'https://rubygems.org/'
Building native extensions. This could take a while...
ERROR:  Error installing sassc:
        ERROR: Failed to build gem native extension.

    current directory: /home/vagrant/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/sassc-2.4.0/ext
/home/vagrant/.rbenv/versions/2.5.8/bin/ruby -I /home/vagrant/.rbenv/versions/2.5.8/lib/ruby/
site_ruby/2.5.0 -r ./siteconf20201010-3745-xg8z0u.rb extconf.rb
creating Makefile

current directory: /home/vagrant/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/sassc-2.4.0/ext
make "DESTDIR=" clean

current directory: /home/vagrant/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/sassc-2.4.0/ext
make "DESTDIR="
compiling ./libsass/src/ast.cpp
cc1plus: error: unrecognized command line option "-std=c++11"
make: *** [ast.o] エラー 1

make failed, exit code 2

Gem files will remain installed in /home/vagrant/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/sassc-2.4.0 for inspection.
Results logged to /home/vagrant/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0/sassc-2.4.0/gem_make.out

これ見た瞬間帰りたくなった。

ちなみに自宅で作業してたから、どこに帰るんだよって話。

解決策

肝心なのは以下の行になります。

cc1plus: error: unrecognized command line option “-std=c++11”

どうやらGCCのバージョンが古い可能性があるので、バージョンをあげてみます。

最初に、現在使用しているGCCのバージョンを確認します。

$ gcc --version | head -n1
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)

バージョンが4ということなので7まであげます。

$ sudo yum install devtoolset-7
$ scl enable devtoolset-7 bash

再度、GCCのバージョンを確認します

$ gcc --version | head -n1
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)

以下に、GCCのバージョンをあげる際に参考にしたURLを掲載します。

Developer Toolset 7 — Software Collections

これで

gem install sassc -v '2.4.0' --source 'https://rubygems.org/'

をすると上手くいきました。

エラーの原因

CentOS6だとGCCのバージョンが非常に古いようです。

CentOS8が出てる時代だもんな・・・

後書き

Railsでプロジェクトを全く1から作成したことがなかったので、今回自分で行ったところ、本記事のエラーに遭遇しました。

間もないプログラム初心者がRails始めよおおお!!と思って取り組んだ結果、こんなエラー出たら秒で投げ出しますよね・・・

そもそもプログラム初心者がRailsやんのかよって話もありますがwww

プログラムってプログラム書くところじゃなくて環境構築とかテストなどが原因で始めようと思ったけど挫折する人が多いのではと思った1日でした。

コメント

タイトルとURLをコピーしました