0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VPS上のDebian 12にpuppeteerをインストールする際に、手動でインストールする必要があるライブラリ(2025/9/21時点)

Last updated at Posted at 2025-10-02

要約

Webページから主にリンクなどの情報を抽出するアプリを作成した際、VPS上へのpuppeteerのインストール時に不足しているファイルが存在していて、解決に少し時間がかかりました。
必要なライブラリさえ判明すればすぐ終わるタスクのため、そのライブラリの一覧を共有します。
参考になれば幸いです。

前提

  • OSはDebian12(XServer VPSの4GBプランに構築)を使用
  • Node.jsはvolta経由でインストール済み
  • puppeteerパッケージはnpm i puppeteerでインストール済み

この記事ではapt-getコマンドを使用していますが、aptコマンドでのインストールの方がユーザーに易しいようです。必要に応じてaptコマンドに読み替えても問題ないと思います。

必要なライブラリをインストール

puppeteerには軽量版の「old Headless mode」と通常のchromiumに近い通常版の2通りのブラウザが同梱されています。
そのため、一覧表は2つに分けています。
必要な範囲で「インストールするライブラリ」に記載のパッケージをインストールしてください。
全部インストールしても問題無いです。私の環境では全部インストールしました。

ライブラリと呼んでいますが、インストールするパッケージのファイル名でライブラリと判断しています。
間違っていたらすみません。

sudo apt-get install 「インストールするライブラリ」

軽量版

不足ファイル インストールするライブラリ(パッケージ)
libnspr4.so libnspr4
libnss3.so libnss3
libnssutil3.so libnss3
libatk-1.0.so.0 libatk1.0-0
libatk-bridge-2.0.so.0 libatk-bridge2.0-0
libatspi.so.0 libatspi2.0-0
libX11.so.6 libx11-6
libXcomposite.so.1 libxcomposite1
libXdamage.so.1 libxdamage1
libXext.so.6 libxext6
libXfixes.so.3 libxfixes3
libXrandr.so.2 libxrandr2
libgbm.so.1 libgbm1
libxcb.so.1 libxcb1
libxkbcommon.so.0 libxkbcommon0
libasound.so.2 libasound2

通常版

軽量版に加えて、以下が必要です。

不足ファイル インストールするライブラリ(パッケージ)
libsmime3.so libnss3
libcups.so.2 libcups2
libcairo.so.2 libcairo2
libpango-1.0.so.0 libpango-1.0-0

これで一応は問題なく動くはずです。

私のウェブアプリでは、たまにどのページにアクセスしてもタイムアウトする現象が起きますが、サーバーの再起動で直るので一旦放置しています。

不足ファイルの調査方法

不足ファイルの調査方法は以下です。
まず、lddコマンドでpuppeteer付属のchromeの依存ファイルのうち、不足しているもののリストを取得します。

lddコマンドでは実行ファイルの絶対パスが必要です。
puppeteerで使用するchromiumは~/.cache/puppeteer/配下に格納されています。
軽量版は~/.cache/puppeteer/chrome-headless-shell/linux-140.0.7339.82/chrome-linux64/chrome-headless-shell
通常版は~/.cache/puppeteer/chrome/linux-140.0.7339.82/chrome-linux64/chrome
となっているはずです。
「linux-140.0.7339.82」の箇所はおそらくchromiumのバージョンによって異なるはずです。

以下のコマンドでは、私の環境での値を使用しています。

ldd ~/.cache/puppeteer/chrome/linux-140.0.7339.82/chrome-linux64/chrome | grep 'not found'

不足ファイルを使用しているパッケージをapt-fileコマンドで探します。

apt-file search 「不足しているファイル名」

apt-fileコマンドは標準ではインストールされていません。コマンドが存在しない場合は
sudo apt-get install apt-file
でインストールしてください

「パッケージ名: ファイルパス」の形で出力されます。
このパッケージ名でインストールを行ってください。

sudo apt-get install 「パッケージ名」

VPS上でのpuppeteer使用時の注意点

GUI(Graphical User interface)のないVPS上のOSで使用しているためか、アクセスするページによってはWebGPU関連のエラーがchromiumのコンソールに記録される場合があります。

前述の通り、少なくとも通常版は常駐させると、たまにどのページにアクセスしてもタイムアウトするなど、挙動が不安定になる場合があります。

軽量版はexample.comのような軽いページでは問題ないですが、重いページにアクセスするとタイムアウトします。

以上です。何か間違いなどがありましたら、お手数ですが指摘していただけると助かります。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?