背景知識を提供するために、wkhtmltopdfを使用してローカルファイルをパイプライン/公開の証拠として使用する.html
ファイルに変換します。.pdf
ただし、生成されたこのHTMLにはいくつかのリモートスクリプトとソースがあります。したがって、wkhtmltopdfはそれをAzureパイプラインに追加しようとします。私たちのパイプラインはRHELを実行します。
バージョン0.12.4で発生するバグはSSLのバグの一種であり、バージョン0.12.5で修正されました。だから私はバージョン0.12.6をインストールしようとしましたが、うまくいきましたが、実行すると次のエラーが発生しました。
tools/wkhtmltopdf: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
CentOS / RHEL(YUMおよびRPMパッケージマネージャ)の場合は、libpng-develをインストールする必要があることがわかりました。だから私はこれを試しました:
yum --showduplicates list libpng-devel
yum -y install libpng-devel
RHELシステムにバージョンがインストールされていますが、libpng-devel-2:1.6.34-5.el8.x86_64
PDFを解析しようとすると同じエラーが発生します。
私はLinuxの経験がなく、この問題を解決する方法がわかりません。また、別のバージョンがあるかどうかを検索してみました。しかし、Windows開発システムがあるので、何でも試すにはパイプラインを通過する必要があります(毎回約10分かかります)。
私もSEを見て、これが近いことがわかりました。"共有ライブラリの読み込みエラー:libpng15.so.15:共有オブジェクトファイルを開けませんでした。そのファイルまたはディレクトリが見つかりません。"?しかし、答えで判断すると、次に何をすべきかはよくわかりません。
TLDR:もしそうなら、このエラーをどのように修正しますか?図書館が必要ですが、私が考えている図書館は正しいのではないでしょうか?
編集:私たちはAzureでRHELを実行しており、他の誰かがwkhtmltopdfバージョン0.12.6を使用して成果物を作成しました。
編集2:出力yum repolist
倉庫ID | 倉庫名 |
---|---|
ubi-8-アプリストリーム | ubi-8-アプリストリーム |
ubi-8-バスソース | ubi-8-バスソース |
ubi-8-コードレディビルダー | Red Hat Universal Base Image 8(RPM) - CodeReady Builder |
ubi-8-バスソース | 41kB/秒 - 3.8kB 00:00 |
ubi-8-バスソース | 3.9MB/秒 - 798kB 00:00 |
ubi-8-アプリストリーム | 51kB/秒 - 4.2kB 00:00 |
ubi-8-アプリストリーム | 8.0MB/秒 - 2.6MB 00:00 |
Red Hat Universal Base Image 8(RPM) - CodeRea | 37kB/秒 - 3.8kB 00:00 |
パラメータの不一致の出力yum install wkhtmltopdf -y
:wkhtmltopdfエラー:一致するものが見つかりません:wkhtmltopdf
解決策:
アップロードした0.12.6パッケージが壊れて新しいrpmパッケージをアップロードしたらすぐに動作しました。
答え1
インストールしたバージョンで見ると、libpng-devel
RHEL 8を使っているようです。
ところで、インストールしたランタイムライブラリのバージョンが古すぎます。開発パッケージは必要なく、ランタイムライブラリを提供する汎用パッケージのみが必要です。
appstream
リポジトリを有効にしたと仮定すると、次のものが必要です。libpng15.i686
yum install libpng15.i686 -y
その後、/usr/lib/libpng15.so.15
マシンで見ることができます。
今後、ライブラリ/ヘッダ/バイナリなどを提供するパッケージを見たい場合
yum provides */file_name
答え2
このエラーは「ライブラリlibpng15.so.15が見つかりません」を意味します。あなたのインストールの説明は、あるライブラリバージョンを別のライブラリバージョンに簡単に置き換えることができないことに気づいていないようです。
プログラムには、ビルドされたものとまったく同じバージョンの共有ライブラリ(またはABI互換バージョン、しかしデフォルトでは「まったく同じバージョン」)が必要です。したがって、.15バージョン用に構築されたwkhtmltopdfを他のバージョンと一緒に使用することはできません!
したがって、あなたが持っているlibpngのバージョンと正確に一致するように構築されたwkhtmltopdfを再インストールする必要があります。
Linuxディストリビューションの鍵は、インストールするソフトウェアが必要なライブラリのバージョンをインポートしていることを確認することです。したがって、
だから私はバージョン0.12.6をインストールしようとしましたが、うまくいきます。
いいえ、そうではありません。まさにそうですね。 libpngなどのシステムライブラリをABI互換性のないバージョンに置き換えることはできません。
答え3
私はこれを見つけ、それは私に効果的です。
sudo -i yum install compat-openssl10.x86_64