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もメジャーなアーキテクチャになって欲しいところ。