Repository 32bit  Forum
Repository 64bit  Wiki

Slackware Package Search Engine

Da Slacky.eu.


Slackware Package Search Engine

Slackware Package Search Engine, abbreviato SSE, è un progetto iniziato tre anni fà, la prima versione poteva ricercare una stringa direttamente nel FILELIST.TXT presente nei repository della distribuzione e trovare il nome di un pacchetto partendo dal nome di un file.

Questo tipo di approccio comportava un dispendio minimo di procedure e spazio fisico, ma una flessibilità molto bassa accompagnata da un alto dispendio di risorse computazionali. La ricerca infatti prevedeva il caricamento in memoria ad ogni ricerca, di tutto il file FILELIST.TXT, tramite un ciclo sequenziale venivano elaborati i contenuti remoti del file src/slack-required, e src/slack-desc e stampata la lista finale in HTML.

... questa è storia passata!

La nuova versione, riscritta in poco tempo completamente da capo, ora indicizza tutte le informazioni di un pacchetto direttamente in un apposito DataBase MySql. Un crontab automatizza ogni tot. ore al giorno un controllo del file PACKAGES.TXT contenuto nei repository (mirror) della distribuzione, aggiornando il DB con i nuovi pacchetti disponibili.

Il front-end grafico è stato pensato tenendo in mente dei punti essenziali per una buona esperienza di navigazione da parte dell'utente: semplicità, velocità e funzionalità. L'utilizzo, diciamo alla "google", consente all'utente di ricercare il nome del pacchetto in tutto il DB e poi in seguito di raffinare le sue ricerche, l'algoritmo propone una query strutturata in modo che per primo siano visualizzati i risultati più affini alla ricerca, in seguito tutti quelli che presentano parte della stringa nel nome del pacchetto e solo infine quelli dove compare nella descrizione la stringa ricercata.

La tecnologia web usata è ajax (Asynchronous HTML over HTTP) in questo modo ho dato la possibilità all'utente di effettuare la ricerca già mentre stà scrivendo la sua stringa nell'apposito box testuale. I repositories indicizzati sono solo quelli che ho reputato più stabili e aggiornati, sono inclusi slackbuilds da fonti ufficiali, e solo quelli più utili e rari da repo esterni, evitando inutili doppioni.

Ho cercato di classificare i vari repo in

  • official: pacchetti supportati ufficialmente
  • universe: pacchetti mantenuti dalla comunità di slackware.com
  • slackbuild: link alla pagina dello slackbuild. Ufficiali (slackbuilds.org) e altri
  • salix: pacchetti mantenuti dalla comunità di salix-os (su richiesta)
  • armedslack: pacchetti mantenuti dalla comunità armedslack

... ora abbiamo una base!

Il passo successivo è stato quello di dare un supporto concreto all'utente neofita o velocizzare il lavoro di quelli più esperti, nasce il progetto Slackware Package Tracker. SPT cerca di risolvere le dipendenze (tanto care al mondo slack) in modo non invasivo.

È stato creato un feedback diretto con il sistema slackware dell'utente usando un piccolo script di bash, che tramite le curl aggiorna il repository personale dell'utente direttamente online, in questo modo, tramite login è possibile far interagire SSE con la lista dei pacchetti di ogni macchina di ogni singolo utente; in questo modo durante la ricerca, dalla lista delle dipendenze dei pacchetti vengono eliminate quelle già installate e segnalate quelle mancanti. È possibile inoltre usare un apposito bottone che provvederà a listare ricorsivamente tutte le dipendenze necessarie del pacchetto. Nell'ultimo aggiornamento è stato inserito anche un controllo di versione, in questo modo l'utente potrà verificare lo stato di aggiornamento dei propri pacchetti installati.

SSE e SPT sono parte del progetto www.slackabduction.com, una raccolta in tempo reale di feed aggiornati dal mondo slackware.

Il mio obiettivo è quello di fare un pò di ordine nel mondo slackware, e cercare di riunire tutte le voci che si battono quotidianamente per la causa, cercando di svecchiare e rivestire al meglio possibile i contenuti della nostra amata distribuzione, sperando di contribuire nella stessa misura di quanto mi è stato dato.

By Teox99

Strumenti personali
Namespace

Varianti