Pagina 1 di 1

domanda su removepkg

Inviato: ven 9 gen 2009, 23:22
da tarini
sto creando un pacchetto da zero e come credo sia giusto sto anche testando la rimozione dello stesso per capire se è tutto ok

ho però un problema.

tra i file che vado ad installare è presente un file di configurazione che dovrà essere copiato in /etc
per farlo utilizzo il classico script (in doinst.sh) che controlla se è gia presente un file e in caso positivo non lo sostituisce ma crea una nuova configurazione con il suffisso ".new"

in fase di rimozione del pacchetto però (giustamente) lo script cerca di eliminare il file .conf.new in quanto all'interno dello stesso è presente un file con questa estensione mentre l'eventuale file .conf (rinominato dallo script in doinst.sh) non viene cancellato

è giusto come comportamento o devo creare un sorta di doinst.sh che venga eseguito alla disinstallazione che si occupa di eliminare eventuali file rinominati??

Re: domanda su removepkg

Inviato: sab 10 gen 2009, 8:21
da targzeta
Il file non viene cancellato, succede anche con i pacchetti normali della slackware, vedi ad esempio il pacchetto wget, che installa il file /etc/wgetrc, se elimini il pacchetto, il file rimane. E' un classico problema della Slackware che non possiede uno script per rimuovere eventuali file di configurazione dei programmi, servirebbe un doremove.sh :).

Spina

Re: domanda su removepkg

Inviato: sab 10 gen 2009, 8:28
da gohanz
Submax ha scritto una patch per removepkg, che funziona come doinst.sh però in fase di rimozione del pacchetto. Però sembra che non sia stata accettatta.

Re: domanda su removepkg

Inviato: sab 10 gen 2009, 10:42
da JohnnyMnemonic
Beh per me questo comportamento va bene, se io ho fatto delle modifiche alla configurazione di un programma vorrei che rimanessero per una eventuale futura reinstallazione

Re: domanda su removepkg

Inviato: sab 10 gen 2009, 11:37
da targzeta
JohnnyMnemonic ha scritto:Beh per me questo comportamento va bene, se io ho fatto delle modifiche alla configurazione di un programma vorrei che rimanessero per una eventuale futura reinstallazione
Si, ma come il doinst.sh controlla se il file è stato modificato prima di sovrascriverlo, così il doremove.sh potrebbe controllare se è stato modificato, e se non lo è stato, lo può eliminare.
Questi sono dettagli, io commentavo la scelta di non mettere nessuno script per la rimozione dei file di configurazione, è per questo che la slackware viene considerata "sporca", perchè se esegui tanti installpkg e poi i removepkg associati, l'hd non ti ritorna pulito.

Spina

Re: domanda su removepkg

Inviato: sab 10 gen 2009, 11:45
da conraid
spina ha scritto: Si, ma come il doinst.sh controlla se il file è stato modificato prima di sovrascriverlo, così il doremove.sh potrebbe controllare se è stato modificato, e se non lo è stato, lo può eliminare.
il doinst controlla solamente la presenza di un file, non la sua modifica rispetto all'originale. Per farlo dovrebbe agire tipo con md5 o qualcosa di simile.
In fase di dinsinstallazione quindi diventa problematico farlo come in fase di installazione.

Re: domanda su removepkg

Inviato: sab 10 gen 2009, 12:56
da targzeta
conraid ha scritto:..
il doinst controlla solamente la presenza di un file, non la sua modifica rispetto all'originale. Per farlo dovrebbe agire tipo con md5 o qualcosa di simile.
In fase di dinsinstallazione quindi diventa problematico farlo come in fase di installazione.
Il doinst.sh controlla l'md5 dei due file, quello eventualmente presente e quello .new, prima di sovrascrivere quello presente. Come ho già detto sono dettagli, non ci vuole molto a salvarsi l'md5 del file per capire se è stato modificato. Inoltre si potrebbe anche controllare la data di modifica con quella dell'installazione, se non sbaglio se rimuovi un pacchetto la slackware già ora ti avvisa che un file è stato modificato dopo l'installazione, però non ricordo se lo cancella ugualmente o se lo lascia lì.

Spina

Re: domanda su removepkg

Inviato: sab 10 gen 2009, 15:30
da conraid
spina ha scritto: Il doinst.sh controlla l'md5 dei due file, quello eventualmente presente e quello .new, prima di sovrascrivere quello presente.
Hai ragione, e pensare che lo faccio sempre. Devo prendermi una pausa :-k

Re: domanda su removepkg

Inviato: sab 10 gen 2009, 16:42
da submax82
gohanz ha scritto:Submax ha scritto una patch per removepkg, che funziona come doinst.sh però in fase di rimozione del pacchetto. Però sembra che non sia stata accettatta.
esatto e funziona anche molto bene... però Pat non l'accetta, sarebbe utile per eseguire anche altre operazioni alla rimozione di un pacchetto... infatti lo hanno tutte le maggiori distro anche le più minimali, tranne slack :doubt:

inoltre per me c'è anche un cosa poco chiara nel sistema attuale... ed è la questione della rimozione dei link in fase di rimozione del pacchetto... ora viene parsato doinstall.sh che contiene per ogni link una riga con rm -rf link... quindi in realtà una specie di doremove.sh già esiste ma è "nascosto" e "confuso" nel doinstall.sh... quindi la mia patch prevede anche la creazione automatica delle righe rm -rf link espilitamente nel doremove.sh. Ovviamente tutto il mio sistema è retrocompatibile al 100% con il vecchio... in realtà sono piccole modifiche... ma Pat nn ne vuol sapere, sappiate che sono stato attento anche ad usare il suo "stile" nel codice e a fare meno modifiche possibili... ma è sempre stata rifiutata a priori :evil: :(

Re: domanda su removepkg

Inviato: sab 10 gen 2009, 16:44
da JohnnyMnemonic
submax82 ma c'era una motivazione in questo rifiuto?

Cioè erano comunicazioni via mail o tramite altri canali?

Re: domanda su removepkg

Inviato: sab 10 gen 2009, 16:51
da submax82
JohnnyMnemonic ha scritto:submax82 ma c'era una motivazione in questo rifiuto?

Cioè erano comunicazioni via mail o tramite altri canali?
via mail... le ragioni... erano la semplicità estrema che slack vuole mantenere e che doremove.sh non è "critico" per il funzionamento di nessun pacchetto e quindi per questo Pat lo considera una cosa in più che complica le cose per niente.

Io posso capire ma come ho spiegato prima anche adesso "esiste" ma è "confuso" "nascosto" nel doinstall.sh proprio per la questione della rimozione dei link...

ha detto inoltre che altri avevano fatto la stessa richiesta ma lui non la vuole accettare... e anche se la accettasse ci sarebbe gente che direbbe ecco accetti questa cosa e non inserisci il controllo delle dipendenze... nel senso che se accetti una cosa devi poi accettare tutto... ma anche questo sempre a mio parere non lo ritengo un discorso o una motivazione corretta.