Home · Blog · Planet Digital Humanities

David Maus M. A.

Digital Humanities Publishing

Zotero Standalone ohne Abhängigkeit von GTK+ 3 und DBus

David Maus, 26.12.2017 · Twitter · Comment · Permalink

Mit Version 5.0 der Literaturverwaltung Zotero hat es eine für mich einschneidende Veränderung gegeben: Erstmals gibt es Zotero nicht mehr als in Firefox installierbare Erweiterung, sondern nur noch und ausschließlich als alleinstehendes Programm. Der Grund für diese Änderung liegt im Entschluss von Mozilla, das bisher verwendete System für Erweiterungen nicht mehr zu unterstützen.

Soweit, so schlecht. Dummerweise basiert die offizielle Version von Zotero Standalone auf einer Firefox Laufzeitumgebung, die ihrerseits von Systembibliotheken DBus und GTK+ 3 abhängt, die auf meinen System nicht installiert sind und nicht installiert werden.

Ich muss mir also meine eigene Zotero Standalone bauen, die auf einer ebenfalls selbst gebauten Firefox Laufzeitumgebung basiert. Eine Anleitung im Zotero Wiki beschreibt, wie Zotero Standalone aus den Quellen erstellt wird. Da meine Linux-Distribution im Moment nur eine ältere Version von NodeJS bereitstellt, verwende ich ein stabiles Devuan, dass ich in Form eines QEMU Festplatten-Abbildes als Entwicklungsumgebung nutze.

Zwar liefert das aktuelle Devuan 1.0 auch nur die Version 6 von NodeJS benötigt wird mindestens Version 8, aber NodeSource bietet die benötigte Version in einem Repository an, dass ich in der Paketverwaltung von Devuan ergänzen kann.

root@devuan % wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
root@devuan % echo 'deb https://deb.nodesource.com/node_9.x jessie main' > /etc/apt/sources.list.d/nodesource.list
root@devuan % echo 'deb-src https://deb.nodesource.com/node_9.x jessie main' > /etc/apt/sources.list.d/nodesource.list
root@devuan % apt-get install apt-transport-https
root@devuan % apt-get update
root@devuan % apt-get install nodejs

Mit der erforderlichen Version von NodeJS ausgestattet kopiere ich die Firefox Laufzeitumgebung von meinem System auf das Festplatten-Abbild.

dmaus@x220i % sudo qemu-nbd -c /dev/nbd0 virtual/devuan.img
dmaus@x220i % sudo fdisk -l /dev/nbd0
dmaus@x220i % sudo mount /dev/nbd0p1 /mnt/
dmaus@x220i % sudo cp -ra /usr/lib/firefox /mnt/home/dmaus
dmaus@x220i % sudo umount /mnt
dmaus@x220i % sudo qemu-nbd -d /dev/nbd0

Und nun kann es losgehen. Ich folge der Anleitung bis zu dem Schritt, in dem die Firefox Laufzeitumgebung heruntergeladen und vorbereitet wird. Da ich meine eigene Laufzeitumgebung verwenden will, erstelle ich eine Shellscript, das die Laufzeitumgebung aus dem Homeverzeichnis kopiert und dann anpasst.

#!/bin/bash
set -euo pipefail

CALLDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
. "$CALLDIR/config.sh"

#
# Make various modifications to omni.ja
#
function modify_omni {
… wie fetch_xulrunner.sh …
}

# Add devtools server from browser omni.ja
function extract_devtools {
… wie fetch_xulrunner.sh …
}

mkdir -p xulrunner
cd xulrunner

rm -rf firefox-x86_64
cp -ra ~/firefox ./firefox-x86_64
cd firefox-x86_64

modify_omni
extract_devtools

cd ..

echo Done

Als letztes entferne ich die Architektur i686 aus dem Script build.sh, da ich nur die 64bit-Variante erstelle.

diff --git a/build.sh b/build.sh
index b6a2fd2..d736969 100755
--- a/build.sh
+++ b/build.sh
@@ -448,7 +448,7 @@ fi

# Linux
if [ $BUILD_LINUX == 1 ]; then
- for arch in "i686" "x86_64"; do
+ for arch in "x86_64"; do

Fertig! Der letzte Schritt der Anleitung erzeugt ein Verzeichnis mit Zotero Standalone und meiner Laufzeitumgebung. Ich kopiere es vom Festplatten-Abbild in ein lokales Installationsverzeichnis und komme nun auch in den Genuss von Zotero 5.

Zotero Standalone @ x220i