Difference between revisions of "De/Flatpak"

From GnuCash
Jump to: navigation, search
m (verbesser Lesbarkeit)
(Bekannte Einschränkungen: Aktuelle Liste)
Line 12: Line 12:
 
*kein ''direkter Druck'' von Berichten (Drucken in eine Datei funktioniert) und  
 
*kein ''direkter Druck'' von Berichten (Drucken in eine Datei funktioniert) und  
 
*ein bisher nur in ''Ubuntu-Derivaten'' beobachteter Fehler, der ''Guile'' veranlaßt, alle scm-Quellen neu zu übersetzen: {{Flatpak_Guile_Error_Demo}}
 
*ein bisher nur in ''Ubuntu-Derivaten'' beobachteter Fehler, der ''Guile'' veranlaßt, alle scm-Quellen neu zu übersetzen: {{Flatpak_Guile_Error_Demo}}
 +
* [https://github.com/flathub/org.gnucash.GnuCash/issues/ Aktuelle Liste]
  
 
=Installation=
 
=Installation=

Revision as of 14:20, 19 August 2020

Languages English

Flatpaks sind Bündel, welche neben dem Programm auch alle erforderlichen Bibliotheken enthalten. Falls Ihre Linux-Distribution für erforderliche Bibliotheken zu alt ist, aber Flatpak-Unterstützung hat, können Sie damit dennoch eine aktuelle GnuCash-Version installieren.

Das Programm läuft dabei in einer teilweise abgeschotteten Umgebung ("Sandkasten"), kann also beispielsweise nur auf das Heimat-Verzeichnis des aufrufenden Benutzers schreibend zugreifen und in der Regel weite Teile des Dateisystems, welche zur Programmausführung nicht notwenig sind, nicht einmal lesen.

Bekannte Einschränkungen

  • Wenn Sie Ihre Smart Card benutzen wollen, benötigen Sie mindestens Flatpak 1.3.2 auf Ihrem Computer. Beschweren Sie sich bei Ihrer Distribution, wenn sie es nicht anbietet.
  • Kein Finance::Quote vor dem Bündel 3.8-2 (16/17.02.2020),
  • kein direkter Druck von Berichten (Drucken in eine Datei funktioniert) und
  • ein bisher nur in Ubuntu-Derivaten beobachteter Fehler, der Guile veranlaßt, alle scm-Quellen neu zu übersetzen:
    :
    ;;; note: source file /app/share/guile//2.2/ice-9/eval.scm
    ;;;       newer than compiled /app/lib/guile/2.2/ccache/ice-9/eval.go
    :
    
Workaround:
# --system install
cd /var/lib/flatpak/app/org.gnucash.GnuCash
# OR --user install
cd $HOME/.local/share/flatpak/app/org.gnucash.GnuCash

sudo find . -name '*.go' -exec touch '{}' ';'

Installation

Flatpak selbst

https://flatpak.org/setup/ hat Anleitungen für verschiedene Distributionen.

Serverübersicht

  • Die #Stabile_Version_von_Flathub.org entspricht offiziellen GnuCash-Versionen und eignet sich für Distributionen, die kein aktuelles GnuCash mitliefern, aber über ein genügend aktuelles FlatPak-Paket verfügen.
  • #Testversion_von_Gnucash.org sind aktuelle Schnappshüsse, um Flicken (Patches) zu testen. An anderer Stelle können aber neue Löcher aufgetreten sein.

Beispiel-Einrichtung

Diese wurde unter Ubuntu oder Debian (ab Buster ist Flatpak regulär enthalten, für Stretch/Jessie in den „Backports“) ausgeführt. Für andere ist also apt … durch das jeweilige Software-Installationswerkzeug zu ersetzten.

Testversion von Gnucash.org

Bisweilen gibt es Testversionen der aktuellen Programmentwicklung auf dem Build-Server.

Warnung
Vor Gebrauch von Testversionen unbedingt Daten sichern!

Die aktuelle Version enthält Aqbanking 6.0.2 (für „PSD2“ geeignet, wird für Online-Banking mit FinTS/HBCI gebraucht; Stand: 16.02.2020).

Zu finden sind die aktuellen Versionen hier (das sind nicht die eigentlichen Programmpakete, sondern Referenzdateien, die Flatpak' sagen, was heruntergeladen werden soll):

Testversion 5.6 mit aktuellen Fehlerbehebungen, aber ohne neue Programmeigenschaften (aus Stabilitätsgründen zu bevorzugen): code.gnucash.org/builds/flatpak/maint/
Testversion 5.6 mit verzögerten Fehlerbehebungen, aber neuen Programmeigenschaften: code.gnucash.org/builds/flatpak/master/

Die Dateinamen aus diesen Verzeichnissen können im Beispiel unten verkürzt eingesetzt werden: vorne „gnucash-“ und hinten „.flatpakref“ weglassen.

sudo apt install flatpak  #Nur beim allerersten Mal: Flatpak installieren
# Auch einmalig: Repositorien registrieren:
sudo flatpak remote-add --if-not-exists gnucash https://code.gnucash.org/builds/flatpak/gnucash-nightlies.flatpakrepo
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Anzeige aller im Repositorium vorhandenen Programmpakete:
flatpak --arch=x86_64 remote-ls gnucash
# Ausgabe ist ähnlich:
# org.gnucash.GnuCash
# org.gnucash.GnuCash.Debug
# org.gnucash.GnuCash.Locale
sudo flatpak install gnucash org.gnucash.GnuCash/x86_64/maint-C3.7-254-g1af8e272c-D3.7-57-g022975e  # <-- Version anpassen!
flatpak run org.gnucash.GnuCash  # Beliebig oft: Programmstart

Versionen von Flathub.org

Auf Flathub steht neben der aktuellen stabilen — GnuCash 5.6 — in der Testphase von einigen Monaten vor einer neuen Haupversion auch eine Vorschau als unstable (instabile) — GnuCash 5.9xx — bereit. Die genauen Daten werden im Release Schedule angekündigt.

  • Beide Zweige können parallel installiert werden.
Siehe auch
Flathub
Hinweis zu PSD2
Die Version Gnucash 3.7 enthielt noch Aqbanking 5.8.2 und war damit für „PSD2ungeeignet, Online-Banking per FinTS/HBCI ging damit seit September 2019 nicht mehr. Seitdem enthielt jede Version der 3.x-Serie noch weitere Verbessserungen dazu.
Das Team bittet daher darum, davon abzusehen, Probleme zu melden, welche längst gelöst wurden!
Stabile Version
# Install FlatPak (on debian based distributions, others have to replace 'apt-get install'):
sudo apt-get install flatpak

# Register FlatHub repository for a system app (available to all users):
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# or only you:
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# Install GnuCash ...
# for all users:
#  sudo is only needed for a --system install, if the user is not in the 'sudo' group
#  --system is the default if --user is not specified
sudo flatpak install --system flathub org.gnucash.GnuCash
# or only you:
flatpak install --user flathub org.gnucash.GnuCash

# Run GnuCash:
flatpak run org.gnucash.GnuCash
Tip
Am Ende jeden Quartals, siehe Release Schedule, erscheint eine neue Gnucash-Version. Um darauf zu aktualisieren,
flatpak update
aufrufen.
Beta-Version ("unstable")
Für die Beta-Version, führen Sie "im Prinzip" dieselben Schritte aus wie für die stabile, aber register, install und run wie folgt:
# Register:
flatpak remote-add --user --if-not-exists flathub https://flathub.org/beta-repo/flathub-beta.flatpakrepo
# Install
flatpak install --user flathub-beta org.gnucash.GnuCash
# Run
flatpak run --branch=beta org.gnucash.GnuCash
Tip
In der Testphase erscheint mindestens am Ende jeden Monats eine neue Gnucash-Beta-Version.

Tips

Wartung

Von Zeit zu Zeit sollte man — auch wenn keine neue GnuCash-Version angekündigt wurde —
[sudo] flatpak update
aufrufen, um zu sehen, für welche Komponenten es Aktualisierungen gibt. Das kann dann so aussehen:
        ID                                    Zweig  Op  Remote   Download
 1.     org.freedesktop.Platform.GL.default   19.08  u   flathub   < 85,1 MB
 2.     org.freedesktop.Platform.VAAPI.Intel  19.08  u   flathub    < 8,7 MB
 3.     org.gnome.Platform.Locale             3.34   u   flathub  < 322,2 MB (partial)
 4.     org.gnome.Platform                    3.34   u   flathub  < 320,4 MB
 5.     org.gnome.Sdk.Locale                  3.34   u   flathub  < 325,8 MB (partial)
 6.     org.gnome.Sdk                         3.34   u   flathub  < 663,9 MB

Proceed with these changes to the user installation? [Y/n]:
Das ist vor allem wichtig, wenn man ein Problem gemeldet hat, zu dem die Gnucash-Entwickler meinen, es liegt nicht in Gnucash, sondern in den von Flatpak verwendeten Gnome-Bibliotheken. Aber auch aus Sicherheitsgründen sollte man immer aktuelle Umgebungen verwenden.

Optische TANs

Zur Anzeige optischer TANs haben einige AqBanking-Werkzeuge den Parameter --opticaltan=<Pfad/zum/Anzeige-Programm>, z.B. /usr/bin/gwenview. Sollte Flatpak das in seinem Sandkasten nicht finden, kann man stattdessen /usr/bin/xdg-open angeben, welches dann alle passenden Programme zur Auswahl anbietet. Es ist Bestandteil des Pakets 'xdg-utils', welches man dann natürlich installiert haben sollte.

Befehlszeilen-Werkzeuge aufrufen

Man kann mit --command ein Kommando angeben, dass flatpak run statt des eigentlichen Programms ausführen soll.

Also:
flatpak run --command=sh org.gnucash.GnuCash
öffnet eine Shell innerhalb der Flatpak-Umgebung von GnuCash, in der man dann auch aqbanking-cli oder gnc-fq-* Skripte aufrufen kann.

Zugriff auf zusätzliche Resourcen

Jedes Flatpak ist zunächst ein abgeschotteter Sandkasten. Um z.B. Zugriff aufs USB-Laufwerk zu erlangen, ist eine Freigabe erforderlich:
sudo flatpak override org.gnucash.GnuCash --filesystem=<Pfad-zum-USB-Laufwerk>
Siehe auch
https://docs.flatpak.org/de/latest/sandbox-permissions.html

Fehlersuche

  1. Falls es irgendwelche Probleme gibt, hilft es bisweilen, die Konsolen-Ausgabe zu beobachten:
    flatpak run org.gnucash.GnuCash
    
  2. In der nächsten Stufe
    flatpak run org.gnucash.GnuCash --logto stdout
    
    werden alle Log-Daten auf der Konsole statt in einer schwer erreichbaren Trace-Datei geschrieben.
    Siehe auch
    Feedback
  3. Bei einem Absturz kommgt man an einen Stacktrace mit
$ flatpak-coredumpctl --help
usage: Debug in gdb an application that crashed inside flatpak. It uses (and thus requires) coredumpctl to retrieve the coredump file.
       [-h] [-b BUILD_DIRECTORY] [--extra-flatpak-args EXTRA_FLATPAK_ARGS] [-m [COREDUMPCTL_MATCHES]]
       [--gdb-arguments GDB_ARGUMENTS]
       [app]

positional arguments:
  app                   The flatpak application to use. eg. `org.gnome.Epiphany//3.28`.

optional arguments:
  -h, --help            show this help message and exit
  -b BUILD_DIRECTORY, --build-directory BUILD_DIRECTORY
                        The build directory to use. It allows you to retrieve a coredump for applications being built
  --extra-flatpak-args EXTRA_FLATPAK_ARGS
                        Extra argument to pass to flatpak
  -m [COREDUMPCTL_MATCHES], --coredumpctl-matches [COREDUMPCTL_MATCHES]
                        Coredumpctl matches, see `man coredumpctl` for more information.
  --gdb-arguments GDB_ARGUMENTS
                        Arguments to pass to gdb.

Migrationsanleitung von einer Distributions-Installation ausgehend