Toon posts:

Opgelegde dependency hell door software packages

Pagina: 1
Acties:

Verwijderd

Topicstarter
Waar ik me in het jaar 2009 nog zo over verbaas, is dat het nog steeds heel lastig blijkt om bijvoorbeeld een Linux distributie te vinden die niet zo enorm veel last heeft van gedoe met dependencies. Ik heb er best vaak over zitten denken, en volgens mij ligt dat niet zozeer aan de distrubutiebouwers, maar vooral aan de package maintainers en ontwikkelaars.

Er zijn meer dan genoeg voorbeelden te geven van het volgende:

Stel, je wilt op een bepaalde distributie een package installeren. De package manager zegt: dat is goed, maar deze, deze en deze packages heb je ook nodig. Nu acht ik mezelf prima in staat om te kunnen bepalen wat ik wel en niet nodig heb, echter moet je het maar doen met de keuzes die distributiebouwers hebben gemaakt. Zij worden beperkt door de mogelijkheden van de packages zélf.

Goede voorbeelden vind ik bijvoorbeeld Apache (httpd), Linux-PAM en PHP. Enerzijds worden er al veel andere packages ondersteund, echter worden ze ondersteund als modules die dynamisch kunnen worden geladen. Zo hoeft de basis van de applicaties zelf niet gelinkt te worden tegen exotische libraries. Ze vereisen wel een veel betere opzet van de software dan andere packages, en zullen vast minder efficient omspringen met resources. Maar de package maintainers kunnen dan alles in losse packages stoppen zodat er geen ongebruikte libraries op je systeem terechtkomen.

Is het nodig dat een bepaalde beweging ervoor zorgt dat software zo wordt opgezet dat kan worden gekozen om tegen andere libraries te linken of om die functionaliteit in modules onder te brengen?

Ik denk zelf dat de open source community vaak geen zin heeft om dit soort paden in te slaan, of dat developers of initiatiefnemers worden tegengewerkt door bijvoorbeeld de oude garde.

Wat denken jullie hierover?

Laten we alsjeblieft niet gaan beginnen over "deze distro is beter dan die...", daar gaat het niet om.

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Ik wil niet zeggen dat het beter is, maar dit is juist een punt waar Gentoo heel goed in is; je kunt met USE flags precies aangeven welke functionaliteit (en dus, welke dependencies) je wel en niet wil hebben. Tot op zekere hoogte natuurlijk (een QT applicatie instaleren zonder QT libs gaat niet lukken).

Ook *BSD heeft dit met behulp van het ports systeem, en ik heb begrepen dat je dit ook (in mindere mate) op Debian kunt gebruiken (ook al heb ik daar zelf geen ervaring mee)

We are pentium of borg. Division is futile. You will be approximated.


Verwijderd

Dit onderwerp is al veel vaker hier besproken en ik zie het probleem echt niet. Ik ben heel tevreden met de bekende package managers en de keuze die de bekende distro bakkers ten aanzien van dependencies maken.

  • BarthezZ
  • Registratie: Juli 2004
  • Niet online

BarthezZ

anti voetbal en slechte djs!

Tsja ik denk dat het gewoonweg een keuze is van de package maintainers. Bouw een pakket met de basis functionaliteit die 90% waarschijnlijk gebruikt; en gooi de rest los erin met de overige dependencies. De enige manier om hier volledig om heen te werken is:
- Alles zelf compilen
- Zelf package maintainer worden (:+)
- Alle software herschrijven naar een volledig modulaire architectuur.

Alle opties zijn nogal veel werk en ik denk ook dat daarom een hoop mensen het niet zo boeit en blij zijn met de keuzes van de package maintainers.

  • lamko
  • Registratie: December 2001
  • Laatst online: 20-10-2024
Archlinux Linux moest hier toch heel goed in zijn. (staat me nog iets van bij ?)

And this !! Is to go even further beyond!!!


Verwijderd

Sommige mensen vergeten hoeveel werk het is om een package te maintainen. Ik heb zelf 2 collega's die allebei Debian dev. zijn en ik weet hoeveel werk het is. Het is niet alleen een package maken, maar ook documentatie schrijven, sane confige files ontwikkelen, patches aanbrengen etc etc.

Verwijderd

Nou als ik een basis installatie wil doen bijvoorbeeld van KDE. En ik krijg een hele lading aan applicaties waar ik niet op zit te wachten maar wel toe verplicht wordt om te installeren, ondanks dat ik er niet op zit te wachten. Vind ik dat wel super irritant. Het is leuk dat distro's een volle functionaliteit willen hebben met bepaalde applicaties maar ik zit er gewoonweg niet op te wachten. Moet het dus zover komen dat ik zelf maar libs maar naar binnen moet halen en zelf compileren? Dacht het niet.

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Verwijderd schreef op dinsdag 14 juli 2009 @ 01:45:
Moet het dus zover komen dat ik zelf maar libs maar naar binnen moet halen en zelf compileren? Dacht het niet.
Natuurlijk moet het dan zover komen.

Packages zijn binairy. Dit zorgt ervoor dat de software snel op je PC staat, maar wel al in een "vaste" configuratie. Oftewel; alle meuk die je in de ./configure fase meegeeft, is al meegecompileert.

Dit zorgt voor heerlijk snelle installs van packages, maar zorgt er ook voor dat de binairy die op je systeem staat, bepaalde dependencies (libs e.d.) nodig heeft om te kunnen draaien.

Zodra je een JIT compiler schrijft, is dit probleem opgelost.

We are pentium of borg. Division is futile. You will be approximated.


  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 23:25

CAPSLOCK2000

zie teletekst pagina 888

Verwijderd schreef op dinsdag 14 juli 2009 @ 01:45:
Nou als ik een basis installatie wil doen bijvoorbeeld van KDE. En ik krijg een hele lading aan applicaties waar ik niet op zit te wachten maar wel toe verplicht wordt om te installeren, ondanks dat ik er niet op zit te wachten. Vind ik dat wel super irritant. Het is leuk dat distro's een volle functionaliteit willen hebben met bepaalde applicaties maar ik zit er gewoonweg niet op te wachten. Moet het dus zover komen dat ik zelf maar libs maar naar binnen moet halen en zelf compileren? Dacht het niet.
Het is gewoon pokkeveel werk om al die programmaatjes in losse paketten af te splitsen. Ook wordt het een beetje oneconomisch om van iedere executable van 100 kilobyte een package te gaan maken met megabyte aan documentatie, icoontjes, installatiescriptjes etc... en dan heb ik het nog niet over testen en onderhoud.

Overigens wordt dit probleem naar mijn mening wat overschat. In de meeste gevallen kost het alleen wat schijfruimte. Het extra gemak is mij die ruimte wel waard,
Het kan ook verkeerd uitpakken. KDE4 eist min of meer dat je MySQL geinstalleerd hebt, terwijl ik dat deel niet gebruik (te langzaam op mijn pc). Maar dit soort gevallen zijn zeldzaam. Meestal kost het alleen maar een paar MB HD, en geen RAM of processor. Op de honderden gigabytes kan ik wel een paar honderd meg verspillen aan software die ik nauwelijks gebruik.

Ik erger me zelf meer aan alle nutteloze vertalingen die ik op m'n hd geprakt krijg. Ik spreek geen Russisch of Chinees, en heb dus geen behoefte aan die vertalingen. Ik heb wel een scriptje dat ze direct weer weggooid. Eerlijk gezegd is ook dit een verwaarloos probleem. Hetzelfde verhaal kun je houden over drivers.

This post is warranted for the full amount you paid me for it.


  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 00:44
CAPSLOCK2000 schreef op dinsdag 14 juli 2009 @ 12:14:
Ik erger me zelf meer aan alle nutteloze vertalingen die ik op m'n hd geprakt krijg. Ik spreek geen Russisch of Chinees, en heb dus geen behoefte aan die vertalingen. Ik heb wel een scriptje dat ze direct weer weggooid. Eerlijk gezegd is ook dit een verwaarloos probleem.
localepurge ftw :+

[ Voor 5% gewijzigd door gertvdijk op 14-07-2009 12:17 ]

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Bij openSUSE (enige waar ik over kan spreken) valt dit volgensmij wel redelijk mee, wil je Apache installeren, moet ie wat extra libs installeren, en als je even goed kijkt, zijn dit libs die ook door externe packages worden gebruikt (SVN heeft bepaalde onderdelen van Apache nodig bv. dus die is afgesplitst van de "standaard" Apache, daardoor hoef je ook niet de complete Apache te installeren alleen voor SVN) bij PHP zie je wel sneller wat "onnodige" dependency's, zoals sommige redelijk standaard modules, zoals sqlite (die hij standaard ook compiled, maar je wel kan aangeven dat ie niet moet compilen) En anders heb ik altijd nog de mogelijkheid om de installatie van pakken compleet te blokkeren.

Edit:
OpenSUSE doet voor KDE ook alleen engels en <locale> (in mijn geval dus NL) installeren, de rest kun je allemaal via losse pakketten installeren

[ Voor 9% gewijzigd door RobertMe op 14-07-2009 13:20 ]


  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 23-12-2025
En in Windows heb je nog steeds de registry en DLL's. Daar kun je weinig aan doen eigenlijk.

Een van de oplossingen is om een source repository te gebruiken via vb. Ports, Portage of Fink. Gentoo en sommige BSD's gebruiken die zo uit de doos maar je kunt die zelf ook installeren op de distro van jouw keuze echter als je zelf geen kennis hebt van zulke zaken zou je het beter links laten liggen.

Dependencies geven voor de meeste applicaties geen problemen behalve dan de bandbreedte. Verschillende libraries kunnen door dezelfde programma's gebruikt worden.

Pandora FMS - Open Source Monitoring - pandorafms.org

Pagina: 1