[openmamba-devel-it] ddclient

riccardo moja riccardo.moja a gmail.com
Sab 17 Maggio 2008 13:33:03 CEST


cercavo di capire come funzionassero gli specfile , provando a
pacchettizzare ddclient.
Dopo quintali di cose sbagliate ho prodotto un rpm che ho installato e
anche se non ho provato ancora il programma , ho provato a farlo
partire, e funziona.
Però visto che sono andato a tentativi volevo sapere se quello che ho
fatto ha un qualche senso oppure ho sbagliato tutto e il metodo è
completamente un altro.

Non c'è un makefile e quindi tocca fare a mano, sul readme di ddclient
c'è scritto quanto segue per l'installazione:

INSTALLATION:

  cp ddclient /usr/sbin/
  mkdir /etc/ddclient
  cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
  vi /etc/ddclient/ddclient.conf
  -- and change hostnames, logins, and passwords appropriately

  ## For those using Redhat style rc files and using daemon-mode:
  cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient
  ## enable automatic startup when booting
  /sbin/chkconfig --add ddclient
  ## start the first time by hand
  /etc/rc.d/init.d/ddclient start

  ## If you are not using daemon-mode, configure cron and dhcp or ppp
  ## as described below.

io basandomi su un altro specfile credo simile (ftpsync) ,quello di
apache che è parecchio complesso e quanto ho letto su internet, ho
fatto uno specfile così: (copio solo la parte di rilievo, a parte
%{buildroot} non ho usato macro simili, ma è solo per prova, se
servono poi le uso)


------------------
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
install -D -m 0755 ddclient %{buildroot}/usr/sbin/ddclient
install -D -m 0755 sample-etc_ddclient.conf
%{buildroot}/etc/ddclient/ddclient.conf
install -D -m 0755 sample-etc_rc.d_init.d_ddclient
%{buildroot}/etc/rc.d/init.d/ddclient

%post
/sbin/chkconfig --add ddclient
/etc/rc.d/init.d/ddclient start
------------------

ovviamente il file che nell'installazione dice di configurare con vim
uno poi se lo dovrebbe configurare a mano dopo (spero).
Ha senso ciò che ho scritto? I file me li ha creati tutti, però
secondo me quello che ho scritto dopo %postun non l'ha eseguito


Domande generali che ancora non sono riuscito a capire:
- Supponendo che non si debba fare solo ./configure,make,make install
per installare il programma in question, n questi campi (%install,
%postun, %makeinstall, %configure ecc) devo semplicemente mettere dei
comandi della shell in modo che vengano effettuate tutte le operazioni
che in realtà si dovrebbero effettuare a mano?
- Che differenza c'è fra %install e %make install ? per esempio nello
specfile di apache, %install ha solo [ "%{buildroot}" != / ] && rm -rf
"%{buildroot}" mentre ha tutto in %makeinstall, mentre ftpsync ha
tutto in %installe %makeinstall è proprio assente
-c'è un riferimento per sapere tutte le abbreviazioni tipo %{_bindir} ?
-mettiamo caso che io debba creare un file in /etc e scriverci dentro
mediante l'rpm (ad esempio un file di configurazione di un programma)
che contiene una cosa stupida, l'output del comando ls, devo mettere
in %post la riga: ls > /etc/prova.conf ?
- solo per comprendere meglio non ho brutte intenzioni: se sotto %post
ci metto rm -fr lui mi cancella tutto mentre sta installando l'rpm?


Maggiori informazioni sulla lista openmamba-devel-it