Paket installieren welche eine tiefere Version voraussetzt

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
sandrac

Paket installieren welche eine tiefere Version voraussetzt

Beitrag von sandrac » 22.11.2018 18:18:46

Für ein Testserver habe ich mir ein Debian Stretch System aufgesetzt. Dort benötigte ich diverse Pakete auf sid welches python 3.7 mitbrachte.
Nun möchte ich ein weiteres Paketinstallieren, welches jedoch Python <3.7 verlangt. Wenn ich mit apt-get install python3.6 die weitere Version installiere, kann das Paket trotzdem nicht installiert werden da er immer die 3.7 findet.

Code: Alles auswählen

borgbackup : Hängt ab von: python3 (< 3.7) aber 3.7.1-2 soll installiert werden
Ich habe auch schon update-alternatives verwendet und habe python3.6 als Standard gesetzt. python3 -V zeigte mir dann 3.6 an. Jedoch lässt sich das Paket auch dann nicht installieren.

Kann ich dies irgendwie umgesehen damit es klappt?

Gruss und Danke

Sandra

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Paket installieren welche eine tiefere Version voraussetzt

Beitrag von hikaru » 22.11.2018 21:08:54

sandrac hat geschrieben: ↑ zum Beitrag ↑
22.11.2018 18:18:46
Kann ich dies irgendwie umgesehen damit es klappt?
Nicht sauber, zumindest nicht im Moment. Debianpython3 wurde in Sid am 21.10. auf 3.7 aktualisiert, Debianborgbackup hängt aber immer noch von python3 <<3.17 ab und ist damit nicht installierbar.

Du könntest versuchen, python3 aus Buster zu holen, wo noch 3.6 vorliegt. Downgrades sind aber oft hässlich, gerade bei so zentralen und verzweigten Paketen wie es vermutlich Python ist.
Sauberer wäre es, wenn du dir Borgbackup auf Basis von Python 3.7 selbst baust. Danach, oder alternativ dazu, kannst du einen Bugreport gegen Borgbackup schreiben, in dem du den Sachverhalt erklärst und um ein Update bittest.

sandrac

Re: Paket installieren welche eine tiefere Version voraussetzt

Beitrag von sandrac » 22.11.2018 21:11:38

Hi

Danke dir. Kennst du eine gute Anleitung Borg zu installieren ohne apt damit es wieder geht?

Edit: vielleicht kannst du mir das erklären. Gem. dieser Seite https://packages.debian.org/de/sid/borgbackupwirdmit SID borgbackup 1.1.7. Gem. dieder Seite ist 1.1.7 jedoch kompatibel mit python 3.7 https://github.com/borgbackup/borg/releases

Gruss

Sandra
Zuletzt geändert von sandrac am 22.11.2018 21:18:46, insgesamt 1-mal geändert.

reox
Beiträge: 2459
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Paket installieren welche eine tiefere Version voraussetzt

Beitrag von reox » 22.11.2018 21:17:59

Du könntest noch probieren die dependecy von borgbackup auf das paket python3.6 zu ändern, statt dem metapackage python3.
Am einfachsten das Paket als source holen, die debian/control datei anpassen und per dpkg-buildpackage -us -uc bauen.
Wobei du da vermutlich auch irgendeinen hack brauchst, so wie ich das nämlich sehe wird das über die variable ${python3:Depends} gesteuert und die wird vermutlich die version inkludieren mit der gebaut wurde, undzwar das meta-package... Laut dem control braucht es zum bauen ein python3-dev >= 3.4

sandrac

Re: Paket installieren welche eine tiefere Version voraussetzt

Beitrag von sandrac » 22.11.2018 21:20:34

Danke. Ich glaube ich versuche borg selber von Github zu installieren. Das müsste ja ohne apt gehen.

Edit: vielleicht kannst du mir das erklären. Gem. dieser Seite https://packages.debian.org/de/sid/borgbackupwirdmit SID borgbackup 1.1.7. Gem. dieder Seite ist 1.1.7 jedoch kompatibel mit python 3.7 https://github.com/borgbackup/borg/releases

Edit2: Ich weiss ehrlich gesagt nicht weshalb ich es immer so kompliziert gemacht habe. Borg von Github zu installieren ist extremst einfach:

Code: Alles auswählen

wget https://github.com/borgbackup/borg/releases/download/1.1.7/borg-linux64
cp borg-linux64 /usr/local/bin/borg
chown root:root /usr/local/bin/borg
chmod 755 /usr/local/bin/borg
Und schon geht alles auch mit Python 3.7. Habe ich was übersehen? Das kam mir doch zu einfach vor :) :D

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Paket installieren welche eine tiefere Version voraussetzt

Beitrag von hikaru » 22.11.2018 21:45:37

sandrac hat geschrieben: ↑ zum Beitrag ↑
22.11.2018 21:11:38
Kennst du eine gute Anleitung Borg zu installieren ohne apt damit es wieder geht?
Nein, ich kenne mich mit dem Programm nicht aus.
sandrac hat geschrieben: ↑ zum Beitrag ↑
22.11.2018 21:11:38
Edit: vielleicht kannst du mir das erklären. Gem. dieser Seite https://packages.debian.org/de/sid/borgbackupwirdmit SID borgbackup 1.1.7. Gem. dieder Seite ist 1.1.7 jedoch kompatibel mit python 3.7 https://github.com/borgbackup/borg/releases
Borgbackup wird schon mit Python 3.7 kompatibel sein, aber das Debianpaket wurde eben auf Basis von 3.6(?) gebaut. Und laut Paket-Metainfos gibt es offenbar eine Inkompatibilität (ABI-Bruch) zwischen Python 3.6 und 3.7, die beim Compilieren von Borgbackup berücksichtigt werden muss.

reox hat geschrieben: ↑ zum Beitrag ↑
22.11.2018 21:17:59
Du könntest noch probieren die dependecy von borgbackup auf das paket python3.6 zu ändern, statt dem metapackage python3.
Am einfachsten das Paket als source holen, die debian/control datei anpassen und per dpkg-buildpackage -us -uc bauen.
Wobei du da vermutlich auch irgendeinen hack brauchst, so wie ich das nämlich sehe wird das über die variable ${python3:Depends} gesteuert und die wird vermutlich die version inkludieren mit der gebaut wurde, undzwar das meta-package... Laut dem control braucht es zum bauen ein python3-dev >= 3.4
Wenn man schon selbst paketiert und dabei das control manipuliert, kann man statt der Variablen auch hart die Wunschversion eintragen. Entweder funktioniert es, oder es fliegt einem um die Ohren.


Edit:
sandrac hat geschrieben: ↑ zum Beitrag ↑
22.11.2018 21:20:34
Edit2: Ich weiss ehrlich gesagt nicht weshalb ich es immer so kompliziert gemacht habe. Borg von Github zu installieren ist extremst einfach:
Weil du damit deine Paketverwaltung betrügst. Bei einem Programm auf einem Testserver ist das egal, aber wenn du das Spiel mit 10 Programmen auf 10 Produktivservern machst, dann schwörst du dir spätestens nach dem nächsten Release-Wechsel, sowas nie wieder zu machen. ;)

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: Paket installieren welche eine tiefere Version voraussetzt

Beitrag von pferdefreund » 23.11.2018 07:13:33

Man könnte sich doch ein Makefile schreiben, was das copy nach /usr/local/bin als install: beinhaltet.
Von mir aus auch komplett die gesamte Befehlsfolge - und gut ist.
Dann checkinstall verwenden, um ein deb zu bauen - richtige Versionsnummer eintrag, falls das nicht, wie normalerweise üblich automatisch geschieht - und schon hat man es in der Paketverwaltung und wenn was neueres kommt, wird das halt genommen.
Habe ich schon öfters - auch auf Produktivmaschinen gemacht, und nie Probleme gehabt.

reox
Beiträge: 2459
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Paket installieren welche eine tiefere Version voraussetzt

Beitrag von reox » 23.11.2018 07:42:10

was mir auch noch einfällt: borg ist ja eh ein python package. Da kann man sich auch schnell ein virtualenv bauen und es dort installieren.
Wenns nimmer passt, einfach das ganze venv löschen.

Antworten