user aanmaken middels RPM

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 20-09 16:59
Ik probeer een rpm te maken voor een stuk third-party software. Naast het uitpakken van de software en draaien van de setup van deze software, probeer ik meteen een user aan te maken. Om de een of andere reden lukt dit niet (aanmaken van de user en group, de rest van de code in het specfile lijkt wel te werken). Ik zou verwachten dat de prep fase in het spec file de plaats is om dit vast te leggen.

Ergo:

code:
1
2
3
4
5
6
7
8
9
10
11
%prep
%setup

if [[ `grep -c 'mygroup' /etc/group` == 0 ]]; then
        /usr/sbin/groupadd -g 1031 mygroup
fi

if [[ `finger myuser |grep -c 'Login' ` == 0 ]]; then
        /usr/sbin/useradd -u 1031 -g mygroup -c "My Custom User" -m -s /bin/bash myuser
fi
%install


Kan iemand mij vertellen waar ik de fout in ga? (of hoe ik het installeren van de RPM beter kan debuggen zodat ik zelf kan ontdekken waar het fout gaat ;) )

Egoist: A person of low taste, more interested in themselves than in me


Acties:
  • 0 Henk 'm!

  • freggy
  • Registratie: Juli 2002
  • Niet online
Waarom wil je een gebruiker aanmaken tijdens het bouwen van de RPM? Mij lijkt het dat je dat moet doen bij het *installeren* van de RPM, met andere woorden, dat moet in de %post staan.

http://www.rpm.org/max-rpm/s1-rpm-inside-scripts.html

Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 20-09 16:59
Waarschijnlijk omdat ik niet goed begrijp hoe RPM werkt ;) Ik had verwacht dat ik eerst de user + group moest aanmaken, omdat er gebruik gemaakt wordt van de homedirectory van de user voor het opslaan van een gedeelte van de binaries.

Het bouwen van de rpm middels rpmbuild werkt (althans: ik houd een binary rpm over). Bij het bouwen van de binary rpm wordt de user en de group netjes aangemaakt, maar zodra ik de binary RPM probeer te installeren (nadat ik de user, group en software heb verwijderd) eindig ik met meldingen als deze:

code:
1
2
warning: user my_user does not exist - using root
warning: group my_group does not exist - using root


Zelfs als ik na de %install sectie in de SPEC file een %post opneem (met de check voor de user en indien afwezig deze aanmaak) houd ik deze meldingen.

Probeer ik iets in een rpm te doen wat daar simpelweg niet hoort?

Egoist: A person of low taste, more interested in themselves than in me


Acties:
  • 0 Henk 'm!

  • freggy
  • Registratie: Juli 2002
  • Niet online
Zonder de volledige SPEC file, is het moeilijk om te weten wat er fout gaat...

Misschien helpt het om om %pre in plaats van %post te gebruiken, omdat bepaalde bestanden die je installeert in je RPM eigendom moeten zijn van die gebruiker. Dan moet de gebruiker uiteraard bestaan vóór de bestanden worden geïnstalleerd.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik kan je helaas niet verder helpen maar ik zou hier de beter goed gekopieerd dan dan slecht uitgevonden methode toepassen :) Download bijv. een Fedora source rpm van bijv. apache of een andere daemon die onder zijn eigen user account draait en kijk in spec file hoe die rpm bakkers het daar gedaan hebben ;)

Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 20-09 16:59
De volgordelijkheid speelde mij parten. Naar nu blijkt moeten de %pre en %post macros na de %install macro opgenomen worden in de spec. Anders worden ze genegeerd (en daar zag ik ook geen melding van).

Anyway, het geheel lijkt te werken. thx voor het meedenken.

[ Voor 6% gewijzigd door JaQ op 17-03-2010 12:05 ]

Egoist: A person of low taste, more interested in themselves than in me


Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

%prep, %build, %install %clean etc worden gebruikt tijdens de build. %pre en %post komen in de uiteindelijke RPM terecht, en worden uitgevoerd voordat de RPM wordt geinstalleerd, respectievelijk na het installeren van het package.

Je hebt een %preun en %postun, die worden gedraaid na het uninstallen van een RPM.
Pagina: 1