Rails – gem “font-awesome-sass” がインストールできない

環境

  • Ruby on Rails 5.2.0
  • CentOS 6.7

font-awesome-sass のインストールでエラー

RailsアプリでFontawesomeを利用したいと思い、 gem “font-awesome-sass” で実装を行っていました。

開発環境では問題なく動きます。

そこで、デプロイしようと思い、本番環境で bundle install すると以下のエラーが発生。

$ bundle install
.
.
An error occurred while installing sassc (1.12.1), and Bundler cannot continue.
Make sure that `gem install sassc -v '1.12.1' --source 'https://rubygems.org/'` succeeds before bundling.

エラーの指示通り、 sassc を個別インストールしてみます。

$ gem install sassc -v '1.12.1' --source 'https://rubygems.org/'
.
.
rake aborted!
Command failed with status (2): [make lib/libsass.so...]

Tasks: TOP => lib/libsass.so
(See full trace by running task with --trace)

rake failed, exit code 1

Gem files will remain installed in /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sassc-1.12.1 for inspection.
Results logged to /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0-static/sassc-1.12.1/gem_make.out

なんか上手くいかないですね。

原因

sasscのissues によると、libsass は 「GCC  4.6」 以上を要求するが、CentOS 6系では「GCC 4.4」 を使っていることが原因みたい。

In case anyone else runs into this same issue, I believe this is because libsass needs GCC 4.6 or higher in order to compile (sass/libsass#848). CentOS/RHEL 6 uses GCC 4.4, so unless you want to mess around with manually installing another newer version of GCC, I’m not sure there’s a simple solution to getting libsass or the sassc gem running under CentOS 6.

対策

以前CentOSのGCCバージョン更新について調べましたが、色々と複雑だったので(指定されたバージョン以上のGCCを利用することは望ましくないなど)、 今回は gem “font-awesome-sass” を使わずに、 CDN で実装します。

application.html.slim


DOCTYPE
html

  head
    meta name="viewport" content="width=device-width" initial-scale="1.0"
    = csrf_meta_tags
    = stylesheet_link_tag 'application'
    = javascript_include_tag 'application'
    // FontAwesome
    // gem "font-awesome-sass" だと、本番(CentOS 6.7)で "sass" インストールができないため
    link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous"
    = render 'application/favicon'
  body
  # 以下省略

これでとりあえず上手くいきました。

Sources

兵庫県西宮市生まれのフリーランスRailsエンジニア。海外を拠点にデジタルノマド生活中。/ 前職・資格:公認会計士 / プログラミング言語:Ruby, JavaScript, HTML, CSS / 日本語・英語
コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です