De/Flatpak/Migrationsanleitung

From GnuCash
Revision as of 17:37, 6 February 2021 by CWehli (talk | contribs) (change link 'De/HBCI' -> 'De/Online-Banking')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Diese Seite enthält eine Migrationsanleitung zum Übergang von einer bestehenden Gnucash-Installation zu einer Flatpak-Installation unter Linux.

Der Zweck ist, ein PSD2-fähiges Gnucash für Nutzer von Online-Banking zur Verfügung zu stellen.

Diese Seite ist aus 2 E-Mails aus der Gnucash-Mailingliste entstanden und aus Reaktionen darauf.

Anleitung

VORAUSSETZUNG: Linux, AMD64/x86_64-fähig, also entweder nativ oder als „Multi-Arch“!

Als „root“ oder mit „sudo“ davor:

Flatpak installieren

sudo apt-get install flatpak

apt-get -t oldstable …“ könnte beispielsweise nötig sein, um die richtige ältere Version auszuwählen, die noch keinen Versionskonflikt auslöst, man kann auch einen grafischen Paketmanager nehmen oder „aptitude“, dann halt gegebenenfalls dort eine Version erzwingen, die nichts anderes kaputtmacht.

Flatpak-Repositorien von Gnucash.org und Flathub.org einrichten

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

Der Grund für Flatpak.org: man braucht auch eine passende Version von Gnome, worauf Harald Braun dankenswerterweise hingewiesen hat.

Ich schätze mal, die Installation des Gnome-Pakets erfolgt als Abhängigkeit im nächsten Schritt automatisch, kann das aber nicht beschwören.

Test, ob bis hierhin erfolgreich

flatpak remote-ls gnucash

Da sollte sowas kommen, je nach Flatpak-Version auch noch die „branches“:

org.gnucash.GnuCash
org.gnucash.GnuCash.Debug
org.gnucash.GnuCash.Locale

Falls hier einfach gar nichts kommt, obwohl der Befehl flatpak remote-add gnucash … keinen Fehler gemeldet hat, kann das daran liegen, daß Ihr wie ich eine alte i386-Installation habt. Wenn Euer Rechner 64-bittig ist und Ihr einen 64-bittigen Kernel am Laufen habt, könnt ihr per „Multiarch“ trotzdem 64-Bit-Programme laufen lassen. Wie man das einrichtet, beschreibe ich hier nicht.

In dem Fall lautet der obige Befehl:

flatpak --arch=x86_64 remote-ls gnucash

Verfügbare Versionen nachschauen

Am einfachsten mit einem Webbrowser hier:

aktuelle Testversion 5.9 mit Fehlerbehebungen, jedoch ohne neue Programmeigenschaften (aus Stabilitäts- und Aktualitätsgründen zu bevorzugen): code.gnucash.org/builds/flatpak/maint/
aktuelle Testversion für künftiges 5.900 mit neuen Programmeigenschaften, aber verzögerten Fehlerbehebungen: code.gnucash.org/builds/flatpak/master/ - wir mergen nicht nach jedem Commit.

Der (am besten oberste) Dateiname muß im nächsten Schritt verkürzt eingesetzt werden, vorne „gnucash-“ und hinten „.flatpakref“ weglassen.

Wenn die neueste Version später nicht läuft, die nächst-ältere nehmen und so weiter.

Gnucash installieren

sudo flatpak install gnucash org.gnucash.GnuCash/x86_64/maint-C3.7-60-gee260d8e3-D3.7-21-g06f4b05

Wie oben beschrieben, kann „sudo“ (wenn Ihr schon „root“ seid) überflüssig sein, schaden tut es aber nicht.

Das da oben ist die Version vom 24. September 2019.

Dateien kopieren

Ab jetzt geht es als Normalbenutzer weiter.

Das Flatpak kann schreibend nur auf $HOME des Benutzers zugreifen, als der man später arbeiten möchte, daher muß die Gnucash-Datei mit den Konten auch dort irgendwo liegen!

Beispiel: /home/BENUTZERNAME/Dokumente/Bankdaten/MeineBuchführung.gnucash
aber NICHT: /usr/local/share/Bankdaten/Geschäft.gnucash

Also gegebenenfalls jetzt an einen geeigneten Ort umkopieren.

WICHTIG: Auch wenn es schon unterhalb von $HOME ist, nun UNBEDINGT eine Sicherheitskopie von Eurer alten Original-Datei machen. Neben dem Risiko, daß die gewählte Gnucash-Version einen bisher unentdeckten Fehler hat, kann man bei den folgenden Schritten einiges falsch machen, das einem die Daten-Datei versaut. Wenn man das dann nicht mühsam von Hand einzeln reparieren möchte, JETZT KOPIEREN!

Wenn Ihr weder das neue Gnucash, noch das neue Aqbanking im Flatpak gestartet habt, solltet Ihr nun Eure Aqbanking-Konfigurations-Daten wie folgt kopieren:

cd ~/.aqbanking
cp -a settings settings6

ACHTUNG! Wenn settings6 schon da ist, weil Ihr Aqbanking im Flatpak vor diesem Schritt schon mal aufgerufen hattet:

cp -a settings/* settings6

(Sonst bekommt man settings6/settings/…!)

Aktualisieren der Aqbanking-Einstellungen

Es muß auf ein neues TAN-Verfahren umgestellt werden, auch wenn es sich im Prinzip nicht geändert hat! Die für PSD2-konformes Verhalten „aufgebohrten“ Varianten heißen anders. (Vor der alten Nummer, beispielsweise „910“ für „Chiptan manuell“ bei der Sparkasse Aachen, steht nun eine weitere Ziffer, hier „6“.)

Durch den vorangegangenen Kopier-Schritt sind Eure Konten jetzt schon mal da, brauchen in Aqbanking daher nicht neu eingerichtet zu werden.

Der in Gnucash eingebaute Assistent mit Benutzeroberfläche für Aqbanking führte jedoch meist nicht zum Ziel, so daß man die folgenden Schritte auf der Kommandozeile erledigen sollte.

Daß es nicht doch innerhalb der Benutzeroberfläche geht, ist nicht ganz sicher. Vielmehr war es wohl so, daß ich selbst die Schritte nicht in der richtigen Reihenfolge durchgeführt oder einen vergessen hatte, aus den Schaltflächen der Benutzeroberfläche geht halt nicht hervor, was man sinnvollerweise zuerst tun sollte.

So habe ich insbesondere versucht, die TAN-Verfahren vor der Bankparameterdatei abzurufen und nicht erkannt, daß die dreistellige Anzeige nichts ausmacht: das sind sehr wohl die neuen, wenn da in Klammern „Version 6“ dransteht.

Ich denke inzwischen, wenn man alles in der beschriebenen Reihenfolge macht, geht das auch innerhalb der Benutzeroberfläche.

Andererseits schrieb Bernd Brägelmann:

Danach habe ich ein aqbanking Konto mit einem Konto in Gnucash verknüpft und mit "Apply" bestätigt. Leider wird diese Verknüpfung nicht gespeichert. Wenn ich versuche online Aktionen auszuführen bekomme ich z.B. eine Fehlermeldung: 'online action "get balance" not available for this account' Wenn ich das Online Banking Setup nochmal durch klicke sehe ich, dass die zuvor eingerichtete Verknüpfung aqbanking -> gnucash fehlt (screenshot anbei - blaue verknüfpfung fehlt dann).

Das kann ich bestätigen, bei mir blieben jedoch trotz der fehlenden Anzeige die Zuordnungen erhalten, ABER man muß dennoch beim Daten-Abruf erneut das Zielkonto angeben.

Dazu starten wir eine Shell in der Flatpak-Umgebung von Gnucash (theoretisch geht's auch außerhalb, WENN das alles schön in $HOME liegt, falls nicht, war freilich der vorherige Schritt schon anzupassen):

flatpak run --command=sh org.gnucash.GnuCash
Ausgabe:
console·BENUTZERIN@RECHNER$ _

Bei manchen der folgenden Aktionen (denen, die konten- oder kundenspezifische Informationen abrufen) wird Euer Paßwort/PIN abgefragt!

Je nachdem ist es erforderlich/sinnvoll, sich JETZT im Web-Interface der Bank an- und abzumelden, weil dann erst der Daten-Abruf per FinTS nach einer TAN-Abfrage im Web freigegeben wird.

Ich fürchte, die ING ist so ein Fall, wo man PSD2 zum Anlaß genommen hat, den FinTS-Zugang zu verkrüppeln, so daß nur noch Umsatz-Abfragen gehen (momentan nicht mal die), aber keine Überweisungen oder andere TAN-pflichtige Aktionen mehr.

Aqbanking-Benutzer-Nummern nachschlagen

aqhbci-tool4 listusers
Ausgabe:
User 0: Bank: de/BLZ User Id: KONTO Customer Id: KONTO Unique Id: 1
User 1:…

User Id“ und „Customer Id“ sind meistens die Kontonummer.

Wenn Ihr nur ein Mal ein einziges Konto eingerichtet hattet, ist die Id einfach 1. Bei Fehlversuchen, Bankwechseln und dergleichen zählt die aber hoch, auch wenn Ihr nach wie vor nur ein Konto habt.

Das Beispiel geht jetzt weiter mit „$ID“ als Platzhalter für diese Zahl.

TLS-Flag setzen

aqhbci-tool4 adduserflags -u $ID -f tlsIgnPrematureClose

Ging bei der Sparkasse hier ohne, schadet aber anscheinend auch nicht.

Abrufen der Bankparameterdaten

aqhbci-tool4 getbankinfo -u $ID

Abrufen der Systemkennung

aqhbci-tool4 getsysid -u $ID

Abrufen der TAN-Methoden

aqhbci-tool4 listitanmodes -u $ID

Ausgabe ähnlich wie:

TAN Methods
- 6910 (F910/V6/P2): HHD1.3.0 (chipTAN manuell) [available]
- …

Das ist eine Liste aller Methoden, welche die Bank anbietet; diejenigen, die für Euer Konto aktiviert sind, sind mit „[available]“ gekennzeichnet, die anderen mit „[not available]“.

Wenn dort „[available and selected]“ steht, ist die TAN-Methode für Euch eingestellt.

Wahrscheinlich ist aber in Aqbanking noch die alte Methode ausgewählt, die es nicht mehr gibt.

TAN-Methode auswählen

aqhbci-tool4 setitanmode -u $ID -m 6910

Hinter das „-m “ kommt die für Euch richtige Nummer, die kann bei Eurer Bank von meinem Beispiel abweichen!

Optionales Setzen der TAN-Mediumkennung

Der folgende Hinweis ist nicht von mir verifiziert:

Dieser Schritt ist oft nötig, wenn man z.B. ein SMS-Tan-Verfahren verwendet (insbesondere bei der Postbank). Bei der Postbank muss man noch beachten, daß man hier vor die Kennung noch eine spezielle Zeichenfolge setzen muß:
  • cT: bei Verwendung von chipTan
  • mT: bei Verwendung von mobileTan
  • SO: bei Verwendung von BestSign ("Seal One")
Eine vollständige TAN-Medienkennung wäre bei der Postbank dann also z.B. "mT:TAN_MEDIUM_KENNUNG"
aqhbci-tool4 setTanMediumId -u $ID -m "TAN_MEDIUM_KENNUNG"

Abrufen/Anzeigen der Kontenliste

Die Konten sind durch die Kopieraktion („settings“ nach „settings6“ schon da. Ruft man den untigen Befehl dennoch auf, wird ein Update gemacht, dabei werden zum einen Konten hinzugefügt, die bei der Bank vorhanden sind, aber in Aqbanking nicht eingetragen waren (beispielsweise, wenn Ihr eine Vollmacht mit Online-Zugang von jemandem bekommen, dies aber bisher nicht genutzt habt) und Namens-Felder werden mit den bankseitigen Werten überschrieben, auch wenn Ihr sie innerhalb Aqbanking abgeändert hattet.

aqhbci-tool4 getaccounts -u $ID

Auflisten der verfügbaren Konten:

aqhbci-tool4 listaccounts -v

SEPA-Informationen

Die Liste, die im letzten Schritt angezeigt wurde, solltet Ihr nun durchgehen und für jedes der Konten erneut die SEPA-Informationen abrufen:

aqhbci-tool4 getaccsepa -a $KONTEN-ID

Nun müßten sämtliche Informationen aktuell sein.

Gnucash starten

Ihr könnt nun, wenn Ihr in in der Flatpak-Shell seid, direkt „gnucash“ aufrufen.

Die Flatpak-Shell verlassen könnt Ihr mit „Strg-d“ oder „exit [Enter-Taste]“.

Von „außerhalb“ des Flatpaks, also in Eurer normalen Linux-Umgebung, müßt Ihr Gnucash künftig wie folgt starten:

flatpak run org.gnucash.GnuCash

Wenn Ihr Eure Gnucash-Datei umkopieren mußtet, siehe oben, dann wird sie nun natürlich nicht automatisch geöffnet, auch wenn das vorher so eingestellt war.

Konto abrufen

Das macht Ihr einfach wie gewohnt. Es sollte ganz normal nach PIN/Paßwort gefragt werden.

Bei mir war es so, daß nach der ersten Umsatz-Abfrage UND nach der ersten Salden-Abfrage jeweils einmalig erneut nach dem in Gnucash zugeordneten Konto gefragt wurde!

Also konkret: daß das Konto verknüpft ist, erkennt man daran, daß, wenn man es öffnet, die Online-Aktionen im Menü aktiviert werden und benutzt werden können. Bei einem Konto, dem kein Aqbanking-Konto zugeordnet ist, sind diese Menüpunkte inaktiv.

Gleichwohl muß man nach dem ersten Abruf der Buchungen das Konto in einer Abfrage erneut als das Zielkonto für den Datenabruf angeben, das gleich gilt beim erstmaligen Salden-Abruf.

Das kommt mir schwachsinnig vor, ist aber bei der Erst-Einrichtung eines neuen Kontos ganz genauso.

Schlimmer noch: nach einem Programm-Neustart muß man das jeweils einmalig nochmal machen…

Dann müßt Ihr einfach das Gnucash-Konto aus der Kontenliste auswählen, das dem Aqbanking-Konto entspricht. VORSICHT: hier nicht „verklicken“, wenn Ihr mehrere Bankkonten habt!

Das war es dann, wenn bis hierher alles funktioniert hat. Viel Glück bei der Umstellung, Ihr werdet es vermutlich brauchen.

Rückfragen, Hilfe,…

Siehe auch:

-- CHF (Diskussion) 04:36, 24 September 2019 (UTC)