BLOGTIMES
2018/06/22

Windows 10 上の Ubuntu 18.04 に Splash をインストールする

  wsl  python  ubuntu1804  splash  tutorial 
このエントリーをはてなブックマークに追加

先日は WSL の Ubuntu 16.04 に Splash をインストールしましたが、折角なので最新版の 18.04 に対して同じ手順を行ってみました。
OS のバージョンアップに伴って細かい部分で変更しなければならない部分があります。

実際の手順は以下のとおり。

下準備

さらに、Ubuntu 18.04 を最新状態にして、エラーが出ているファイル(/etc/mtab, /etc/machine-id)を生成します。
dbus は使っているかどうかイマイチ確信が持てませんが、一応サービスを起動しておきます。

vxvb 経由でインストーラーがきちんと動作するようになったので、前回と違って今回はVcXsrv は必要ありません

sudo apt-get update ; sudo apt-get -y upgrade; sudo apt-get -y install build-essential git sudo ln -s /proc/mounts /etc/mtab sudo mv /etc/machine-id{,.bak} sudo dbus-uuidgen --ensure=/etc/machine-id sudo service dbus start

Splash のインストール

ここからは公式のマニュアルに沿って進行しますが、適宜パッチを当てます。

1.Clone the repo from GitHub:

この部分はオリジナルから変更はありません。単に git のリポジトリをクローンするだけです。
ここまでは 16.04 と同様の手順になります。

cd ~ git clone https://github.com/scrapinghub/splash/

2. Install dependencies:

ここではインストール用のメインスクリプトである provision.sh にパッチを当てています。
前回との差異は以下の点になります。

  • 18.06 向けにライブラリ名を変更&追加
  • Qt のインストーラーを VcXsrv ではなく、vxvb 経由で起動するように修正(オリジナルの動作に戻した)
  • qmake のパスがうまく解決されていないのを修正
  • Qt のインストーラーがコケるので、5.9.1 から現状の最新版である 5.9.6 に変更
  • Qtのインストーラーが WelcomePageで進まなくなってしまうので待ちを追加*1
cd splash/dockerfiles/splash patch -p3 <<'EOF' --- a/dockerfiles/splash/provision.sh +++ b/dockerfiles/splash/provision.sh @@ -88,7 +88,9 @@ install_qtwebkit_deps () { mesa-common-dev \ libfontconfig1-dev \ libicu-dev \ - libpng12-dev \ + libpng-dev \ + openssl1.0 \ + libssl1.0-dev \ libxslt1-dev \ libxml2-dev \ libhyphen-dev \ @@ -122,7 +124,7 @@ install_official_qt () { # as well as qt-installer-noninteractive.qs script. _ensure_folders && \ curl -L -o /downloads/qt-installer.run \ - http://download.qt.io/official_releases/qt/5.9/5.9.1/qt-opensource-linux-x64-5.9.1.run && \ + http://download.qt.io/official_releases/qt/5.9/5.9.6/qt-opensource-linux-x64-5.9.6.run && \ chmod +x /downloads/qt-installer.run && \ xvfb-run /downloads/qt-installer.run \ --script /tmp/script.qs \ @@ -139,7 +141,7 @@ install_qtwebkit () { curl -L -o /downloads/qtwebkit.tar.xz https://github.com/annulen/webkit/releases/download/qtwebkit-5.212.0-alpha2/qtwebkit-5.212.0_alpha2-qt59-linux-x64.tar.xz && \ pushd /builds && \ tar xvfJ /downloads/qtwebkit.tar.xz --keep-newer-files && \ - rsync -aP /builds/qtwebkit-5.212.0_alpha2-qt59-linux-x64/* `qmake -query QT_INSTALL_PREFIX` + rsync -aP /builds/qtwebkit-5.212.0_alpha2-qt59-linux-x64/* `/opt/qt59/5.9.6/gcc_64/bin/qmake -query QT_INSTALL_PREFIX` } @@ -164,8 +166,8 @@ install_pyqt5 () { # PyQt5 tar xzf /downloads/pyqt5.tar.gz --keep-newer-files && \ pushd PyQt5_gpl-${SPLASH_PYQT_VERSION} && \ -# --qmake "${SPLASH_QT_PATH}/bin/qmake" \ ${_PYTHON} configure.py -c \ + --qmake "/opt/qt59/5.9.6/gcc_64/bin/qmake" \ --verbose \ --confirm-license \ --no-designer-plugin \ --- a/dockerfiles/splash/qt-installer-noninteractive.qs +++ b/dockerfiles/splash/qt-installer-noninteractive.qs @@ -10,7 +10,7 @@ function Controller() { } Controller.prototype.WelcomePageCallback = function() { - gui.clickButton(buttons.NextButton); + gui.clickButton(buttons.NextButton, 5000); } Controller.prototype.CredentialsPageCallback = function() { @@ -32,8 +32,8 @@ Controller.prototype.ComponentSelectionPageCallback = function() { // To get component names, comment out widget.deselectAll() // to install everything default, then check components.xml file. widget.deselectAll(); - widget.selectComponent("qt.591.gcc_64"); - widget.selectComponent("qt.591.qtwebengine.gcc_64"); + widget.selectComponent("qt.596.gcc_64"); + widget.selectComponent("qt.596.qtwebengine.gcc_64"); gui.clickButton(buttons.NextButton); } EOF sudo cp ./qt-installer-noninteractive.qs /tmp/script.qs sudo ./provision.sh \ prepare_install \ install_msfonts \ install_extra_fonts \ install_deps \ install_flash \ install_qtwebkit_deps \ install_official_qt \ install_qtwebkit \ install_pyqt5 \ install_python_deps echo "/opt/qt59/5.9.6/gcc_64/lib/" | sudo tee /etc/ld.so.conf.d/qt59.conf > /dev/null sudo ldconfig

オリジナル版のヘッドレス動作に戻しましたので、Qt インストーラーの画面は表示されません。
最後に pip3 で splash をインストールします。dbus はいちおうここで止めておきます。

cd sudo pip3 install splash/ sudo service dbus stop

これでインストールは完了です。

Splash を起動してみる

きちんとインストールできていれば、以下のコマンドで Splash サーバが起動します。

python3 -m splash.server

Splash のデフォルトポートは 8050 なので、ブラウザで http://localhost:8050 にアクセスすれば Splash の画面が表示されるはずです。あとは URL 欄に好きな URL を入力して「Render ! 」をクリックすればサイトのサムネイルが生成されるはずです。

2018/7/7 追記

同様の手順で通常の Ubuntu 18.04 にもインストールできることを確認できました。


トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10254
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン