Fare pulizia con UnusedPkg
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
-
Mario Vanoni
- Iper Master

- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: Fare pulizia
@norby
anche la versione 0.3 da date impossibili,
sulla mia 12.0 aggiornata dice:
293 ksh93 OK
101 zsh mai usata
52 emacs mai usato
0 k3b usato forse una settimana fa o piu`
Persevera, alla prossima versione
Mario Vanoni
anche la versione 0.3 da date impossibili,
sulla mia 12.0 aggiornata dice:
293 ksh93 OK
101 zsh mai usata
52 emacs mai usato
0 k3b usato forse una settimana fa o piu`
Persevera, alla prossima versione
Mario Vanoni
Re: Fare pulizia
Tralasciando il facile sarcasmo, grazie per i suggerimenti, ottimizzeranno sicuramente la funzione di update : D Il mio stile "non c'e'", ho sempre programmato in C e questo è il primo script bash che faccio con una certa complessità =) Sto imparando come tutti, grazie per i consigli e questo tipo di critiche fanno crescere me e il programma.spina ha scritto: Piccole note personali visto che il programmatore sei tu.
- ridirigere l'output di cat verso un grep è inutile, grep apre il file per leggerlo.
- sed e grep nella stessa riga di comando è una cosa proprio brutta da vedere. grep lo si usa quando non si usa sed, altrimenti si fa tutto con sed.
- stessa cosa vale per grep insieme ad awk
- quell'awk è proprio sprecato. Nel mio sistema awk sono 328Kb, visto che lo stesso comando si può emulare con un:e visto che cut sono solo 32Kb mi sembrerebbe più logico usare cut. Se proprio vuoi usare awk, almeno risparmiati il sort e il tail seguenti.Codice: Seleziona tutto
cut -d' ' -f1
Se questo è il tuo stile, ci credo che da una versione all'altra guadagni più del 100% in prestazioni.
Questo è un problema da non sottovalutare. Probabilmente l'unica soluzione è riconoscere la presenza dei .new nel FILE LIST, e estrarre dal doinst.sh il modo in cui lo rinomina. Che palle. Oppure, più semplicemente, in caso di /path/file.new eseguire lo stat anche su /path/file. Questi giorni mi penso una buona soluzione per lo 0.4 : Dspina ha scritto: Detto questo, ora forse mi odierai, comunque quello che ti frega è il fatto che Pat molte volte usa i file ".new", questi file vengono rinominati dallo script di post installazione e quindi non li puoi trovare nella FILE LIST del pacchetto.
Grazie a tutti per l'aiuto,
Emilio
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: Fare pulizia
Mi fa piacere che tu abbia capito lo spirito del mio postnorby ha scritto:....Questo è un problema da non sottovalutare. Probabilmente l'unica soluzione è riconoscere la presenza dei .new nel FILE LIST, e estrarre dal doinst.sh il modo in cui lo rinomina. Che palle. Oppure, più semplicemente, in caso di /path/file.new eseguire lo stat anche su /path/file. Questi giorni mi penso una buona soluzione per lo 0.4 : Dspina ha scritto: Detto questo, ora forse mi odierai, comunque quello che ti frega è il fatto che Pat molte volte usa i file ".new", questi file vengono rinominati dallo script di post installazione e quindi non li puoi trovare nella FILE LIST del pacchetto.
....
Detto questo, nel mio post precedente avrai notato che il file si chiamava:
mentre l'eseguibile si chiama bash. Però devo essere sincero, la cosa mi sdubbia un pò, l'idea di controllare /path/file mi piace e non dovrebbe essere sbagliata. Ora sono con il PC di un amica, appena posso ricontrollo il file e ti faccio sapere.bash2.new
come ha detto "Mario Vanoni", persevera,
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: Fare pulizia
Eh si, il file è proprio bash2.new mentre l'eseguibile è bash. Mi sa che ti tocca faticare
.
Spina
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
Re: Fare pulizia
Ho postato la 0.4 su freshmeat, ecco come ho affrontato i principali problemi:
- Visto che il problema dei file rinominati dagli script di installazione è irrisolvibile (non posso logicamente dedurre che /bin/bash2.new è rinominato in /bin/bash senza vedere il file doinst.sh, che non è recuperabile perchè non salvato da nessuna parte), ho aggiunto ad unusedpkg la funzione 'info', che specifica le date di ogni singolo file in un pacchetto, facendo notare gli eventuali file mancanti. L'utente in questo modo ha tutti i dati disponibili per sapere l'effettivo uso del pacchetto e decidere di testa sua se disinstallarlo o no.
- Ho cercato di ottimizzare le funzioni di ricerca, fondendo parecchi grep, awk e sed (grazie Spina). Non sono neanche lontanamente perfetti, continuerò a migliorarlo col tempo. Domanda, è ottimizzabile il comando
? Cioè posso includere il 'processa solo le 100 linee dopo la parola regexp' nel comando sed? Sicuramente si, se qualcuno sa come mi suggerisca : D
- Visti i problemi noti che possono falsare le date di un pacchetto, ho aggiunto spiegazioni dettagliate nel README e un warning durante il listing dei pacchetti.
Questo è tutto, a breve spero di avere la voglia di supportare anche gentoo : D
Emilio
Versione 0.4: http://freshmeat.net/projects/unusedpkg/
- Visto che il problema dei file rinominati dagli script di installazione è irrisolvibile (non posso logicamente dedurre che /bin/bash2.new è rinominato in /bin/bash senza vedere il file doinst.sh, che non è recuperabile perchè non salvato da nessuna parte), ho aggiunto ad unusedpkg la funzione 'info', che specifica le date di ogni singolo file in un pacchetto, facendo notare gli eventuali file mancanti. L'utente in questo modo ha tutti i dati disponibili per sapere l'effettivo uso del pacchetto e decidere di testa sua se disinstallarlo o no.
- Ho cercato di ottimizzare le funzioni di ricerca, fondendo parecchi grep, awk e sed (grazie Spina). Non sono neanche lontanamente perfetti, continuerò a migliorarlo col tempo. Domanda, è ottimizzabile il comando
Codice: Seleziona tutto
grep ... -A 100 "regexp" | sed ...- Visti i problemi noti che possono falsare le date di un pacchetto, ho aggiunto spiegazioni dettagliate nel README e un warning durante il listing dei pacchetti.
Questo è tutto, a breve spero di avere la voglia di supportare anche gentoo : D
Emilio
Versione 0.4: http://freshmeat.net/projects/unusedpkg/
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: Fare pulizia
Sbagliato, gli script doinst vengono salvati in /var/log/scriptnorby ha scritto:....non posso logicamente dedurre che /bin/bash2.new è rinominato in /bin/bash senza vedere il file doinst.sh, che non è recuperabile perchè non salvato da nessuna parte....
Spina
P.S. Per quando riguarda sed...ci devo pensare, così su due piedi non mi viene niente in mente....
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: Fare pulizia
Dal man di sed:norby ha scritto:....Domanda, è ottimizzabile il comando
? Cioè posso includere il 'processa solo le 100 linee dopo la parola regexp' nel comando sed? Sicuramente si, se qualcuno sa come mi suggerisca : DCodice: Seleziona tutto
grep ... -A 100 "regexp" | sed ...
....
da cui si deduce che per fare quello che vuoi tu, basta fare:GNU sed also supports some special 2-address forms:
0,addr2
Start out in "matched first address" state, until addr2 is found. This is similar to 1,addr2, except that if
addr2 matches the very first line of input the 0,addr2 form will be at the end of its range, whereas the 1,addr2
form will still be at the beginning of its range.
addr1,+N
Will match addr1 and the N lines following addr1.
addr1,~N
Will match addr1 and the lines following addr1 until the next line whose input line number is a multiple of N.
Codice: Seleziona tutto
sed /regexp/,+100 ....
Detto questo, i manuali andrebbero letti Emilio
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
-
Mario Vanoni
- Iper Master

- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: Fare pulizia
Non scherzi affatto e ti ringrazio di evidenziare il problema portabilita`!spina ha scritto: Ti ho postato anche la parte iniziale dove dice che è una estensione del GNU sed, che poi è quello usato dalla slackware, solo perchè, come direbbe Mario Vanoni:"La portabilità!!!! Attenzione alla portabilità"(ovviamente scherzo Mario).
Macchine UNIX, quindi non GNU/Linux,
hanno un sed(1) discendente da, o AT&T/SVRX, o Berkeley/BSD.
Uno script decente deve funzionare su ogni UNIX, compreso Linux.
E se non funziona, biasimare RMS per gli extra di GNU/sed.
Mario Vanoni
