LoginSignup
1
2

More than 5 years have passed since last update.

knitrBootstrapのエラー「pandoc: Could not find data file templates/default.html」の解決

Posted at

はじめに

RStudioのDockerコンテナを用意して、knitrを動かすところまでは問題なくできたのだが、knitrBootstrapを動かすところでハマったので、そのときの解決までのメモ

結論

pandocのバージョンが古いバイナリを使っててエラーが出ていた。バイナリファイルに変更すれば解決。

問題

  • 別のRStudioコンテナで問題なく動いてたRmd(knitrBootstrapをYAML指定)のものが、自分で新たに立てたRStudioコンテナだと、エラーが出て、htmlファイルのアウトプット時に以下のエラーが出る。
pandoc: Could not find data file templates/default.html
Error: pandoc document conversion failed with error 97
Execution halted

試行錯誤

ひとまずググるとドンピシャのGithubのIsuueがある。
Pandoc crashes rendering a knitrBootstrap document

RStudioインストール時についてくるpandocが問題(壊れている)とか書いてある。それをリネームして、元のOSにインストールされているpandocをシンボリックリンクすればOKとのこと。

それのとおり、新しいPandocのバイナリファイルをゲットして、それに置き換えてみたところ動いた!

knitrBootstrapが動かなかったPandocのバージョンのもの

$ pandoc -v
pandoc 1.12.4.2
<snip>

knitrBootstrapが動いたPandocのバージョンのもの

$ pandoc -v
pandoc 1.13.1
<snip>

原因1

新しく立てたRStudioコンテナで利用したRStudioのイメージが古かったのか、古いRStudioのバージョンを使っていた模様...。Dockerイメージの管理が甘かった。0.99系なら問題なく動くのかな?

$ cat /usr/lib/rstudio-server/VERSION
0.98.1091

原因2

古いバージョンのPandocでもpandoc-templatesをダウンロードして、自分のホームの下に置けばうまくいく。rockerのRStudio Dockerfileでは、そうやってるみたいだけど、これをわざわざしてるのは別の理由があるのかな。

おわりに

RStudioのイメージファイルが散財していたので、ちゃんとDockerfileで管理しなければ。しかし、ひさびさにdocker buildすると、途中でエラーでて止まるの勘弁してほしい。

参考

1
2
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
2