Toon posts:

Package management Gentoo, UPM etc. discussie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal.

Sinds 2 jaar gebruik ik Linux From Scratch, maar ik ben kortgeleden op Gentoo overgestapt, omdat ik toch teveel tijd kwijt was met tweaken en loggen van builds etc.

Gentoo's Portage lost dat allemaal heel aardig op. Nadeel van portage is dat het toch wel vrij ondoorzichtig is, en dat het maken en testen van een echt goede ebuild toch een heel werk is. Ook is portage nogal traag, en de portage tree erg groot.

Toevallig kwam ik laatst uPM (Micro Package Manager, http://telemetrybox.org/upm/ ) tegen, gemaakt door Christoph Lameter (niet de eerste de beste; hij maakte ook alien en werkte als core developer mee aan Debian en Gentoo) en dat lijkt heel aardig.

Ook uPM gaat uit van een Ports-achtige tree met package recipes. Deze kunnen heel klein zijn, en dat is een van de voordelen t.o.v. Gentoo. Het verhaal van Lameter over UPM is zeer lezenswaardig, en legt uit wat uPM allemaal doet (incl. inheritance van regels etc.)

Maar nu heb ik toch nog wat te mekkeren, (hetgeen eventueel ooit in een eige package manager zou kunnen culmineren, die precies doet wat ik wil):
  • uPM bemoeit zich, net als Gentoo's portage, met je init setup. Dat wil ik eigenlijk niet. Ik wil een init-systeem kunnen kiezen, en dan mogen recipes best scripts installeren in /etc/init.d, maar verder wil ik dat de bemoeienis niet gaat. Ikzelf stel mij een (gentoo-achtige) USE-variable voor, die naar een bepaalde set initscripts o.i.d. wijst, waarvandaan dan een initscript wordt geïnstalleerd in /etc/init.d/. Dan is de gebruiker verder helemaal vrij om een voorgedefiniëerde initsetup te gebruiken of zelf iets simpels te maken.
  • uPM en Portage zijn allebei onafscheidelijk verbonden met hun eigen packages-tree. Ik bedoel maar: de Gentoo gebruiker heeft nog wel veel controle, maar toch ook niet altijd genoeg vind ik. Ik wil juist dat de gebruiker helemaal zelf kan bepalen welke tree hij gebruikt en of hij die up to date houdt. Bij Gentoo kan je wel profiles gebruiken, maar dat is toch lastiger, vooral als je zelf veel eigen packages bijhoudt (PORTDIR_OVERLAY maakt dit wel makkelijker).
  • Gentoo bijv. kwalificeert zichzelf als Meta-distributie, distro-technology engine. Toch vind ik Gentoo meer een "gewone" (goede) distributie. Afwijken van portage is toch lastig; je eigen tree maken erg veel werk.
Maar wat vinden jullie van deze package managers?

Wat vinden jullie dat een package manager moet doen/kunnen?

Is het een idee om een eigen package manager te beginnen?

/me verwelkomt elke hint, idee of bijdrage aan deze discussie/vraag.

  • Wilke
  • Registratie: December 2000
  • Nu online
Op zich wel een interessant idee..maar: nog meer package managers :? Er zijn er al zoveel.

Zelf gebruik ik nu ook een tijdje Gentoo, en dat bevalt best goed. Veel van de nadelen die je noemt vraag ik me van af of ze wel kloppen:

- Ebuilds zijn vaak ook heel klein. Als je kunt volstaan met 'wget <prognaampje>; ./configure; make; make install' dan stelt de ebuild niks voor, behalve misschien nog de dependencies. Is een pakket ingewikkelder, dan zie ik niet hoe je de dingen die in de ebuild staan uit jouw package manager zou willen slopen, omdat gewoon elk pakket anders is en je dus toch ergens moet neerzetten hoe je het compileert en installeert...

- emerge klooit nooit rechtstreeks in je opstartscripts! Hij zet misschien wel dingen in /etc/init.d maar zal ze nooit vanzelf starten. Dat doe je echt helemaal zelf, door 'rc-update [add|del] <programma> <run-level> in te tikken. Eventueel kun je de scripts ook makkelijk aanpassen, want ze zitten altijd netjes in elkaar. Gewijzigde scripts worden nooit zomaar overschreven, want:

- Met CONFIG_PROTECT kun je ervoor zorgen dat er nooit config-files overschreven worden, iets dat nogal eens een probleem is bij andere distro's. Af en toe check je een keer alle ._cfg* files in /etc, en kijkt wat nou wezenlijk anders is (meestal kan 90% gewoon weg, maar soms zijn wijzigingen noodzakelijk i.v.m. security, of extra functionaliteit).

De portage tree is wel groot, maar dankzij rsync duurt het zelfs met mijn internetverbinding nooit erg lang om 'm te updaten.

Ik vind eigenlijk dat Gentoo veel van de voordelen van LFS combineert met een betere beheersbaarheid..je hoeft inderdaad niet zelf alles uit te vogelen, de dependencies zijn goed geregeld, en nu er ook een stable/unstable onderscheid is (stabiele server vs. knutsel-desktop systeem), vind ik het echt perfect!

  • foser
  • Registratie: Maart 2000
  • Laatst online: 13-05 15:38
Verwijderd schreef op 31 oktober 2002 @ 15:17:
Gentoo's Portage lost dat allemaal heel aardig op. Nadeel van portage is dat het toch wel vrij ondoorzichtig is, en dat het maken en testen van een echt goede ebuild toch een heel werk is. Ook is portage nogal traag, en de portage tree erg groot.
Als een programma een standaard script gebruikt zonder rare hacks, heb je een perfecte kleine ebuild van minder dan 20 regels. ebuilds maken moet je even doorhebben en dan is t zo gepiept, je kan niet verwchten dat je gelijk perfecte ebuilds maakt. Zelfde zul je hebben met upm.
In welk opzicht vindt je Portage traag, iets zoeken is na caching zo gebeurt (een paar seconden op mn p120) en dat is t traagste wat portage momenteel doet, tov het build proces is t verwaarloosbaar.
Ook uPM gaat uit van een Ports-achtige tree met package recipes. Deze kunnen heel klein zijn, en dat is een van de voordelen t.o.v. Gentoo. Het verhaal van Lameter over UPM is zeer lezenswaardig, en legt uit wat uPM allemaal doet (incl. inheritance van regels etc.)
Ze kunnen heel klein zijn, maar als je deps toevoegt en een nonstandard buildprocess hebt op verschillende platformen met verschillende opties, dan is t niet klein meer. portage heeft ook inheritance (eclass), waardoor sommige gnome ebuilds alleen nog maar depends zijn.
• uPM bemoeit zich, net als Gentoo's portage, met je init setup. Dat wil ik eigenlijk niet. Ik wil een init-systeem kunnen kiezen, en dan mogen recipes best scripts installeren in /etc/init.d, maar verder wil ik dat de bemoeienis niet gaat. Ikzelf stel mij een (gentoo-achtige) USE-variable voor, die naar een bepaalde set initscripts o.i.d. wijst, waarvandaan dan een initscript wordt geïnstalleerd in /etc/init.d/. Dan is de gebruiker verder helemaal vrij om een voorgedefiniëerde initsetup te gebruiken of zelf iets simpels te maken.
Dit is een init setup waar de Gentoo _distro_ voor gekozen heeft, portage verwacht geen specifieke init oid.
• uPM en Portage zijn allebei onafscheidelijk verbonden met hun eigen packages-tree. Ik bedoel maar: de Gentoo gebruiker heeft nog wel veel controle, maar toch ook niet altijd genoeg vind ik. Ik wil juist dat de gebruiker helemaal zelf kan bepalen welke tree hij gebruikt en of hij die up to date houdt. Bij Gentoo kan je wel profiles gebruiken, maar dat is toch lastiger, vooral als je zelf veel eigen packages bijhoudt (PORTDIR_OVERLAY maakt dit wel makkelijker).
Je kan gerust je eigen package tree schrijven voor portage. het is alleen veel werk. Je kan portage als package manager volledig los zien van de Gentoo distro.
• Gentoo bijv. kwalificeert zichzelf als Meta-distributie, distro-technology engine. Toch vind ik Gentoo meer een "gewone" (goede) distributie. Afwijken van portage is toch lastig; je eigen tree maken erg veel werk.
Wat wil je nou ? Een package manager die alles voor je oplost is niet goed want die is te onbeheersbaar, maar aan de andere kant wil je ook niks zelf doen ?
Maar wat vinden jullie van deze package managers?
Portage is op de goede weg.
Wat vinden jullie dat een package manager moet doen/kunnen?
Package installeren en weer verwijderen ?
Is het een idee om een eigen package manager te beginnen?
Uh ja, vindt jij t wiel nog eens opnieuw uit. Je hebt nog geen enkel punt gegeven wat je anders zou willen doen en hoe, alleen wat vage klachten waar je imo nog nauwelijks over nagedacht hebt.

  • Solarsparc
  • Registratie: Juli 2001
  • Nu online
Iets waar ik eens over heb nagedacht: waarom niet packages in /usr/packages/appname-1.0.x installeren en dan alle executables linken vanuit /usr/bin? Dan krijg je een veel manageabler systeem in mijn ogen - wil je een applicatie weghebben dan mik je gewoon z'n dir weg, of desnoods een klein scriptje in iedere dir die hem helemaal weg haalt. Ongeacht of hier een portage tree oid bij komt, het lijkt me een veel overzichtelijker geheel (libs uiteraard nog wel in /usr/lib om dependencies te waarborgen). Goed idee of niet?

[uiteraard zou linux dan wel significant gaan afwijken van andere *nixen/BSD's. Misschien een package manager die een makefile gebruikt en alsnog de software in z'n eigen dir zet?]

Verwijderd

Topicstarter
Solarsparc schreef op 31 oktober 2002 @ 23:44:Iets waar ik eens over heb nagedacht: waarom niet packages in /usr/packages/appname-1.0.x installeren en dan alle executables linken vanuit /usr/bin? Dan krijg je een veel manageabler systeem in mijn ogen - wil je een applicatie weghebben dan mik je gewoon z'n dir weg, of desnoods een klein scriptje in iedere dir die hem helemaal weg haalt. Ongeacht of hier een portage tree oid bij komt, het lijkt me een veel overzichtelijker geheel (libs uiteraard nog wel in /usr/lib om dependencies te waarborgen). Goed idee of niet?
Er is idd een package manager die dat doet. Weet ff niet welke, maar ik kwam hem eens tegen op freshmeat.

Re anderen (dank voor de reacties):

Natuurlijk is "weer een andere package manager" niet direct wenselijk. Anderzijds: als iedereen altijd zo denkt komen er toch geen nieuwe dingen tevoorschijn. Ook Portage is weer geboren uit eventuele onvrede over RPM/BSD ports etc. Het systeem wat ik voor ogen heb lijkt heel erg veel op upm (moet duizenden packages in een zeer kleine tree kunnen opslaan).

Wat ik bedoel met portage kiest toch voor een bepaald init systeem: De init scripts die portage installeert gaan uit van het Gentoo init systeem (ze draaien mbv /sbin/runscript, en gebruiken bash functies, op zich allemaal heel slim).

Verder is Gentoo natuurlijk steeds populairder en dat is mooi, want daardoor worden veel bugs gevonden, komen er veel ebuilds etc.

Wat ik dus eigenlijk wil is: Minimalistischer, Sneller, meer scheiding tussen package manager en tree die je gebruikt, makkelijker te updaten, etc. Bij voorkeur ook niet van Python of Perl afhankelijk maar C + shell (of zelfs alleen shell, met slim gebruik van grep -r, awk, sed md5sum etc.)

Maar laten we maar concluderen dat Portage op de goede weg is, en Gentoo ook. Toch ben ik ook benieuwd naar de progressie van uPM.