

vagrant で環境構築後、CentOS6 上で `rails new` を実行するとエラーが発生します。

[code]

    rails new ディレクトリ名
    
[/code]

以下エラーメッセージ

[code]

          create  
          create  README.md
          create  Rakefile
          create  .ruby-version
          create  config.ru
          create  .gitignore
          create  Gemfile
             run  git init from "."
    Initialized empty Git repository in /home/vagrant/railslessons/mytest/.git/
          create  package.json
          create  app
          create  app/assets/config/manifest.js
          create  app/assets/stylesheets/application.css
          create  app/channels/application_cable/channel.rb
          create  app/channels/application_cable/connection.rb
          create  app/controllers/application_controller.rb
          create  app/helpers/application_helper.rb
          create  app/javascript/channels/consumer.js
          create  app/javascript/channels/index.js
          create  app/javascript/packs/application.js
          create  app/jobs/application_job.rb
          create  app/mailers/application_mailer.rb
          create  app/models/application_record.rb
          create  app/views/layouts/application.html.erb
          create  app/views/layouts/mailer.html.erb
          create  app/views/layouts/mailer.text.erb
          create  app/assets/images
          create  app/assets/images/.keep
          create  app/controllers/concerns/.keep
          create  app/models/concerns/.keep
          create  bin
          create  bin/rails
          create  bin/rake
          create  bin/setup
          create  bin/yarn
          create  config
          create  config/routes.rb
          create  config/application.rb
          create  config/environment.rb
          create  config/cable.yml
          create  config/puma.rb
          create  config/spring.rb
          create  config/storage.yml
          create  config/environments
          create  config/environments/development.rb
          create  config/environments/production.rb
          create  config/environments/test.rb
          create  config/initializers
          create  config/initializers/application_controller_renderer.rb
          create  config/initializers/assets.rb
          create  config/initializers/backtrace_silencers.rb
          create  config/initializers/content_security_policy.rb
          create  config/initializers/cookies_serializer.rb
          create  config/initializers/cors.rb
          create  config/initializers/filter_parameter_logging.rb
          create  config/initializers/inflections.rb
          create  config/initializers/mime_types.rb
          create  config/initializers/new_framework_defaults_6_0.rb
          create  config/initializers/wrap_parameters.rb
          create  config/locales
          create  config/locales/en.yml
          create  config/master.key
          append  .gitignore
          create  config/boot.rb
          create  config/database.yml
          create  db
          create  db/seeds.rb
          create  lib
          create  lib/tasks
          create  lib/tasks/.keep
          create  lib/assets
          create  lib/assets/.keep
          create  log
          create  log/.keep
          create  public
          create  public/404.html
          create  public/422.html
          create  public/500.html
          create  public/apple-touch-icon-precomposed.png
          create  public/apple-touch-icon.png
          create  public/favicon.ico
          create  public/robots.txt
          create  tmp
          create  tmp/.keep
          create  tmp/pids
          create  tmp/pids/.keep
          create  tmp/cache
          create  tmp/cache/assets
          create  vendor
          create  vendor/.keep
          create  test/fixtures
          create  test/fixtures/.keep
          create  test/fixtures/files
          create  test/fixtures/files/.keep
          create  test/controllers
          create  test/controllers/.keep
          create  test/mailers
          create  test/mailers/.keep
          create  test/models
          create  test/models/.keep
          create  test/helpers
          create  test/helpers/.keep
          create  test/integration
          create  test/integration/.keep
          create  test/channels/application_cable/connection_test.rb
          create  test/test_helper.rb
          create  test/system
          create  test/system/.keep
          create  test/application_system_test_case.rb
          create  storage
          create  storage/.keep
          create  tmp/storage
          create  tmp/storage/.keep
          remove  config/initializers/cors.rb
          remove  config/initializers/new_framework_defaults_6_0.rb
             run  bundle install
    The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
    Fetching gem metadata from https://rubygems.org/............
    Fetching gem metadata from https://rubygems.org/.
    Resolving dependencies...
    Using rake 13.0.1
    Using concurrent-ruby 1.1.7
    Using i18n 1.8.5
    Using minitest 5.14.1
    Using thread_safe 0.3.6
    Using tzinfo 1.2.7
    Using zeitwerk 2.4.0
    Using activesupport 6.0.3.2
    Using builder 3.2.4
    Using erubi 1.9.0
    Using mini_portile2 2.4.0
    Using nokogiri 1.10.10
    Using rails-dom-testing 2.0.3
    Using crass 1.0.6
    Using loofah 2.7.0
    Using rails-html-sanitizer 1.3.0
    Using actionview 6.0.3.2
    Using rack 2.2.3
    Using rack-test 1.1.0
    Using actionpack 6.0.3.2
    Using nio4r 2.5.2
    Using websocket-extensions 0.1.5
    Using websocket-driver 0.7.3
    Using actioncable 6.0.3.2
    Using globalid 0.4.2
    Using activejob 6.0.3.2
    Using activemodel 6.0.3.2
    Using activerecord 6.0.3.2
    Using mimemagic 0.3.5
    Using marcel 0.3.3
    Using activestorage 6.0.3.2
    Using mini_mime 1.0.2
    Using mail 2.7.1
    Using actionmailbox 6.0.3.2
    Using actionmailer 6.0.3.2
    Using actiontext 6.0.3.2
    Using public_suffix 4.0.5
    Using addressable 2.7.0
    Using bindex 0.8.1
    Using msgpack 1.3.3
    Using bootsnap 1.4.8
    Using bundler 1.17.2
    Using byebug 11.1.3
    Using regexp_parser 1.7.1
    Using xpath 3.2.0
    Using capybara 3.33.0
    Using childprocess 3.0.0
    Using ffi 1.13.1
    Using jbuilder 2.10.0
    Using rb-fsevent 0.10.4
    Using rb-inotify 0.10.1
    Using listen 3.2.1
    Using method_source 1.0.0
    Using puma 4.3.5
    Using rack-proxy 0.6.5
    Using thor 1.0.1
    Using railties 6.0.3.2
    Using sprockets 4.0.2
    Using sprockets-rails 3.2.1
    Using rails 6.0.3.2
    Using rubyzip 2.3.0
    Fetching sassc 2.4.0
    Installing sassc 2.4.0 with native extensions
    Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
    
    current directory:
    /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.4.0/ext
    /home/vagrant/.rbenv/versions/2.6.5/bin/ruby -I
    /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/2.6.0 -r
    ./siteconf20200827-7966-4bspp5.rb extconf.rb
    creating Makefile
    
    current directory:
    /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.4.0/ext
    make "DESTDIR=" clean
    
    current directory:
    /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.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.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.4.0 for
    inspection.
    Results logged to
    /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.4.0/gem_make.out
    
    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 before bundling.
    
    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 'sqlite3 (~> 1.4)' 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 'sqlite3 (~> 1.4)' in any of the gem sources listed in your Gemfile.
    Run `bundle install` to install missing gems.
    
[/code]

エラー内容の通り

[code]

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

を実行すると

[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.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.4.0/ext
    /home/vagrant/.rbenv/versions/2.6.5/bin/ruby -I /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/2.6.0 -r ./siteconf20200827-8009-1scbkg5.rb extconf.rb
    creating Makefile
    
    current directory: /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.4.0/ext
    make "DESTDIR=" clean
    
    current directory: /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.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.6.5/lib/ruby/gems/2.6.0/gems/sassc-2.4.0 for inspection.
    Results logged to /home/vagrant/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.4.0/gem_make.out
    
[/code]

以上のエラーが発生します。

[railsでサーバーが立ち上がらず、sassc でエラーが出る: cc1plus: error: unrecognized command line
option “-std=c++11”](https://ja.stackoverflow.com/q/65787)

この質問の回答を参考に、

[code]

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

が主原因(C++コンパイラの導入失敗かバージョンが古い)のではないかとのことで  
XcodeのCommand Line Toolsをインストールをしてclang++ を更新しようとしましたが、  
インストール しても `clang++ --version` が実行できず、

[code]

    -bash: clang++: コマンドが見つかりません
    
[/code]

とでてしまいます。

# 補足

  * CentOS release 6.10 (Final)
  * Rails 6.0.3.2


CC BY-SA 4.0
2020-08-28T00:20:00.573
69924
2020-08-31T21:17:16.493
2020-08-29T11:51:53.943
3060
41675
question
ruby-on-rails centos vagrant
CentOS6 上で rails new できません


Rails を動かそうとしている CentOS に入っている gcc のバージョンが古いために native extension
のビルドに失敗しているようです。  
なのでホストOSである macOS 側に何かを入れる必要はありません。

参考にされたという質問の方でも丁寧に回答されている方がいらっしゃいますが、CentOS 6 に標準で入る gcc
のバージョンが古いために発生しているので、以下の記事などを参考に CentOS 上の gcc のバージョンを上げてから再度試してみてはいかがでしょうか。

<https://qiita.com/rafilia/items/304a45bb0b5fa137bff1>

<https://tech.withsin.net/2018/06/05/centos6-gcc48/>


CC BY-SA 4.0
2020-08-28T02:15:44.503
69929
2020-08-28T02:15:44.503
4695
69924
answer


(この回答はマルチポストです。)  
<https://teratail.com/questions/287980#reply-408429>

CentOS
6標準のGCCは4.4.7と古く、C++11に未対応のため、`--std=c++11`オプションが動作しません。sasscパッケージのコンパイルにはC++11対応が必須のため、インストールできないという状況です。

解決方法は3つ

1\. CentOS 7またはCentOS 8を使用する。(推奨)

CentOS
6はまもなくサポートが終了します。レガシーな環境のテストなどといった目的以外で、使用することは推奨できません。新しく開発に使用する環境としては、全く適していません。

CentOS 7またはCentOS 8を使用してください。こちらのGCCはバージョンが新しいため、C++11に対応しています。CentOS
8の方が最新ですが、古い資料のやり方ではうまくいかない場合があるので、ある程度チャレンジ精神が求められます。

2\. CentOS 6に最新のGCCを入れる。

CentOS
6上のパッケージを最新にしても、GCCのバージョンは上がらず、パッチのみが適用されます。そのため、通常のパッケージでC++11対応にすることは不可能です。

最もオーソドックスなやり方は[GCCのサイト](https://gcc.gnu.org/)からGCCをダウンロードして自分でコンパイルして導入することです。ただ、それなりの知識は必要ですので、Linuxに慣れていない場合はお勧めできません。

3\. sasscではなくレガシーなsassを使う。

かつてSassはピュアRubyで書かれており、コンパイル不要でした。そのパッケージがsassです。こちらを使えばコンパイルの問題は解決します。

ただし、ピュアRubyなsassは既に開発が終了しており、コンパイル前提のsasscを使用するように開発者は促しています。レガシーなsassにバグ等があっても修正はされず、また、新機能も追加されませんので、どうしてもと言う必要性がない限り、使用しない方が良いです。

sasscではなくsassを強制的に使う方法はGemfileについての知識を持った上で、依存関係を無理矢理変更する作業がいるため、ある程度の知識が必要になります。


CC BY-SA 4.0
2020-08-28T05:02:17.307
69932
2020-08-28T05:02:17.307
7347
69924
answer


[CentOS7のとき](https://ja.stackoverflow.com/a/66035/2808)と同じノリで

> 公式のGetting Started, [4.1 Starting up the Web
> Server](https://guides.rubyonrails.org/getting_started.html#starting-up-the-
> web-server)で `rails server`コマンドを実行し、 "Yay! You’re on
> Rails!"のページが表示されるところまで確認しました:
[code]

    sudo yum -y update
    sudo yum -y groupinstall "Development Tools"
    sudo yum -y install gdbm-devel openssl-devel readline-devel zlib-devel
    
    
    # GCC4
    pushd /tmp
    curl -s -L -O http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.4/gcc-4.9.4.tar.gz
    tar xf gcc-4.9.4.tar.gz
    cd gcc-4.9.4
    ./contrib/download_prerequisites
    ./configure --enable-languages=c,c++ --prefix=/opt/gcc-4.9.4 --disable-bootstrap --disable-multilib
    make -j 5
    sudo make install
    # https://qiita.com/knutpb1205/items/4a9b39bf69f1788ef69c#%E3%82%A8%E3%83%A9%E3%83%BC%E5%AF%BE%E7%AD%96
    sudo mv /opt/gcc-4.9.4/lib64/{,bak.}libstdc++.so.6.0.20-gdb.py
    sudo bash -c 'cat > /etc/ld.so.conf.d/gcc-4.9.4.conf' << EOF
    /opt/gcc-4.9.4/lib64
    EOF
    sudo ldconfig
    echo 'export PATH=/opt/gcc-4.9.4/bin:$PATH' >> ~/.bashrc
    source ~/.bashrc
    popd
    
    # SQLite >= 3.8 インストール(ここでは3.31.1をインストール)
    # https://www.sqlite.org/download.html
    curl -s https://www.sqlite.org/2020/sqlite-autoconf-3310100.tar.gz | tar xz -C /tmp
    cd /tmp/sqlite-autoconf-3310100
    ./configure --prefix=/usr/local
    make
    sudo make install
    
    # node インストール
    # 新しいバージョンは要求するglibcのバージョンが大きいので利用できない
    # https://guides.rubyonrails.org/getting_started.html#installing-node-js-and-yarn
    # https://nodejs.org/en/download/releases/
    mkdir -p ~/opt
    curl -sL https://nodejs.org/download/release/v8.17.0/node-v8.17.0-linux-x64.tar.xz | tar xJ -C ~/opt
    echo 'export PATH=$HOME/opt/node-v8.17.0-linux-x64/bin:$PATH' >> ~/.bashrc
    source ~/.bashrc
    
    # yarn インストール
    npm install -g yarn
    
    # rbenv, rbenv-build インストール
    # https://github.com/rbenv/rbenv#basic-github-checkout
    git clone https://github.com/rbenv/rbenv.git ~/.rbenv
    cd ~/.rbenv && src/configure && make -C src
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
    echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
    source ~/.bash_profile
    mkdir -p "$(rbenv root)"/plugins
    git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
    
    # ruby インストール
    rbenv install 2.6.5
    rbenv global 2.6.5
    
    # sqlite3 利用設定
    # https://url4u.jp/centos7-rails6-sqlite3/
    bundle config build.sqlite3 "--with-sqlite3-lib=/usr/local/lib"
    
    # rails インストール
    # https://guides.rubyonrails.org/getting_started.html#installing-rails
    gem install rails
    
[/code]

[サンプルVagrantfile](https://github.com/yukihane/stackoverflow-
qa/tree/master/jaso69924)


CC BY-SA 4.0
2020-08-31T21:17:16.493
70025
2020-08-31T21:17:16.493
2808
69924
answer