先日は 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で進まなくなってしまうので待ちを追加
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 にもインストールできることを確認できました。