Debian & Python dependency-hell

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 13:02
Afgelopen weekend heb ik m'n server een upgrade gegeven van Debian Bookworm naar Trixie - de aankomende 'stable' release.

Voor de duidelijkheid: in principe gebruik ik alleen programma's die in de Debian repository zitten en installeer ik eigenlijk niets aan losse debs. Ja, er zijn een paar uitzonderingen, maar die staan hier volgens mij los van.

Allerlei kleine problemen die oplosbaar waren, maar nu loop ik tegen iets aan waar ik zo snel niet uitkom. Ik gebruik 'duplicity' voor het maken van off-site backups en die tool is nu niet bruikbaar:
code:
1
2
3
4
5
$ duplicity
Traceback (most recent call last):
  File "/usr/local/bin/duplicity", line 30, in <module>
    from future import standard_library
ModuleNotFoundError: No module named 'future'


Mijn handicap is dat ik niet zo thuis ben in Python en hoe dat hele spul in elkaar zit. Ik wil Duplicity gewoon gebruiken en niet persé snappen hoe Python werkt.

Maar goed, blijkbaar mist Duplicity een Python package 'future'. Geleerd uit het verleden dat je dan het beste die ook via apt moet installeren, maar:
code:
1
2
$ sudo apt install python3-future
Error: Unable to locate package python3-future

...die package bestaat wel voor de Debian Bookworm, niet voor Trixie. Men heeft blijkbaar besloten dat deze niet meer nodig is (van wat ik zo las is het een support-iets om de transitie van Python 2 naar 3 te helpen).

Dan na wat google bedacht om die package maar voor enkel mijn user account te installeren buiten apt om:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ pip3 install future
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.13/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

OK, buiten apt om installeren voelde al niet helemaal goed, maar: er is geen Debian package die ik zou kunnen installeren.

Dan die laatste suggestie doen:
code:
1
2
3
4
5
6
7
8
$ pipx install future
⚠️  Note: futurize was already on your PATH at /usr/local/bin/futurize
⚠️  Note: pasteurize was already on your PATH at /usr/local/bin/pasteurize
  installed package future 1.0.0, installed using Python 3.13.5
  These apps are now globally available
    - futurize
    - pasteurize
done! ✨ 🌟 ✨

...maar:
code:
1
2
3
4
5
$ duplicity
Traceback (most recent call last):
  File "/usr/local/bin/duplicity", line 30, in <module>
    from future import standard_library
ModuleNotFoundError: No module named 'future'

...lost het blijkbaar niets op. Of, aannemelijker, ik heb er niets van begrepen en niet gedaan wat nodig is.

Hoe zou ik dit kunnen oplossen?

(ik twijfel nog of ik hier een Debian bugreport, niveau 'grave' voor moet indienen, want op deze manier is Duplicity niet echt bruikbaar)

Alle reacties


Acties:
  • +3 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 13:02
ARGGGHH..

In m'n eigen stommiteit getrapt. Destijds, ik denk bij de overstap naar 'Bookworm', was er iets met Duplicity dat de Debian versie niet goed ondersteunde of fout deed. En toen handmatig, buiten apt om, een andere versie van Duplicity geinstalleerd.

Ofwel, die verkeerde versie werd nu nog steeds aangeroepen en heeft dus die 'future' package nodig. Nu de oude rommel verwijderd en Duplicity uit de Debian repository geinstalleerd - en die start gewoon goed op.

Wijze les geleerd, opnieuw: niet zomaar buiten apt om dingen installeren. Gewoon niet. Doe je het toch, wordt dat vanzelf een keer afgestraft. :(

Acties:
  • +1 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 10-09 22:48

Hero of Time

Moderator LNX

There is only one Legend

Je foutmelding gaf dit eigenlijk al aan: /usr/local/bin/duplicity, ipv /usr/bin/duplicity.

Vanuit tracker.debian.org/python-future geeft dit als laatste melding: https://tracker.debian.or...ved-0182-6-from-unstable/
ROM; obsolete python2+3 transition layer, breaks with python3.12
Problemen met Python 3.12 dus en Trixie heeft versie 3.13.

En ja, zaken buiten je package manager installeren is uiteindelijk vragen om problemen.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • lordgandalf
  • Registratie: Februari 2002
  • Laatst online: 05-09 17:55
Enigste wat ik wel eens doe op debian is repos toevoegen die packages hebben die niet in de standaard repo staan voor de rest gebruik ik de standaard packages. En ja ook ik heb wel eens een package proberen te installeren ging mis en dan probeer je het te verwijderen en probeert die heel je os mee te nemen met glibc6 enz :D Dus soms hang je in een dependency-hell en dat is gewoon hoe het dan is moet je er uit zien te komen en soms vergeet je dat je een ander package heb geinstalleerd heb ik ook wel eens gehad waarom update mijn php niet oh ja die komt uit een andere repo.

Steam: Profile / Socialclub: Profile / Uplay: minedwarf / Origin: lordgandalf3


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 13:02
lordgandalf schreef op dinsdag 5 augustus 2025 @ 09:14:
Enigste wat ik wel eens doe op debian is repos toevoegen die packages hebben die niet in de standaard repo staan voor de rest gebruik ik de standaard packages. En ja ook ik heb wel eens een package proberen te installeren ging mis en dan probeer je het te verwijderen en probeert die heel je os mee te nemen met glibc6 enz :D Dus soms hang je in een dependency-hell en dat is gewoon hoe het dan is moet je er uit zien te komen en soms vergeet je dat je een ander package heb geinstalleerd heb ik ook wel eens gehad waarom update mijn php niet oh ja die komt uit een andere repo.
Mja, proberen zo zuiver mogelijk te zijn. Weet niet meer precies wat het destijds met Duplicity was, maar heb nu nog meer het streven om het systeem zuiverder te maken. Binnenkort dus maar eens kijken of ik PiHole en Lyrion Music Server als container kan draaien ipv een .deb van extern te gebruiken.

Acties:
  • 0 Henk 'm!

  • lordgandalf
  • Registratie: Februari 2002
  • Laatst online: 05-09 17:55
Ik draai pihole al een hele tijd op een raspberry pi 2b ik wil alleen over naar adguard maar die heeft een krachtigere pi nodig.

Steam: Profile / Socialclub: Profile / Uplay: minedwarf / Origin: lordgandalf3


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 10-09 22:48

Hero of Time

Moderator LNX

There is only one Legend

lordgandalf schreef op dinsdag 5 augustus 2025 @ 09:14:
Enigste wat ik wel eens doe op debian is repos toevoegen die packages hebben die niet in de standaard repo staan voor de rest gebruik ik de standaard packages. En ja ook ik heb wel eens een package proberen te installeren ging mis en dan probeer je het te verwijderen en probeert die heel je os mee te nemen met glibc6 enz :D Dus soms hang je in een dependency-hell en dat is gewoon hoe het dan is moet je er uit zien te komen en soms vergeet je dat je een ander package heb geinstalleerd heb ik ook wel eens gehad waarom update mijn php niet oh ja die komt uit een andere repo.
Kijk eens naar Aptitude. Met de juiste grouping en display format kan je goed zien waar een package vandaan komt en daarna specifieke versies markeren om te installeren. Dit kan het verschil maken tussen een op het eerste oog hopeloze situatie maar een die nog wel te redden is vs je hele systeem opnieuw installeren omdat je er niet uit komt.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • lordgandalf
  • Registratie: Februari 2002
  • Laatst online: 05-09 17:55
heb aptitude ook wel eens gebruikt ook daar kun je in een dependency-hell terecht komen minder makkelijk dan met apt dat is correct maar toch. niks is 100% veilig. Daarnaast toen ik met debian begon was aptitude nog niet iets wat bestond volgens mij dus vandaar dat ik meer een apt persoon ben.

[ Voor 28% gewijzigd door lordgandalf op 06-08-2025 08:29 ]

Steam: Profile / Socialclub: Profile / Uplay: minedwarf / Origin: lordgandalf3


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 10-09 22:48

Hero of Time

Moderator LNX

There is only one Legend

Volgens de changelog van Aptitude was de eerste release in 2000. Het commando 'apt' is pas een paar jaar geleden gekomen, Aptitude bestaat dus veel langer.

En tuurlijk kan je daarmee ook in een dependency hell komen. Ik heb in de lange tijd dat ik Debian draai maar 2x gehad dat ik dependencies buiten aptitude heb moeten oplossen, omdat dpkg het hele proces afbrak en niet meer verder kon, ondanks dat ik met Aptitude wel aan alle vereisten voldeed. Maar dat is iets wat mogelijk is als je langere tijd geen updates toepast en Unstable draait. Eventuele transities, zoals nu met Trixie en t64 libraries, hebben nou eenmaal wat pijnpunten. Ik heb twee servers op werk bijgewerkt van Bookworm naar Trixie en heb dit prima via Aptitude kunnen uitvoeren door de breakage die door t64 kwam zelf te fixen.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Rukapul
  • Registratie: Februari 2000
  • Nu online
Buiten externe software installeren en dat verwarren met dependency problemen is er nog een zwakheid in dit verhaal: te vroeg stable upgraden.

De sweetspot voor Debian Stable upgraden is enkele weken na de officiële release. Dat is namelijk de periode waarin eventuele problemen en oplossingen zeer goed vindbaar zijn online.
Hero of Time schreef op woensdag 6 augustus 2025 @ 19:06:
Volgens de changelog van Aptitude was de eerste release in 2000. Het commando 'apt' is pas een paar jaar geleden gekomen, Aptitude bestaat dus veel langer.
En daarvoor was er apt-get ;)

https://debian-handbook.info/browse/stable/sect.apt-get.html voor de geschiedenis

Er is een reden dat apt weer de aanbevolen tool is. Een naïeve gebruiker kan met aptitude veel meer verkloten.

Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 13:02
Rukapul schreef op woensdag 6 augustus 2025 @ 20:34:
Buiten externe software installeren en dat verwarren met dependency problemen is er nog een zwakheid in dit verhaal: te vroeg stable upgraden.

De sweetspot voor Debian Stable upgraden is enkele weken na de officiële release. Dat is namelijk de periode waarin eventuele problemen en oplossingen zeer goed vindbaar zijn online.
Mwah. "Spot" zou het zijn als je precies 1 moment kan vinden die heyt beste is, maar "enkele weken" - waarom niet enkele maanden? Of enkele dagen?

Sowieso denk ik niet dat er een algemeen beste moment te vinden is. Hangt ook af van hoe belangrijk het systeem is, hoe handig je bent met problemen zelf oplossen. Sowieso denk ik dat vanaf een 'freeze' het systeem al redelijk goed upgradebaar zal zijn en tot aan de release wordt er al uitgebreid getest. En ja, na release wordt er meer getest en er zullen steeds minder kritische bugs te vinden zijn. Maar nee, ik denk niet dat er 1 specifiek moment is die het beste is om te upgraden.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 10-09 22:48

Hero of Time

Moderator LNX

There is only one Legend

Rukapul schreef op woensdag 6 augustus 2025 @ 20:34:
Buiten externe software installeren en dat verwarren met dependency problemen is er nog een zwakheid in dit verhaal: te vroeg stable upgraden.

De sweetspot voor Debian Stable upgraden is enkele weken na de officiële release. Dat is namelijk de periode waarin eventuele problemen en oplossingen zeer goed vindbaar zijn online.
Debian Stable is prima op de dag dat het als Stable uit komt. Enige reden om eventjes te wachten is omdat het vaak als server wordt gebruikt en 3rd party programma's om een of andere reden een week of meer nodig hebben om hun repo bij te werken voor de nieuwe Stable release.
[...]

En daarvoor was er apt-get ;)

https://debian-handbook.info/browse/stable/sect.apt-get.html voor de geschiedenis
Ik ken de geschiedenis, heb de transities meegemaakt. :) Het was altijd het package 'apt' en het commando 'apt-get'. Pas veel later kwam er het commando 'apt' wat meer interactiever is met een voortgangsbalk onderin je terminal/TTY.
Er is een reden dat apt weer de aanbevolen tool is. Een naïeve gebruiker kan met aptitude veel meer verkloten.
Enige aanbeveling die er is, is dat je apt interactief gebruikt en apt-get in scripts omdat het de API/output stabieler/meer betrouwbaar is. De documentatie van het upgrade proces heeft het ook gewoon over aptitude om te gebruiken. Ik zou niet weten wat je 'meer' kan slopen met Aptitude dan apt/apt-get.

Commandline FTW | Tweakt met mate

Pagina: 1