wkhtmltopdfのインストール方法(Amazon Linux2/Alpine Linux)
コンテナに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
■おまけ
いざ使おうと思ったら文字化け発生!
作業は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
この時急いで修正したので、どう対応したか忘れてしまった、、
呼び出す側のコードの方を修正して改善したような。
次文字化けに出会ったら今度はちゃんと書こう。
Author And Source
この問題について(wkhtmltopdfのインストール方法(Amazon Linux2/Alpine Linux)), 我々は、より多くの情報をここで見つけました https://qiita.com/mby/items/5b708dc221b37cce89e7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .