[Proposta] Ricerca tra i files contenuti nei pacchetti

Postate qui se avete consigli per migliorare i pacchetti disponibili in questo sito o se avete problemi con installazione, funzionamento o altro.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
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.
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

[Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da joe »

A volte capita di installare un programma, e tentare di eseguirlo senza successo a causa per esempio della mancanza di librerie. A questo proposito, è facile vedere quali mancano grazie al comando:

ldd /usr/bin/programma |grep "not found"

A quel punto sapiiamo quali files mancano, ma non conosciamo ancora a quale pacchetto apperengono tali files e quindi occorre fare qualche ricerca per capire cosa installare.

Porto ad esempio un sito che permette di risolvere agevolmente (si potrebbe anche fare qualcosa di meglio forse ma va bè)questo problema:
http://packages.slackware.it/

A questo indirizzo vi è un motore di ricerca che permette di trovare il pacchetto a cui appartiene un certo file (pattern di ricerca). Da ciò risulta piuttosto semplice capire quale sia il pacchetto da installare in caso di librerie mancanti.
Purtroppo il sito sopracitato consente la ricerca tra i soli pacchetti ufficiali, quindi se la libreria necessaria sta in un pacchetto per esempio di slacky.eu, non si trova....bisognoa ricorrere a google...che comunque restituisce sempre qualche risultato.

Mi chiedevo se si potesse predisporre un motore di ricerca del genere anche per il repository di slacky.eu.
Francamente io non ho esperienza di database e non conosco le problematicità che potrebbero venirne fuori.

A me piacciono paarecchio le cose semplici...
E l'idea che mi viene per realizzare un sistema del genere potrebbe passare per la registrazione su semplici files di testo dei files presenti in un pacchetto.
Si potrebbe pubblicare nel repository un grosso file di testo da scaricari in locale:
su ogni riga troviamo:

nome_software/usr/bin/file1
nome_software/usr/lib/file2
ecc

insomma in pratica la stampa dell'explodepkg di quel pacchetto. La cosa importante è appunto che il "campo" nome_software ci sia.
Avendo in mano un tale file diventa semplice dare:
grep lbreria_mancante slacky.repo.files.txt

e salta fuori il "nome_software" che corrisponde al pacchetto da installare per avere la libreria mancante.

Insomma, io lancio l'idea, e ho pensato di aggiungere qualche qualche proposta pratica. Che non è detto essere la scelta migliore.
Ho postato in questa sezione perchè alla fine rigurada il repo dei pacchetti e soprattutto perchè occorrerebbe aggiungere eventualmente tale file di testo, magari ben compresso al repo stesso.

Esempio buttato lì:
In una directory ho dei pacchetti tgz, voglio creare un file di testo contente l'explode dei pacchetti: Nel mio caso ho solo due pacchetti rtorrent e libtorrent:

Codice: Seleziona tutto

$ ls
libtorrent-rt-0.11.9-i486-1bj.tgz  rtorrent-0.7.9-i486-1bj.tgz
$ for PKG in $(ls *tgz); do tar -tzf $PKG| sed 's/^/'$PKG'   /'; done > list.txt
$ cat list.txt
libtorrent-rt-0.11.9-i486-1bj.tgz    ./
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/libtorrent-rt-0.11.9/
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/libtorrent-rt-0.11.9/NEWS
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/libtorrent-rt-0.11.9/TODO
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/libtorrent-rt-0.11.9/README
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/libtorrent-rt-0.11.9/slack-desc
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/libtorrent-rt-0.11.9/AUTHORS
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/libtorrent-rt-0.11.9/INSTALL
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/libtorrent-rt-0.11.9/libtorrent-rt.SlackBuild
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/libtorrent-rt-0.11.9/ChangeLog
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/doc/libtorrent-rt-0.11.9/COPYING
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/lib/
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/lib/libtorrent.so.10.0.8
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/lib/libtorrent.la
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/lib/pkgconfig/
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/lib/pkgconfig/libtorrent.pc
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/file_manager.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/file_utils.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/file_list.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/block_transfer.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/block_list.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/transfer_list.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/file.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/file_list_iterator.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/piece.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/data/block.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/peer/
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/peer/peer_info.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/peer/peer_list.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/peer/client_info.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/peer/client_list.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/peer/peer.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/resume.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/download.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/tracker_list.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/error.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/event.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/chunk_manager.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/bitfield.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/common.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/hash_string.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/http.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/object_stream.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/path.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/poll.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/rate.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/poll_kqueue.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/poll_select.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/object.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/poll_epoll.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/torrent.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/exceptions.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/tracker.h
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/include/torrent/connection_manager.h
libtorrent-rt-0.11.9-i486-1bj.tgz    install/
libtorrent-rt-0.11.9-i486-1bj.tgz    install/doinst.sh
libtorrent-rt-0.11.9-i486-1bj.tgz    install/slack-desc
libtorrent-rt-0.11.9-i486-1bj.tgz    install/slack-required
rtorrent-0.7.9-i486-1bj.tgz    ./
rtorrent-0.7.9-i486-1bj.tgz    usr/
rtorrent-0.7.9-i486-1bj.tgz    usr/bin/
rtorrent-0.7.9-i486-1bj.tgz    usr/bin/rtorrent
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/rtorrent-0.7.9/
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/rtorrent-0.7.9/TODO
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/rtorrent-0.7.9/rtorrent.rc
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/rtorrent-0.7.9/README
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/rtorrent-0.7.9/faq.xml
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/rtorrent-0.7.9/slack-desc
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/rtorrent-0.7.9/rtorrent.SlackBuild
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/rtorrent-0.7.9/AUTHORS
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/rtorrent-0.7.9/INSTALL
rtorrent-0.7.9-i486-1bj.tgz    usr/doc/rtorrent-0.7.9/COPYING
rtorrent-0.7.9-i486-1bj.tgz    usr/man/
rtorrent-0.7.9-i486-1bj.tgz    usr/man/man1/
rtorrent-0.7.9-i486-1bj.tgz    usr/man/man1/rtorrent.1.gz
rtorrent-0.7.9-i486-1bj.tgz    install/
rtorrent-0.7.9-i486-1bj.tgz    install/slack-desc
rtorrent-0.7.9-i486-1bj.tgz    install/slack-required
Se avessi installato sol rtorrent e al lancio mi dicesse che manca "libtorrent.so.10.0.8", mi basterebbe dare:

Codice: Seleziona tutto

$ grep libtorrent.so.10.0.8 list.txt
libtorrent-rt-0.11.9-i486-1bj.tgz    usr/lib/libtorrent.so.10.0.8
Per essere sicuro che installando il pacchetto libtorrent-rt otterrò il file mancante.
Ovviamente il pattern di ricerca da usare con grep dovrà essere ponderato, avrei per esempio potuto cercare solo libtorrent.

Lascio a voi commenti sull'utilità/fattibilità della pubblicazione di un file di testo del genere per il repository (magari un file per ogni release di slackware ospitata qui). O per altre proposte alternative.

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da conraid »

MANIFEST.bz2

Avatar utente
targzeta
Iper Master
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: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da targzeta »

Qui su slacky esiste questo script:
http://www.slacky.eu/wikislack/index.ph ... =Fmanifest

che fa nel file MANIFEST.bz2 quello che chiedi. Se scarichi i MANIFEST.bz2 da altri repository, tipo quelli di slacky puoi fare la ricerca anche su quelli. In pratica se in locale hai i file:

slackware_MANIFEST.bz2
slacky_MANIFEST.bz2

puoi effettuare la ricerca per il file 'casa' su entrambi i file con:

Codice: Seleziona tutto

fMANIFEST -f slackware_MANIFEST.bz2 casa;
fMANIFEST -f slacky_MANIFEST.bz2 casa;
Ovviamente nessuno ti vieta di scriverti alias del tipo: "slacky_search" o "slackware_search" e quindi di tenerti tutti i MANIFEST.bz2 in una directory ben specifica.

Inoltre nessuno ti vieta di modificare lo script inserirgli degli URL in cui andare a beccare il MANIFEST.bz2 così da non dovertelo scaricare ogni giorno.

Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da joe »

È il caso di dire Beata Ignoranza...
Magari cambio il titolo: "la scoperta dell'acqua calda".

Grazie ad entrambi per la risposta. Considererò lo script di cui parlavi.
A presto! :-D

Avatar utente
gohanz
Staff
Staff
Messaggi: 5832
Iscritto il: mar 30 nov 2004, 0:00

Re: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da gohanz »

Ma sul motore di ricerca di Slacky, questa funzionalità è applicabile?

Avatar utente
ulisse89
Packager
Packager
Messaggi: 643
Iscritto il: sab 17 gen 2009, 12:53
Nome Cognome: Riccardo
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: Xfce
Località: Bologna

Re: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da ulisse89 »

Grazie a joe che hai aperto questo topic e a chi ha risposto. Anch'io ho scoperto solo adesso questa cosa del MANIFEST + relativo script. L'ho sempre visto, ma non mi sono mai domandato cosa fosse. :D Infatti mi era capitato spesso di andare alla ricerca di librerie mancanti su google senza successo.
Ultima modifica di ulisse89 il ven 15 mag 2009, 20:40, modificato 1 volta in totale.

Avatar utente
teox99
Linux 3.x
Linux 3.x
Messaggi: 738
Iscritto il: ven 25 lug 2008, 14:54
Slackware: 13.37
Desktop: KDE - Xfce
Località: Roma[Eur]
Contatta:

Re: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da teox99 »

a fare si puo' fare tutto!
ho sviluppato un motore di ricerca dei paccetti di slack che comunque ritorna le dipendenze dei paccheti (segue slack-required di ogni /src) (e come fa' anche il motore di slacky.eu)
il pacchetto dipendente puo' essere poi cercato o nei repo base o in slacky.eu
http://www.teoxonline.com/utils/sse/

per una motore di ricerca piu' evoluto come nel caso di MANIFEST cosa che sto cercando di implementare a breve,
bisognera' vedere la performance della ricerca (php su srv remoto) dato che il file di testo e' grande circa 50Mb! bah vedremo!

vi tengo aggiornati

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da joe »

spina ha scritto: Ovviamente nessuno ti vieta di scriverti alias del tipo: "slacky_search" o "slackware_search" e quindi di tenerti tutti i MANIFEST.bz2 in una directory ben specifica.
Per pignoleria...Tenute presenti le consuetudini del file system di linux ed in particolare di slackware.... dove slveresti i files MANIFEST.bz2 ?
Tipo in /var/cache/fmanifest potrebbe andare?

Inoltre nessuno ti vieta di modificare lo script inserirgli degli URL in cui andare a beccare il MANIFEST.bz2 così da non dovertelo scaricare ogni giorno.
Mmmm.... potresti spiegarti meglio circa questa frase?
Cosa intendevi di preciso?

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da danix »

joe ha scritto:
spina ha scritto: Ovviamente nessuno ti vieta di scriverti alias del tipo: "slacky_search" o "slackware_search" e quindi di tenerti tutti i MANIFEST.bz2 in una directory ben specifica.
Per pignoleria...Tenute presenti le consuetudini del file system di linux ed in particolare di slackware.... dove slveresti i files MANIFEST.bz2 ?
Tipo in /var/cache/fmanifest potrebbe andare?

Inoltre nessuno ti vieta di modificare lo script inserirgli degli URL in cui andare a beccare il MANIFEST.bz2 così da non dovertelo scaricare ogni giorno.
Mmmm.... potresti spiegarti meglio circa questa frase?
Cosa intendevi di preciso?
Ti dico la mia...
Potresti strutturare lo script in modo che cerchi prima nella copia locale e se non trova nulla prova ad aggiornare il MANIFEST.bz2 scaricandolo da internet (con wget o quello che ti pare)...
Io farei ancora diversamente, cioè prima di procedere a riscaricare il MANIFEST che è bello pesante, istruirei lo script a controllare prima il changelog, basta scaricare una copia locale la prima volta, e in seguito ogni volta che si rende necessario il download faccio scaricare prima il changelog, se alla prima riga riporta una data successiva a quella della copia locale allora procedo a scaricare il MANIFEST, altrimenti no...

spero di essermi spiegato chiaramente :D
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
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: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da targzeta »

Non saprei dove poterteli salvare, io ho messo il MANIFEST.bz2 della Slamd64 in /tmp e lo sovrascrivo ad ogni aggiornamento (seguo la current). Poi mi sono fatto questo alias:

Codice: Seleziona tutto

alias fMANIFEST.sh='fMANIFEST.sh -f /tmp/MANIFEST.bz2'
così dovunque mi trovo posso lanciare fMANIFEST.sh per cercare il pacchetto (ovviamente in questo modo cerco solo nel "repository" ufficiale).

L'idea di danix non è cattiva, prima fai una ricerca sui file locali, poi se non trovi nulla controlli se magari il MANIFEST.bz2 locale non sia datato, quindi se è così te lo riscarichi. Solo io suggerirei di usare sempre wget sullo stesso file (ad esempio il MANIFEST.bz2 di GSlacky-12.0 è abbastanza piccolo da fare prove), scarichi sempre il file con:

Codice: Seleziona tutto

data=$(date -r MANIFEST.bz2 -R); wget --header="If-Modified-Since: $data" http://repository.slacky.eu/gnome-slacky-12.0/MANIFEST.bz2
in questo modo, se il file non esiste lo scarichi, se esiste lo scarichi solo se è stato modificato.
Prova ad eseguire i comandi qui sopra due volte di seguito e lo vedrai, la seconda volta wget dovrebbe uscire con "304: Not Modified".

Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da danix »

Emanuele, ma usare il changelog non è meglio?? Alla fine se cambia quello cambia il manifest, se nel primo viene notificata l'aggiunta di un pacchetto questo risulterà nel manifest, se verrà rimosso questo verrà tolto dal manifest, quindi in entrambi i casi è meglio riscaricarlo... e il changelog e solo pochi KB...


o mi sfugge qualcosa??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
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: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da targzeta »

danix ha scritto:...o mi sfugge qualcosa??
Credo di si, usando il wget per come l'ho postato prima non riscarichi il MANIFEST.bz2, a meno che il file non sia stato effettivamente modificato.

Io avevo capito che tu volessi scaricare il ChangeLog per verificare se il MANIFEST.bz2 fosse cambiato e se si, allora riscaricare il MANIFEST.bz2. Il mio comando fa la stessa cosa senza scaricare il ChangeLog.txt.
Provalo, basta eseguirlo due volte, la prima volta wget scarica il file perchè nella directory locale non è presente, la seconda invece non lo scarica, visto che sul server il file non è stato modificato.

Emanuele

Offtopic: P.S. D'ora in poi mi firmerò sempre Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da conraid »

Emanuele, se non ho capito male quel che vuoi fare basta wget -N url
io nel mio script che aggiorna il changelog per slackers.it ho
/usr/bin/wget -q -t 5 -N ftp://ftp.slackware.com/pub/slackware/s ... ngeLog.txt

-q non mostra niente
-t 5 per fare 5 tentativi
-N mi scarica il file sono se nuovo

Avatar utente
targzeta
Iper Master
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: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da targzeta »

conraid ha scritto:Emanuele, se non ricordo male basta wget -N url
Si, l'ho provato ora, così è decisamente più carino.
Nel man di wget non riuscivo a trovare niente, allora sono andato a memoria sul --header.

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: [Proposta] Ricerca tra i files contenuti nei pacchetti

Messaggio da joe »

Dunque, il comando wget -N url, ha una certa "eleganza" in effetti.
Ma mi resta un dubbio...
Abbiano N repositories che ci forniscono N files nominati sui rispettivi repo MANIFEST.bz2. Quindi hanno tutti lo stesso nome.

In locale mi piaceva predisporre una "cache" in cui stoccare questi files di testo.
Evidentemente nella cache ciascun MANIFEST.bz2 dovrebbe avere un nome significativo in base al repo cui appartiene tipo:

Codice: Seleziona tutto

../var/cache/finder
slacky-MANIFEST.bz2
linuxpackages-MANIFEST.bz2
official-slackware-MANIFEST.bz2
official-extra-MANIFEST.bz2
Ora il problema che si presenta volendo usare il flag -N di wget è che tale flag non è compatibile con il flag -O.
Stavo cercando di costruire un piccolo script per aggiornare questa cache e invocare opportunamente lo script di Spina.
In pratica volevo predisporre un file di configurazione del tipo:

Codice: Seleziona tutto

cat /etc/finder/repo.conf
slacky repository.slacky.eu/blabla/MANIFEST.bz2
linuxpackages repository.linuxp.net/blabla/MANIFEST.bz2
official-slackware http://mirror2.mirror.garr.it/mirrors/Slackware/blabla/slackware/MANIFEST.bz2
Ora per ogni coppia "nome repo-url" si potrebbe pensare di usare il comando:
wget -N -O $CACHE/$REPONAME-MANIFEST.bz2 $REPOURL

Con l'idea di ottenere i files nella cache nominati in modo razionale ed esplicativo e allo stesso tempo sfruttare il timestamp del file remoto.
Ma come dicevo sopra i flag -N e -O non sono compatibili.
C'è qualche modo per farli convivere pur rinominando il file locale?

Mi viene in mente che sarebbe possibile strutturare la cache in modo diverso: invece di mettere i files rrinominati nella stessa directory di cache, creare per ogni file una directory nominata opportunamente che contenga il relativo file MANIFEST.bz2 senza rinominarlo.
Altrimenti volendo tenere una cache a directory unica mi pare necessario ricorrere al flag --header di wget... che penso sia compatibile con il flag -O di rinomina.

Avete opinioni e idee in merito, nuove alternative ecc?

Rispondi