sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #33506
Re: Byg min egen RPM
Klavs Klavsen wrote:
>
> Hej Erling,
>
> Tak for den udførlige vejledning :-)
>
> Nu er det sådan at jeg ikke har nogen src.rpm.. så skulle jeg finde en til
> openssh.. og proftp..
Det kan vel ikke være specielt svært ? openssh er vist med i den nye
RedHat ?! Der må være andre her på listen som ved hvor man får en
proftp src.rpm fra ... Prøv www.rpmfind.net (undskyld min dovenskab).
> openssh f.ex. kræver jo et ssl-dir under kompilationen.. og det ville blive
> en for stor .spec fil, for at imødegå dette.. derfor føler jeg det i dette
> tilfælde er nemmere bare at
> lave en egen kompilation
Men når du selv kompilerer, så skal der vel også være alle de samme
ting til stede som der skal være når rpm kompilerer for dig. Jeg
kan ikke se problemet ... Jeg fornemmer at du komplicerer tingene
for dig selv, fordi du måske ikke er helt inde i rpm-tankegangen ??
> Jeg ville godt kunne lave nogle shell-if statements.. såsom at hvis
> /etc/ssh/sshd_config findes, skal pakkens sshd_config puttes ind som
> /etc/ssh/sshd_config.dist istedet.. kan man gøre det ved at inkludere en
> makefil i rpm.pakken - istedet for shell-kommandoer i .spec filen? dem har
> jeg nemlig skrevet og de virker ikke når man laver en rpm -i af pakken..
Hvor har du skrevet de if-statements ? Der er kun sektioner
som f.eks. %pre, %post, %preun og %postun der bliver udført
under hhv. installation og afinstallation af pakker. %install
sektionens navn må ikke forlede dig til at tro at hvad man skriver
der, bliver udført under installationen af pakkerne !
Brug f.eks. noget i stil med:
%files
%config(noreplace) /etc/ssh/sshd_config
Så burde rpm ved installationen lave en /etc/ssh/sshd_config.rpmnew
og lade den gamle være i fred, hvis den er der.
Hvis man iøvrigt skal lave ting som foregår under installationen,
istedet for på kompileringstidspunktet, så kan man bruge
en %post sektion:
%post
if [ ! -f /hvadvedjeg/filnavn ] ; then
mv /hvadvedjeg/filnavn.dist /hvadvedjeg/filnavn
fi
Men jeg tror at %config(noreplace) passer bedst ...
> smart.. men det kræver en del mere .spec arbejde.. medmindre jeg under
> build, kan nøjes med at skrive de ./configure kommandoer og make kommandoer
> jeg udfører ?
Jamen, er det ikke hele ideen bag rpm's %build sektion i spec-filen.
Her skriver man hvad man ellers ville gøre manuelt for at bygge et
program.
Jeg mener stadigvæk at din fremgangsmåde er "snyd", og at du vil
savne de fordele man får ved at bruge rpm "rigtigt" ;-)
(Men når man kun har en hammer, så ligner alle problemer søm :-)
Erling Jacobsen
--
"Never make any mistaeks."
(Anonymous, in a mail discussion about to a kernel bug report.)
References