staging.inyokaproject.org

Déjà Dup

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Déjà_Dup.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Berlin_1946 schrieb:

Bitte um Nachhilfe (aber nur wenn du Zeit hast).

Wenn jemand Interesse hat und etwas wissen will nehme ich mir die Zeit. Die Frage ist, ob das hierher gehört. Möge ein Wiki-Mod es sonst bitte abtrennen. 😛

Die Bilder (ich meine die Aufrufe) von Deja-Dup sehen im 21.10 und im 20.04 gleich aus. Wenn ich deine PPA einsetze.

Das ist auch nicht verwunderlich, da es ja die selbe Version ist. 😉

Sie wurde nur gegen unterschiedliche Versionen ihrer Abhängigkeiten gebaut. Die Version für 20.04 wurde gegen die dort in den Repos liegende Version 3.24.20-0ubuntu1 von libgtk-3-dev gebaut, die Version für 21.10 gegen die dort in den Repos liegende Version 3.24.30-1ubuntu1.

Wie kann ich die verwendete GTK abfragen?

Aus dem Wiki Bestimmen, ob das Programm GTK+ 2 oder 3 verwendet

Möchte man überprüfen, ob ein Programm noch GTK+ 2 oder schon GTK 3 verwendet, dann kann man folgenden Befehl nutzen:

mate-hp@matehp-HP:/$ ldd /usr/bin/inkscape | grep gtk 
ldd: /usr/bin/inkscape: Datei oder Verzeichnis nicht gefunden
mate-hp@matehp-HP:/$ 

Das kann man so verwenden, denn ldd zeigt an, gegen welche "Shared libraries", also geteilte Abhängigkeien, die angegebene ausführbare Datei gelinkt ist. Die Fehlermeldung auf deinem System sagt ja nun eindeutig, dass es die Datei /usr/bin/inkscape auf deinem System nicht gibt, was mich zu der Annahme verleiten würde, dass auf deinem System kein Inkscape installiert ist. 😛

Also probieren wir das mit einem Programm aus, das installiert ist.

Du wolltest ja wissen, welche GTK-Version deja-dup verwendet. Mit dpkg -l PAKETNAME kannst du dir anzeigen lassen, welche Daten mit einem installierten Paket installiert wurden, mit einer Pipe an grep weiterleiten und dieses nach der ausführbaren Datei filtern lassen, die sich den Vorgaben der Verzeichnisstruktur (Abschnitt „usr“) im Ordner /usr/bin/ befinden sollte.

Und ein

dpkg -l deja-dup | grep /usr/bin 

gibt aus:

/usr/bin/deja-dup

Jetzt kennst du also den Pfad, auf den du ldd ansetzen kannst.

ldd /usr/bin/deja-dup 

bzw. um nur die GTK-Verlinkungen anzeigen zu lassen danach filtern

ldd /usr/bin/deja-dup | grep gtk 

Bei mir kommt da

libgtk-3.so.0 => /usr/lib/libgtk-3.so.0 (0x00007f2ab11eb000)

(ist allerdings hier auch gerade kein Ubuntu-System, sollte aber ähnlich aussehen), also GTK3.

mate-hp@matehp-HP:/usr/bin$ ls -l | grep -i inkscape
mate-hp@matehp-HP:/usr/bin$ 

Was nicht da ist, ist nicht da. 😉

Ist jetzt mit "ein Programm" auch z.Bsp. Deja-Dup gemeint?

Ja, mit einem Programm ist ein Programm gemeint, und Deja-Dup ist ein solches. 😛

Das passt nicht, denn danach sollte bei mir mindestens GTK 3 laufen

Warum soll das nicht passen? Ich schrieb, dass ich die aktuellste, gegen GTK3 kompilierbare Version für 20.04 erstellt habe. Das ist dann konkret Version 42.8.

Und genau die liegt auch in 21.10. Nur weil ab 21.10 libgtk-4-1 verfügbar ist (eigentlich es es das sogar ab 21.04, aber das ist EOL ab morgen), heißt das nicht, dass alles was GTK ist, jetzt automatisch in GTK4 gebaut wird.

Die Entwickler eines Programmes legen aber fest, welche Abhängigkeiten ihr Programm hat. Bis Deja-Dup 42.8 sind die weitestgehend unter 20.04 auflösbar (das Paket libhandy1 musste vorher kompiliert werden).

Für die aktuelle Deja-Dup-Version 43.1 (und bereits seit 43.0) gelten folgende Abhängigkeiten:

Required Packaging Changes Since 42.x hidden_anchor_to_fix_syntax

  • Require libadwaita1 1.0+ (instead of libhandy1)

  • Require gtk4 4.6+ (instead of gtk3)

  • Require glib2 2.66+

  • Require meson 0.59+

Due to new support for Microsoft OneDrive: hidden_anchor_to_fix_syntax

  • Require the requests_oauthlib python module

If you can't hard-depend on it, define the new requests_oauthlib_pkgs config flag if building with packagekit support This feature will only be visible if duplicity 0.8.21+ is available

und

hidden_anchor_to_fix_syntax

  • Require libsoup-3.0 (instead of libsoup-2.4)

Jetzt prüfen wir also mal, ob die in den notwendigen Mindestversionen vorhanden sind in den Ubuntu-Repos. hidden_anchor_to_fix_syntax

Damit war meine vorherige Aussage also auch falsch, dass man das ab 21.10 bauen könnte, da ich übersehen habe, dass GTK4 >= 4.6 sein muss, somit gibt es bisher noch nicht mal eine Entwicklungsversion von Ubuntu, unter der alle Abhängigkeiten für die aktuelle Deja-Dup-Version in den benötigten Versionen vorhanden sind (bei Debian ist GTK4.6 am 04.02.2022 in den experimental-Zweig eingeflossen). Da es äußerst unwahrscheinlich ist, dass das bis zum DebianImportFreeze am 24.02.2022 in Debian Testing liegen wird, wird es also höchstwahrscheinlich auch frühestens in Ubuntu 22.10 verfügbar sein. libsoup3 ist noch nicht mal in Debian experimental.

Allerdings ist zumindest Version 43.0 als Snap verfügbar (da sind die Abhängigkeiten egal, weil das Snap die alle mitbringt), falls du dir die Version mal angucken wollen solltest.

zu MATE 20.04 finde ich leider nichts.

Gegen welche Abhängigkeiten ein Programm gelinkt ist hat auch nichts mit der verwendeten Oberfläche zu tun. Auch bei z.B. der Nutzung von Plasma als DE ist Deja-Dup gegen GTK3 gelinkt und benötigt dieses.

linux-community Ausgaben 2018-06/ (Quelle meines Halbwissens)

Ein Upgrade von der letzten LTS-Version 16.04 frischt den Maté-Desktop (Abbildung 5) um nicht weniger als vier Versionsstufen auf. In dieser Zeit stellten die Entwickler Maté von GTK 2 auf GTK 3 um

Das hat aber mit Deja-Dup auch nichts zu tun. Das war vorher schon lange in GTK3. In deinem Link geht es nur darum, dass MATE damals von GTK2 auf GTK3 umgestellt wurde. Trotzdem konnte man darunter auch vorher schon GTK3-Programme laufen lassen, denn dank der Paketverwaltung bringen die ja ihre Abhängigkeiten selbst mit und rufen sie auf.

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 7478

Hallo Tomtomtom,

danke für deine Hilfe.

Das ist auch nicht verwunderlich, da es ja die selbe Version ist.

denn dank der Paketverwaltung bringen die ja ihre Abhängigkeiten selbst mit und rufen sie auf

Das ist eine Erkenntnis für mich. Ich bin davon ausgegangen, das GKT da sich anders verhält.

Bestimmen, ob das Programm GTK+ 2 oder 3 verwendet.

Das Wort -bestimmen- habe ich total missverstanden und zwar in dem Sinne, als ob "ich" das festlegen muss (aktiv werden muss), also entweder GTK+ 2 oder 3 bzw 4 😇.

Daher auch der Ansatz herauszufinden, welche Version bei MATE "aktiv" ist.

😎 Falls außer uns zwei noch ein dritter hier liest, nur ein Hinweis, dir ist ein Tipp-Fehler unterlaufen. 😉

dpkg -S deja-dup | grep /usr/bin

Und gleich noch ein Missverständnis meinerseits:

dass es die Datei /usr/bin/inkscape auf deinem System nicht gibt

aus dem Wiki zitiert:

Dabei werden mit dem Befehl ldd sämtliche Verlinkungen zu den von dem Programm benötigten Bibliotheken ausgegeben

Da ich das Programm inkscape zu diesem Zeitpunkt noch nicht kannte, bin ich fälschlich davon ausgegangen, das es noch Teil des Befehls ist und eine List mit den Programmen erscheint und ich mir das gewünschte Programm heraussuchen muss und ldd ist auch eher seltener im Forum in Verwendung 😇

Dein Beispiel hat dieses Problem behoben.

ldd /usr/bin/deja-dup

Nachtrag:

"Aus meinem Weltbild" 🤣 .

Ich bin von einem ähnlichen Vorgehen bei GTK ausgegangen, wie es bei Python (Abschnitt „Programme-starten“) beschrieben ist. 😎

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Berlin_1946 schrieb:

Das Wort -bestimmen- habe ich total missverstanden und zwar in dem Sinne, als ob "ich" das festlegen muss (aktiv werden muss), also entweder GTK+ 2 oder 3 bzw 4 😇.

Ah, natürlich. Jetzt fällt es mir wie Schuppen aus den Haaren. Darauf bin ich jetzt wiederum gar nicht gekommen. 😛

Nein, im Falle von GTK3/4 ist das höchstens mit Setzen eines Compilerflags VOR dem Kompilieren der Software möglich, wenn diese denn überhaupt beide Versionen unterstützt. Die fertige Software ist dann aber eben entweder/oder.

In dem von dir verlinkten Artikel ist das allerdings auch nicht sonderlich eindeutig beschrieben. Hab das mal umgearbeitet, schau mal bitte, ob das jetzt verständlicher formuliert ist.

Ich bin von einem ähnlichen Vorgehen bei GTK ausgegangen, wie es bei Python (Abschnitt „Programme-starten“) beschrieben ist. 😎

Nachdem ich deine obige Beschreibung gelesen hatte, war mir das ebenfalls populäre Java als Beispiel eingefallen. 😛

😎 Falls außer uns zwei noch ein dritter hier liest, nur ein Hinweis, dir ist ein Tipp-Fehler unterlaufen. 😉

dpkg -S deja-dup | grep /usr/bin

Ein Tippfehler ist da schon, aber wie kommst du auf -S?

Die Funktion, die ich beschrieben habe (also das Auflisten der installierten Dateien aus dem Paket), wird tatsächlich nicht durch

dpkg -l PAKETNAME 

durchgeführt, sondern durch

dpkg -L PAKETNAME 

Siehe dazu

man dpkg 
-l, --list Paketnamen-Muster ?
    Liste auf das übergebene Suchmuster passende Pakete auf.
-L, --listfiles Paketname ?
    Liste die aus  Paketname auf Ihrem System installierten Dateien auf.

Ein

dpkg -S  

kann überhaupt nicht mit dem Suchmuster PAKETNAME verwendet werden, weil es dafür gar nicht gedacht ist, vielmehr benutzt man das für den umgekehrten Weg: Man kennt den Dateinamen und will wissen, zu welchem Paket er gehört. Steht auch so in der Manpage:

-S, --search Dateinamen-Suchmuster ?
    Suche nach einem Dateinamen in installierten Paketen.

Da ich das Programm inkscape zu diesem Zeitpunkt noch nicht kannte, bin ich fälschlich davon ausgegangen, das es noch Teil des Befehls ist und eine List mit den Programmen erscheint und ich mir das gewünschte Programm heraussuchen muss und ldd ist auch eher seltener im Forum in Verwendung 😇

Auch hier hilft ein Blick in die Manpage, da sieht man die genutzte Syntax, hier konkret, dass alle Optionen des Programms mit - oder -- beginnen. 😛

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 7478

tomtomtom schrieb:

In dem von dir verlinkten Artikel ist das allerdings auch nicht sonderlich eindeutig beschrieben. Hab das mal umgearbeitet, schau mal bitte, ob das jetzt verständlicher formuliert ist.

Ja super gelungen. Ein alter Spruch aus der Uni-Zeit, "jetzt besteht die Gefahr, das selbst ich das verstehe." 😊

... aber wie kommst du auf -S?

Ich habe experimentiert.

Aus der man-page zitiert (dem Link nach dpkg-query gefolgt) :

-S, --search Dateiname-Suchmuster …

Suche nach Paketen, denen Paketen, die auf ein bestimmtes Muster passen, gehören.

und das Delta ist nicht so groß:

So fand ich es auch okay.

mate-hp@matehp-HP:~$ dpkg -L deja-dup | grep /usr/bin
/usr/bin
/usr/bin/deja-dup
mate-hp@matehp-HP:~$ dpkg -S deja-dup | grep /usr/bin
deja-dup: /usr/bin/deja-dup
mate-hp@matehp-HP:~$ 

😎 Einfach von klein L auf groß L zu wechseln ,( ❗ Ironie ❗ ) ist ja nun wirklich zu simpel. 🤣

Warum einfach, wenn es auch kompliziert geht.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Okay, ich werd alt. Als ich das letzte mal mit dpkg -S (bzw. musste das damals noch explizit als dpkg-query -S aufgerufen werden) gearbeitet hab, musste man da explizit den Pfad der Datei angeben, um den Namen des Paketes ausgegeben zu bekommen.

Was ja Sinn und Zweck des Aufrufes ist.

Suche nach Paketen, denen Paketen, die auf ein bestimmtes Muster passen, gehören.

ist da auch etwas ... äh ... suboptimal übersetzt.

Im Original:

Search for packages that own files corresponding to the given pattern.

Also "nach Paketen suchen, zu den Dateien gehören, die auf das gegebene Muster passen.".

In anderen Sprachversionen ist das auch eindeutiger, z.B. sagt die polnische

"-S, --search wzorzec-wyszukiwania-nazw-plików Wyszukuje nazwy plików w zainstalowanych pakietach."

Also

"-S, --search Suchmuster-Dateiname Sucht nach Dateinamen in installierten Paketen"

tuxifreund Team-Icon

Projektleitung

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

tomtomtom schrieb:

Suche nach Paketen, denen Paketen, die auf ein bestimmtes Muster passen, gehören.

ist da auch etwas ... äh ... suboptimal übersetzt.

Also mindestens in Jammy, wenn nicht schon vorher, sollte die Übersetzung besser sein:

Sucht nach Paketen, denen Dateien, die auf die bestimmten Muster passen, gehören.

(Launchpad)

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Stimmt, in meinem Debian Testing ist es schon drin (in Ubuntu seit spätestens 21.04).

Unter Arch hat das dpkg-Paket keine übersetzten Manpages, daher hab ich doch sträflicherweise eine veraltete Online-Version gelesen. 😛

woodcock

Anmeldungsdatum:
29. Juni 2006

Beiträge: Zähle...

Hallo Team,

die beschriebene Rechtsklickfunktion "fehlende Dateien wiederherstellen" ist seit Vers.42 entfernt, da DejaDup nun einen eigenen Dateibrowser mitbringt, über den sich Dateien wiederherstellen lassen: https://bugs.launchpad.net/deja-dup-caja/+bug/1885063

Vielleicht kann jemand den Artikel entsprechend ergänzen, ich trau mich da mangels Erfahrung nicht ran...

mubuntuHH Team-Icon

Projektleitung

Anmeldungsdatum:
28. November 2010

Beiträge: 845

Hallo woodcock, Danke für den Hinweis und sorry für die späte Antwort.

woodcock schrieb:

ich trau mich da mangels Erfahrung nicht ran...

Du kannst hier wirklich nichts kaputt machen, alles kann man wieder rückgängig machen und wir sind für jede Hilfe dankbar. Also nur zu!

Antworten |