Zotero Standalone ohne Abhängigkeit von GTK+ 3 und DBus
David Maus, 26. Dez 2017
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 den 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.
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.
