stylesheet

2018-08-03

arm64版armbianでpuppeteerを使う

puppetterはnodejsからheadless-chromeを使用するためのライブラリ。
こちらもarm64環境では素直に動かなかったのでメモ。

環境

  • Orange Pi Win Plus
  • ARMBIAN 5.41 stable Ubuntu 16.04.5 LTS 3.10.107-pine64
  • nodejs v8.11.3

問題点

  • npmインストール時にchromeバイナリが自動ダウンロードされるがarm64版ではないので起動しない。
  • 手動でarm64版をダウンロードして置き換えようにも、そもそもarm64版のスナップショットは公式で提供されていない。
  • armbian(ubuntu)がarm64版のchromiumを提供しているが少しバージョンが古い。Chromium 68.0.3440.75
  • 最新のpuppeteer v1.6.1が対応するchromeはChromium 69.0.3494.0 (r575458)。
  • chromiumのような大きなアプリケーションをセルフビルドするのは嫌だ。

対処

  • 古いのを承知でaptパッケージのchromium-browserをインストール。
  • 対応chromeのバージョンが近いpuppetter v1.4.0で妥協。
  • aptパッケージのchromiumを使う。(executablePath/usr/bin/chromium-browserを指定)
$ sudo apt install chromium-browser
$ npm install puppeteer@1.4.0 
const puppeteer = require('puppeteer')

(async () => {
    const browser = await puppeteer.launch({
      executablePath: '/usr/bin/chromium-browser'
    })
    ...
})()

以上の対処で今回のケースでは一応動作した。
早くarm64もメジャーなアーキテクチャになって欲しいところ。