CentOS Stream 8 + Ruby + fontcustomをインストール
CentOS7でやった時のリライト版。思ったより時間が掛かった。
環境: CentOS Stream 8, ruby 2.6.7p197, fontcustom 2.0.0
参考サイト
- 【CentOS】SVGをWOFFなどのWebフォントへ変換するfontcustomをインストール
- GitHub | FontCustom/fontcustom: Generate custom icon webfonts from the comfort of the command line.
fontcustomのGitHubページを参考にコマンド実行。powertoolsにfontforgeはあった。
# cd /opt/software/
# dnf install fontforge --enablerepo powertools
# git clone https://github.com/bramstein/sfnt2woff-zopfli.git sfnt2woff-zopfli && cd sfnt2woff-zopfli && make && mv sfnt2woff-zopfli /usr/local/bin/sfnt2woff
# git clone --recursive https://github.com/google/woff2.git && cd woff2 && make clean all && sudo mv woff2_compress /usr/local/bin/ && sudo mv woff2_decompress /usr/local/bin/
モジュール一覧で確認。
# dnf module list ruby
CentOS7の時は2.6だったので冒険せず2.6をインストール。
# dnf module install ruby:2.6
バージョン確認
# ruby --version
ruby 2.6.7p197 (2021-04-05 revision 67941) [x86_64-linux]
fontcustomをインストール
# gem install fontcustom
エラー
Fetching rb-fsevent-0.11.0.gem
Successfully installed rb-fsevent-0.11.0
Fetching ffi-1.15.3.gem
Building native extensions. This could take a while...
ERROR: Error installing fontcustom:
ERROR: Failed to build gem native extension.current directory: /usr/local/share/gems/gems/ffi-1.15.3/ext/ffi_c
/usr/bin/ruby -I /usr/share/rubygems -r ./siteconf20210724-5288-cq84l5.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/share/include/ruby.hYou might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.extconf failed, exit code 1
Gem files will remain installed in /usr/local/share/gems/gems/ffi-1.15.3 for inspection.
Results logged to /usr/local/lib64/gems/ruby/ffi-1.15.3/gem_make.out
ruby-devが必要と怒られた。
検索してインストール。
# dnf search ruby-dev
# dnf install ruby-devel
fontcustomをインストール
# gem install fontcustom
エラー
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/usr/local/lib64/gems/ruby/ffi-1.15.3/mkmf.log
extconf failed, exit code 1
ログファイルを見てみる。
# less /usr/local/lib64/gems/ruby/ffi-1.15.3/mkmf.log
"pkg-config --exists libffi"
package configuration for libffi is not found
libffiを検索してインストール
# dnf search libffi
# dnf install libffi-devel
fontcustomをインストールしてもさっきと同じエラー。ログファイルを見てみる。
# less /usr/local/lib64/gems/ruby/ffi-1.15.3/mkmf.log
ffiでエラーになっている。よくわからん。
gemをアップグレード。
# gem --version
3.0.3.1
# gem update --system
エラー。
ERROR: While executing gem ... (Errno::ENOENT)
No such file or directory @ dir_chdir - /usr/share/gems/gems/rubygems-update-3.2.24
こちらのサイトに答えがあったので、シンボリックリンクを付ける。
# ls /usr/local/share/gems/gems/
# ln -s /usr/local/share/gems/gems/rubygems-update-3.2.24/ /usr/share/gems/gems/rubygems-update-3.2.24
gemアップグレード。確認。
# gem update --system
# gem --version
3.2.24
各gemパッケージをアップデート
# gem update
いろいろエラー。ログを確認してググる。
# dnf install redhat-rpm-config
各gemパッケージをアップデート
# gem update
成功。
これでfontcustomをインストールしてみる。
# gem install fontcustom
成功。
redhat-rpm-configが必要だったみたい。
バージョン確認。
# fontcustom --version
fontcustom-2.0.0
Ignoringがいくつか出るので解消する。
# gem pristine bigdecimal --version 1.4.1
# gem pristine io-console --version 0.4.7
# gem pristine json --version 2.1.0
# gem pristine openssl --version 2.1.2
# gem pristine psych --version 3.1.0
確認。
# fontcustom --version
別ユーザーになってbootstrap-iconsをビルドしてみる。
# su - node
# cd /opt/software/
# git clone https://github.com/twbs/icons.git bootstrap-icons
# cd bootstrap-icons
# fontcustom compile icons/ --name=bi --output=build/bi
エラー。デバッグモードで実行してみる。
# fontcustom compile icons/ --name=bi --output=build/bi --debug
前と同じ文字コードの問題だと思う(前の記事)。
# less /usr/local/share/gems/gems/fontcustom-2.0.0/lib/fontcustom/scripts/generate.py
#tmpsvgfile.file.write(svgtext.encode('utf-8'))
tmpsvgfile.file.write(svgtext.decode('utf-8').encode('utf-8'))
これで実行。
# fontcustom compile icons/ --name=bi --output=build/bi --debug
失敗するのでさっきの文字コードの修正は元に戻す。
いろいろ試す。
gem updateしたらエラーになったので解決する。
# dnf install gdbm-devel
試しに他のsvgを変換したら無事完了した。
bootstrap-iconsとの相性が悪いのかな?
CentOS7上ではbootstrap-icons(v1.5.0)でも問題なく完了する。
とりあえずインストール自体は出来たのでよしとする。
bootstrap-iconsの公式woff2(88.4KB)よりfontcustomで作ったwoff2(66.5KB)の方がサイズが小さいので出来ればビルドする環境は作っておきたい。