Mi commentate questo script? (riga x riga cosa fa)

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
pinguin
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1066
Iscrizione: mercoledì 15 febbraio 2006, 10:38

Mi commentate questo script? (riga x riga cosa fa)

Messaggio da pinguin »

Premessa: vorrei cimentarmi con la compilazione di pacchetti alla debian-way (solo compilazione di programmi già fatti ma di cui non si trova il .deb, perchè non so programmare)
leggendo la guida in questo sito http://www.debian.org/doc/maint-guide/
arrivo a questa pagina http://www.debian.org/doc/maint-guide/c ... #s-control dove c'è il listato di una script che aiuta ad individuare i pacchetti da elencare in build-depends e depends
siccome l'output che mi da è enorme e non capisco bene come maneggiarlo, c'è un'anima gentile che mi spiega riga x riga questo script? così manari capisco come interpretare l'output
riporto lo script e la parte di testo di quella pagina che lo descrive sommariamente
Ecco un trucco che puoi usare per trovare quali pacchetti il tuo pacchetto richiede per la creazione:

Codice: Seleziona tutto

     strace -f -o /tmp/log ./configure
       # o make invece di ./configure, se il pacchetto non usa autoconf
       for x in `dpkg -S $(grep open /tmp/log|\
                           perl -pe 's!.* open\("([^"]*).*!$1!' |\
                           grep "^/"| sort | uniq|\
                           grep -v "^\(/tmp\|/dev\|/proc\)" ) 2>/dev/null|\
                           cut -f1 -d":"| sort | uniq`; \
             do \
               echo -n "$x (>=" `dpkg -s $x|grep ^Version|cut -f2 -d":"` "), "; \
             done


Per trovare manualmente le esatte dipendenze per la compilazione di /usr/bin/foo, esegui

      objdump -p /usr/bin/foo | grep NEEDED

e per ogni libreria elencata, per es. libfoo.so.6, esegui

      dpkg -S libfoo.so.6

A questo punto usa la versione -dev di ogni pacchetto come valore di `Build-deps'. Se usi ldd a questo scopo, ti verranno indicate anche tutte le librerie di dipendenza indiretta, col problema di un numero eccessivo di dipendenze per la compilazione.
grazie mille per ogni risposta
Nella scatola era scritto: "Richiede Windows Xp o superiore"
Così ho installato Linux :-)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

Per commentare questo script basta aggiungere qualche # all'inizio di ogni riga
(rotfl) scherzavo ...

Io ti consiglio di prendere carta e penna e segnarti i comandi che poi cercherai nelle pagine di man ( manuale )

strace, utility per lanciare il comando con output file -o
grep ricerca su diverse righe la riga indicata dal comando
grep -v come sopra solo che toglie le righe indicate dal comando
perl -pe attiva la shell perl con -pe
cut l'ouput in colonne viene selezionato
sort l'output viene messo in ordine alfabetico
uniq nell'output ordinato vengono tolte le linee doppione
dpkg -S attiva il programma dpkg per interrogare pacchetto indicato


2>/dev/null questa è una redirezione delle scritte in modo che non escano a video in quanto sgradite a chi a progettato lo scipt !


ciao
;D

Va bene per iniziare ?
La open con tutti quei caratteri strani è una espressione regolare per formare una richiesta particolare nel formare i parametro da dara al comando open di perl
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

dimenticavo il construtto

for `comando`
do
...
done

l'output del comando, riga per riga viene usato nel ciclo do-done.
Dopo l'ultima riga di output del comando si smette di ciclare nel for (do,done)

ciao
;D
Avatar utente
pinguin
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1066
Iscrizione: mercoledì 15 febbraio 2006, 10:38

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da pinguin »

giuro che firmo (e faccio firmare da tutti quelli che conosco) la tua petizione se mi fai la traduzione da me comprensibile di quello che fa quello script  ;D  (b2b)
per quanto io sia a zero di programmazione, i nomi dei comandi presenti nello script li avevo capiti e avevo provato a consultare i man ma non sono venuto a capo di niente
per cui mi servirebbe per ogni riga una descrizione del tipo:
strace avvia configure e indirizza l'output nel file /tmp/log
grep cerca open in /tmp/log
......
poi non so interpretare quei simboli tipo  "^/" o *!$1!' o |\
grazie
Nella scatola era scritto: "Richiede Windows Xp o superiore"
Così ho installato Linux :-)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

l'hai detto !!  ;D

Ora andiamo per passi ..
Cosa è che non capisci ...
Iniziamo da un pezzetto e continuiamo ...
Sai cosa vuol dire in tanto il carattere pipe ( stanghetta ) | in bash ??

ciao
:)
Avatar utente
pinguin
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1066
Iscrizione: mercoledì 15 febbraio 2006, 10:38

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da pinguin »

difesaparcosempione ha scritto: l'hai detto !!  ;D

Ora andiamo per passi ..
Cosa è che non capisci ...
Iniziamo da un pezzetto e continuiamo ...
Sai cosa vuol dire in tanto il carattere pipe ( stanghetta ) | in bash ??

ciao
:)
che reindirizza l'output al comando che c'è dopo la pipe?
tipo

Codice: Seleziona tutto

 ls | grep fir
firefox_cache
firma amici.txt
firma generica.txt
firma ufficio.doc
firma ufficio.txt
firma ufficio.txt~
installazione firefox
Mi piace questo corso passo passo!  :)  (b2b)
Nella scatola era scritto: "Richiede Windows Xp o superiore"
Così ho installato Linux :-)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

vabbuò !
Ora dimmi se sai la differenza con questo construtto ..

ls -l `find . -name "*.txt"`

Però finiremo alle kalende greke!! ( ma io non ho fretta )
Piuttosto dimmi, lo script dell'esecizio l'hai dovuto attivare ? Potrei apporoffittare per farti postare degli output !!

ciao
:)

Attenzione Sabato & Domenica sono senza RETE ( anche volutamente  (rotfl) )
Avatar utente
pinguin
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1066
Iscrizione: mercoledì 15 febbraio 2006, 10:38

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da pinguin »

più o meno ci arrivo
nell'elenco di ls -l trova i file che hanno .txt nel nome
è così?
per gli output ti allego 3 file, siccome gli output a volte sono differenti non ci capisco più niente
...
ma continuiamo pure con il corso che mi piace
ciao e grazie
Allegati
output3.txt
(250 Byte) Scaricato 18 volte
output2.txt
(6.44 KiB) Scaricato 25 volte
output1.txt
(35.12 KiB) Scaricato 27 volte
Nella scatola era scritto: "Richiede Windows Xp o superiore"
Così ho installato Linux :-)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

Strano,
non riesco a scaricare i tuoi 3 .txt !
Potresti inviarmeli via mail ?  :(

ciao
(z)
Avatar utente
pinguin
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1066
Iscrizione: mercoledì 15 febbraio 2006, 10:38

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da pinguin »

ti ho inviato un messaggio personale perchè non ho la tua email
per il download dei txt è strano perchè io riesco a scaricarli (e adesso sono in un altro PC, non in quello da cui ho spedito)
Nella scatola era scritto: "Richiede Windows Xp o superiore"
Così ho installato Linux :-)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

Ciao,
la mie imail è visualizzata nel mio profilo ( non l'ho mantenuta nascosta ! ).

Ritornando allo script ( per farla lunga ....  (z)  )

La filosofia dovrebbe essere questa : ( non ho ancore letto i .txt e quindi non posso essere preciso e ti devi accontentare di pura filosofia)

Non essendo sempre esperti al 1000per1000 di tutto io ho seguito questa strada ..

man dpkg ...
ho visto che dpkg -S sta per
Search for a filename from installed packages.
mentre dpkg -s
Report status of specified pachage.
Quindi lo script si può intravvedere in questo modo

for X in file installato appartenente al pacchetto installato trovato nel sistema

do
stampa la versione del pacchetto a cui appartiene X
done

Adesso da capire è la regola a come si arriva a trovare dei filename partendo dal file /tmp/log  e poi capire ( qui sarà molto + semplice) come visualizzare l'informazione trovata ( echo -n .... ).

ciao
(z)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

Ho letto output1.txt e output3.txt ma questi file se usati non danno nessun risultato.
Nel tuo topic fai riferimento ad output2.txt !
E' possibile averlo ?

Il tuo script ha come comportamento, usando i tuoi txt, quello di terminare senza dare nessuna segnalazione.  ::)
Sennò mi sa che cosi sarà piu complesso ad arrivare ad una soluzione.
Quando hai lanciato lo script in questione ti ricordi cosa era uscito (+o-)

ciao
:(

comunque non ci arrendiamo  (good)
Avatar utente
pinguin
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1066
Iscrizione: mercoledì 15 febbraio 2006, 10:38

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da pinguin »

forse mi sono spiegato male all'inizio
quello script è da lanciare dentro la cartella dove sono i sorgenti di un qualsiasi programma da compilare
la sua funzione dovrebbe essere quella di restituire come output la lista delle dipendenze necessarie alla compilazione (pacchetti il cui nome termina con -dev) e dipendenze necessarie alla installazione
io l'ho lanciato dentro la cartella dove ho i sorgenti del programma claws mail da compilare e l'output che mi restituisce è quello contenuto nei tre file txt che ti ho inviato
Nella scatola era scritto: "Richiede Windows Xp o superiore"
Così ho installato Linux :-)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

oops  :(
... dove posso prendere quei sorgenti ...

comunque lo script attiva ./configure e l'output lo memorizza su un file di output che si chiama /tmp/log.

Okay ?

Io ho preso lo script che mi hai dato ed ho commentato la linea strace -f -o /tmp/log e l'ho provato con gli output che mi hai inviato.

Quindi ho messo un bel # davanti a strace ... e ho modificato open /tmp/log con open output1.txt

Quindi tutto okay ?

Adesso cercavo di capire come mai non dava nessun output ..., gli output che prevedevo fossero usciti dalla linea
echo -n "$x (>=" ........\ ovvero l'istruzione compresa nel ciclo do-done.

Ho un dubbio, in quanto non espertissimo di perl sul significato della regular expression usata in pipe al comando
grep open output1.txt | perl -pe '....................'

Esiste la possibilità che quel comando -pe sia eseguito sul filesystem come dici te e che quindi crea qualcosa da verificare solo con i sorgenti !!

Quindi adesso mi sto documentando sul perl e se mi dici come fare avere i sorgenti. Potresti spedirmi il tar o gz file dei sorgenti ...

ciao
(b2b)

ps : cosa non si fà per 1823 firme di petizione !!
(rotfl)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

dimenticavo di non averti corretto una cosa un po di TOPIC prima

prova ad eseguire
dalla tua home ( visto che ti ho fatto spedire dei file con .txt e quindi so che ci sono)

find . -name "*.txt"
e poi
ls -l `find . -name "*.txt"`

I caratteri apici fanno questo , come visto dai comandi che hai dato:
Portano l'ouput del comando compreso tra apici, volta per volta, riga per riga,  al comando di inizio linea ...

se la find di porta 5 files, legando con ls avrai 5 volte comandato il comando ls.
ciao
(z)
Avatar utente
pinguin
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1066
Iscrizione: mercoledì 15 febbraio 2006, 10:38

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da pinguin »

quei sorgenti li puoi scaricare da qui
http://downloads.sourceforge.net/sylphe ... g_mirror=1

è sui 5 mega per cui non posso spedirlo

ho eseguito l'esercizio con find e credo di aver capito il funzionamento  (b2b)
grazie mille
Nella scatola era scritto: "Richiede Windows Xp o superiore"
Così ho installato Linux :-)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

fatto, ho scaricato e scompattato il tuo clamav.
Nel frattempo mi scarico perldoc e ti farò sapere !!
ciao
(z)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

Abbiamo ripreso il TOPO in mano !!
Domanda !
Questo script l'avrai copiato dalle rete immagino, mi diresti come lo attivi ?
Perchè ho un dubbio. La scritta $1 non so se ha che vedere con il linguaggio perl oppure è il primo parametro dello script.

Mi servirebbe ...

ciao
PS: Dai sono passati meno di 2 mesi ...

:(
Avatar utente
pinguin
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1066
Iscrizione: mercoledì 15 febbraio 2006, 10:38

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da pinguin »

ho inserito il testo in un file vuoto aperto con gedit
l'ho salvato con nome script (grande fantasia) e gli ho dato gli attributi di file eseguibile, dopo di che eseguo
./script
Nella scatola era scritto: "Richiede Windows Xp o superiore"
Così ho installato Linux :-)
Avatar utente
difesaparcosempione
Rampante Reduce
Rampante Reduce
Messaggi: 6031
Iscrizione: giovedì 27 luglio 2006, 19:06
Località: Torino
Contatti:

Re: Mi commentate questo script? (riga x riga cosa fa)

Messaggio da difesaparcosempione »

Dovresti inviarmi o postare il file /tmp/log !
ciao
8)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti