LoginSignup
1
0

More than 5 years have passed since last update.

rails5.2.2でassets:precompileが死ぬ

Last updated at Posted at 2018-12-16

なんかいろいろ困ったけど解消できたのでメモ
だれかの参考になればボク幸せです

状況(作業ログ)

  • rails5で初期設定をいじってる状態
  • bootstrapのgemを入れたところまでで、bundle installは成功
  • rake assets:precompileを行ったところ、Autoprefixer doesn’t support Node v0.10.36. Update it.エラーが発生
  • その後Autoprefixerが利用するexecjsのランタイムをmini_racerにしようとするもgemインストールができない
    • atomic が見つからないとかなんとか言われる。(GCCが古いので対応するimportファイルがなかった?)
  • mini_racer公式に書いてあるように、gcc 4.8を入れ、一時的に利用することで解消

※公式が言ってること

Note using v8.h and compiling MiniRacer requires a C++11 standard compiler, more specifically clang 3.5 (or later) or gcc 4.8 (or later).

環境とか

  • centos 6.10
  • ruby 2.5.3
  • rails 5.2.2

原因っぽいこと

  • AutoPrefixerはexecjsのgemに依存している
  • execjsは、runtimeとして色々選べるが、当環境は「Nodejs」を利用しており、環境に入ってるNodeのバージョンが古かった
  • mini_racerがインストール出来ないのは、gccのバージョンが古いから(4.4.7だった)
  • centos6はgccのデフォルトが4.4.7っぽい

解決案

  • 【その1】Nodeをアップデートする
  • 【その2】runtimeを違うの使う

解決方法は【その2】を選択

  • なんかナウいらしいので、runtimeはmini_racerを利用するようにした

手順とか

基本的にここのgccアップデート方法のページを元に実施

GPGのkeyをインポートする

sudo rpm --import http://ftp.riken.jp/Linux/cern/slc58/x86_64/RPM-GPG-KEYs/RPM-GPG-KEY-cern

slc6-devtoolset.repoの情報をゲットしとく

wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo

devtoolset-2をインストール

sudo yum install devtoolset-2

一時的にdevtoolset-2を利用できるようにする

(zsh使ってるのでzsh指定)

scl enable devtoolset-2 zsh

結果

  • bundle installする→成功
  • bundle rake assets:precompileをする→成功

補足情報

  • AutoPrefixerはその名の通りcssのprefixを付与してくれるgemでexecjsに依存している
  • execjsはruby上でjavascriptを実行出来るようにしてくれるっぽいgemでそのために各種runtimeが利用できる
    • 利用できるruntimeはこの辺に書いてある
  • therubyracerよりもmini_racerがナウいらしいのでそれをruntimeで指定する
  • gcc4.8を利用しないとmini_racerインストールできないけど、centos6だと死ぬ

参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0