65795


Rails でターミナルにてサーバーを立ち上げようとするのですが  
エラーが下記のように出て立ち上げることができません。

[code]

    Could not find gem 'sqlite3 (~> 1.3.6)' in any of the gem sources listed in your Gemfile.
    Run bundle install to install missing gems.
    
[/code]

不思議なのが上記の操作をしても

[code]

    continue.
    Make sure that gem install sassc -v '2.3.0' --source 'https://rubygems.org/'
    succeeds before bundling.
    
[/code]

と出て

[code]

    gem install sassc -v '2.3.0' --source 'https://rubygems.org/
    
[/code]

を実行し、そのあと `bundle install` しても

[code]

    An error occurred while installing sassc (2.3.0), and Bundler cannot
    continue.
    Make sure that gem install sassc -v '2.3.0' --source 'https://rubygems.org/'
    succeeds before bundling.
    
[/code]

と出て堂々巡りしています。

これは一体何が足りないのでしょうか？

（sqlite3 (~> 1.3.6)がgemファイルに足りないと記載があるかと思いますが  
写真の通り,存在しているように思います。）

[![画像の説明をここに入力](https://i.stack.imgur.com/VJagJ.jpg)](https://i.stack.imgur.com/VJagJ.jpg)

[![画像の説明をここに入力](https://i.stack.imgur.com/KWjcT.jpg)](https://i.stack.imgur.com/KWjcT.jpg)

下記が `$ gem install sassc -v '2.3.0' --source 'https://rubygems.org/'`  
を実行したときのログになります。

[code]

    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.7.1/lib/ruby/gems/2.7.0/gems/sassc-2.3.0/ext
    /home/vagrant/.rbenv/versions/2.7.1/bin/ruby -I /home/vagrant/.rbenv/versions/2.7.1/lib/ruby/2.7.0 -r ./siteconf20200420-17161-1wmp45i.rb extconf.rb
    creating Makefile
    
    current directory: /home/vagrant/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/sassc-2.3.0/ext
    make "DESTDIR=" clean
    
    current directory: /home/vagrant/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/sassc-2.3.0/ext
    make "DESTDIR="
    compiling ./libsass/src/ast.cpp
    cc1plus: error: unrecognized command line option "-std=c++11"
    make: *** [ast.o] Error 1
    
    make failed, exit code 2
    
    Gem files will remain installed in /home/vagrant/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/sassc-2.3.0 for inspection.
    Results logged to /home/vagrant/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/sassc-2.3.0/gem_make.out
    
[/code]

## 追記

上のエラーを解決した後別のエラーが出たので、別の質問として投稿しています: [CentOS
6でのNode.jsのアップグレード方法について](https://ja.stackoverflow.com/q/65861/19110)


CC BY-SA 4.0
2020-04-20T11:47:12.483
65787
2020-04-24T20:31:53.157
2020-04-24T20:31:53.157
39719
39719
question
ruby-on-rails rubygems
railsでサーバーが立ち上がらず、sassc でエラーが出る: cc1plus: error: unrecognized command line option "-std=c++11"


今回の主原因はこのエラーです：

[code]

    cc1plus: error: unrecognized command line option "-std=c++11"
    
[/code]

`-std=c++11` というオプションが C++ コンパイラのとあるバージョンから使えるようになったのですが、それが使えないというエラーです。おそらく
C++ コンパイラの導入に失敗しているか、長らくバージョンアップされていません。

あとは OS やお使いのパッケージマネジャーにあわせた対処をすることになります。g++ や clang++ などの C++
コンパイラをインストールしたり更新したりしてください。

例：

  * Ubuntu、apt 
    * `apt update` & `apt install build-essential`
      * 必要に応じて `sudo` を先頭につけてください。
    * `g++ --version` が 4.7 未満であれば古いので更新してください。
  * CentOS、yum

    * `yum update` & `yum install gcc gcc-c++ make`
      * 必要に応じて `sudo` を先頭につけてください。
      * 補足：いずれ必要になることをみこして gcc 等も入れていますが、不要であれば gcc-c++ のみで結構です。
    * `g++ --version` が 4.7 未満であれば古いので更新してください。

      * たとえば 2020 年 4 月現在、CentOS 6 の yum を使うとデフォルトでは [g++ 4.4.7 がインストールされる](http://mirror.centos.org/centos/6/os/x86_64/Packages/)ので古いです。ひとつの解決法として、[Software Collections](https://www.softwarecollections.org/en/) にある devtoolset からインストールできる g++ を使う方法があります。devtoolset にはいくつかバージョンがあるので[検索して](https://www.softwarecollections.org/en/scls/?search=devtoolset)ご自身にあったものを選んでください。ここでは 2020 年 4 月現在最新の devtoolset-8 を使う例を紹介します。
[code]             yum install centos-release-scl  # Software Collections
にアクセスできるようにする

            yum install devtoolset-8        # devtoolset-8 をインストール（g++ を含め各種バイナリについて新しいバージョンのバイナリがダウンロードされます）
            scl enable devtoolset-8 bash    # devtoolset-8 系列のバイナリを使うように設定された Bash を起動
            
[/code]

最後の行は Bash
を立ち上げる度に実行する必要があります。面倒くさければ、[この回答](https://serverfault.com/a/851154/412043)のように
`source scl_source enable` を `~/.bashrc` に書いておくなどの方法があります。

  * macOS

    * macOS のデフォルトでは Xcode の Command Line Tools をインストールすることで clang++ を入れます。
    * `clang++ --version` が 4 未満であれば古いので更新してください（正確には 3.x のどこかでいけるようになっているはずですが、3.x はどちらにせよ古いので更新してください）。設定の「ソフトウェアアップデート」や [`softwareupdate` コマンド](https://support.apple.com/ja-jp/HT200113)から Command Line Tools を更新することで clang を更新できます。

更新した後再度 `gem install sassc -v '2.3.0' --source 'https://rubygems.org/'`
を試してみて、成功すれば `bundle install` を行い、成功すればそのあとサーバーを立ち上げてみてください。

## 補足

以下、それ以外のメッセージについての解説です。

[code]

    Could not find gem 'sqlite3 (~> 1.3.6)' in any of the gem sources listed in your Gemfile.
    Run bundle install to install missing gems.
    
[/code]

これは「sqlite3 を使いたいけど、Gemfile に書かれている gem の在りか一覧を探してもそんな名前の gem
無いよ」というエラーです。後述する通り sassc のインストールに失敗しているため `bundle install` が中途半端な状態で終わっており、実際
sqlite3 がインストールされていなかったのでしょう。なお、Gemfile に sqlite3 が書かれていないよ、というエラーではありません。

上のエラーメッセージには `bundle install` をせよと書かれているのでやってみます。`bundle install` の出力によると
sassc のインストールが怪しく、`gem install sassc` をせよと書かれています。質問者さんは `gem install sassc`
の出力を無視されていたようですが、このログを見ると `gem install sassc` が失敗していると分かります。

[code]

    Building native extensions. This could take a while...
    ERROR:  Error installing sassc:
        ERROR: Failed to build gem native extension.
    
[/code]

あとはログの細かいところを読んで、失敗原因を探る作業になるという訳です。


CC BY-SA 4.0
2020-04-20T15:52:42.523
65795
2020-04-21T11:49:36.893
2020-04-21T11:49:36.893
19110
19110
65787
answer