Help us understand the problem. What is going on with this article?

Gitbookで「Invalid file descriptor to ICU data received.」が出てPDF出力できない場合の対処方法

こんばんは。morifujiです。GitBookを最近業務で使いはじめたんですが、PDF出力でエラーがでたのでそれを解決しました

問題

事前にgitbookをREADMEなりqiitaなりに従って、npmでインストールし brew caskでCalibreをインストールしている状態です

$ npm install -g gitbook-cli
$ brew cask install Calibre

この状態でPDFを出力をすると

$ gitbook pdf
...略
warn: "options" property is deprecated, use config.get(key) instead 

途中で固まりました。 gitbook pdf --log info で出力を見ると Invalid file descriptor to ICU data received これが原因そう

debug: [1218/194620.605118:ERROR:icu_util.cc(177)] Invalid file descriptor to ICU data received.

原因・対処方法

gitbookが依存しているcalibreのバージョンが4.xに上がったが、gitbookがそれに対応できていないためのようです。確かに調べてみたらgitbookは最終更新1年前。calibreが4.0になったのは2019年10月でした。

なのでcalibre のバージョンを4.xから3.xにする必要があるそうです。

# 一旦削除
$ brew cask uninstall Calibre
# 3.8.0をインストール。urlはgithubのコミット履歴から拝借
$ brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/0609402ee984aa887752a205b3086191aed1385e/Casks/calibre.rb

ちなみに、Calibreは公式サイトからdmgファイルでインストールできますが、それではダメでした

参考

diggy-mo
クソ雑魚エンジニア
https://blog.morifuji-is.ninja/
atma_inc
Change the common sense with algorithm を達成するためのスタートアップ
https://atma.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした