0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

wkhtmltopdfのインストール方法(Amazon Linux2/Alpine Linux)

Last updated at Posted at 2020-12-21

コンテナにwkhtmltopdfをインストールした時にいろいろつまづいたのでメモしました。
基本的な手順は以下で確認。
https://laox.com/ja/9mcv

Amazon Linuxの場合

###1.wkhtmltopdfのダウンロード
公式リポジトリから必要なバージョンのパッケージをダウンロードします。

cd /tmp
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos6.x86_64.rpm

###2.必須フォントのインストール
rpmコマンドでインストールする場合、無いとwkhtmltopdfのインストールの時に怒られるので仕方なく。
後述しますがyumで

yum install -y xorg-x11-fonts-75dpi xorg-x11-fonts-Type1 

###3.wkhtmltopdfのインストール
ここからが参照元のページのようにうまくいかなかったところ。インストール用コマンドは以下。

rpm -Uvh wkhtmltox-0.12.6-1.centos6.x86_64.rpm

実行してみると・・・

rpm -Uvh wkhtmltox-0.12.6-1.centos6.x86_64.rpm
error: Failed dependencies:
        openssl is needed by wkhtmltox-1:0.12.6-1.centos6.x86_64

どうやらダウンロード・保存されたファイル名が求められているファイル名と違う様子。

pwd
/tmp
ls -ltr
total 13252
-rw-r--r-- 1 root   root   13564280 Jun 11  2020 wkhtmltox-0.12.6-1.centos6.x86_64.rpm

ちなみにrpmのオプションは下記のような内容。

-U:rpm -U は、パッケージの必要に応じて アップグレード または インストール のいずれかの機能を実行できます。
-vh:-v および -h のオプション(-U と組み合わされる)により、rpm は、詳細出力を表示し、ハッシュマークを使って進行メーターを表示します。

なぜダウンロードしたファイル名そのままで使用できないんだろう。
ちなみにopensslがお望みのファイル名でダウンロードできないか試したところ、404エラー。
ファイル名の変更も考えたけどそれは違う気がする。
パッケージの依存関係を調べてみる。

rpm -qRp wkhtmltox-0.12.6-1.centos6.x86_64.rpmca-certificates
fontconfig
freetype
glibc
libX11
libXext
libXrender
libjpeg
libpng
libstdc++
openssl
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
xorg-x11-fonts-75dpi
xorg-x11-fonts-Type1
zlib

この依存関係にあるものたちは全てインストールされているのだろうか。
一応yumコマンドでも試してみる事に。

yum install -y wkhtmltox-0.12.6-1.centos6.x86_64.rpm
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/3): make-3.82-24.amzn2.x86_64.rpm                       | 420 kB  00:00:00     
(2/3): openssl-1.0.2k-19.amzn2.0.4.x86_64.rpm              | 495 kB  00:00:00     
(3/3): openssl-libs-1.0.2k-19.amzn2.0.4.x86_64.rpm         | 1.2 MB  00:00:00 

足りなかったと思われるパッケージのダウンロードからやってくれている様子。
その結果、

wkhtmltopdf -V
wkhtmltopdf 0.12.6 (with patched qt)

インストールされた!
yumだと依存パッケージも一緒にインストールしてくれるのでうまくいくらしい。

Alpine Linuxの場合

同じqtパッチが適用されたパッケージをインストールしようと思ったら、公式では用意が無いらしい。
issueでいろいろやり取りがあるけど最終的にパッチ適用バージョンを作っていないように見える。
https://github.com/wkhtmltopdf/packaging/issues/2

下記のような情報を参考に自分でパッチをあてるしかないらしい。
(Alpine Linuxやwkhtmltopdf自体のバージョンにもよるかも)
https://github.com/alloylab/Docker-Alpine-wkhtmltopdf/blob/master/Dockerfile

■おまけ

いざ使おうと思ったら文字化け発生!

image.png

作業はroot、実際使うのはapacheだからパーミッションの問題?
と思ったら読み取り可。

ls -ltr /usr/share/fonts/IPAexfont00301/          
total 13524
-rw-r--r-- 1 root root 7776964 Dec 21 16:17 ipaexm.ttf
-rw-r--r-- 1 root root 6041284 Dec 21 16:17 ipaexg.ttf
-rw-r--r-- 1 root root    1592 Dec 21 16:17 Readme_IPAexfont00301.txt
-rw-r--r-- 1 root root   20564 Dec 21 16:17 IPA_Font_License_Agreement_v1.0.txt

この時急いで修正したので、どう対応したか忘れてしまった、、
呼び出す側のコードの方を修正して改善したような。
次文字化けに出会ったら今度はちゃんと書こう。

0
5
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
0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?