前提
Linux系は基本的なコマンド知ってる程度の素人です。
環境
GCPの無料枠で構築したCentOS環境
CentOS Linux release 7.5.1804 (Core)
目指したゴール
SassとCompassのインストール
先に結論
Sassをyumるところでエラーが発生したが、先にffiをyumることでエラーを回避できた。
gccが古かったので新しいの入れたが、それもエラー原因だったかは不明。
手順
事前確認
yum list installed|grep ruby
yum list installed|grep gcc
いずれもインストールされておらず。
Rubyのインストールとgemの最新化
sudo yum install ruby
sudo yum -y install ruby-devel
sudo yum install rubygems
sudo gem update --system
いずれもエラーなし。
gccのインストール
sudo yum install gcc
エラーなし。
Sassのインストール
sudo gem install sass
ここでエラー発生。
# Building native extensions. This could take a while...
# ERROR: Error installing sass:
# ERROR: Failed to build gem native extension.
#
# /usr/bin/ruby extconf.rb
#
# Gem files will remain installed in /usr/local/share/gems/gems/ffi-1.9.25 for inspection.
# Results logged to /usr/local/share/gems/gems/ffi-1.9.25/ext/ffi_c/gem_make.out
いろいろ調べてみると、どうもCentOSのgccが古いらしい。
# gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
# Copyright (C) 2015 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
新しいgccのインストール
sudo yum install centos-release-scl
sudo yum install scl-utils
sudo yum install devtoolset-4-gcc devtoolset-4-gcc-c++ devtoolset-4-binutils
いずれもエラーなし。
新しいgccの有効化
scl enable devtoolset-4 bash
# gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
# Copyright (C) 2015 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
再度Sassのインストール
# Building native extensions. This could take a while...
# ERROR: Error installing sass:
# ERROR: Failed to build gem native extension.
#
# /usr/bin/ruby extconf.rb
#
# Gem files will remain installed in /usr/local/share/gems/gems/ffi-1.9.25 for inspection.
# Results logged to /usr/local/share/gems/gems/ffi-1.9.25/ext/ffi_c/gem_make.out
既視感のあるエラー。
# Gem files will remain installed in /usr/local/share/gems/gems/ffi-1.9.25 for inspection.
という辺りから、ffi入れてるところでエラー起きてるっぽい気がする。
ffiのインストール
sudo gem install ffi
エラーなし。
再度Sassのインストール
sudo gem install sass
エラーなし。
compassのインストール
sudo gem install compass
エラーなし。
確認
sass -v
# Ruby Sass 3.5.6
compass -v
# Compass 1.0.3 (Polaris)
# Copyright (c) 2008-2018 Chris Eppstein
# Released under the MIT License.