sorgenti—->.deb

Gentilmente furato a Trevino ;)

http://3v1n0.tuxfamily.org/blog/creare-pacchetti-debian-a-partire-dai-sorgenti-guida-rapida/ 

Una delle caratteristiche vincenti delle più valide distribuzioni debian sono sicuramente i pacchetti. I pacchetti (in generale) sono di fatto degli archivi compressi contenenti tutti i files di un applicazione (eseguibili, files di configurazione, documentazione…) ed installabili in modo molto semplice.
In particolare quelli debian si dividono in pacchetti Sorgenti e Binari, quando parlo di pacchetti, personalmente, faccio riferimento a quest’ultimi (binari) caratterizzati dall’estensione .deb e dal fatto di contenere principalmente files già compilati per una determinata architettura e già pronti per essere installati in una macchina con pochi click (o un semplice comando da shell se preferite ) ). Per informazioni più dettagliate guardate la guida di debianizzati , o la guida ufficiale debian.

Senza stare a tirar fuori cose troppo complicate o specifiche, i pacchetti debian sono così utili non solo perché permettono di installare in modo rapido e semplice qualsiasi software senza doverselo compilare, ma anche perché grazie ad un database locale, ciascun PC è sempre in grado di monitorare i pacchetti installati, le versioni disponibili, le librerie dipendenti e quindi di controllare lo stato totale del proprio PC.
Ma secondo me c’è di più… Voglio dire, se uno scarica un software non pacchettizzato e se vuole installarlo dai sorgenti ricorrendo ai classici ./configure && make && sudo make install (o con relativi front-end grafici come Kcofigure o Kompile), tutte le volte che si installa qualcosa si butta nel nostro hard disk una marea di dati che il più delle volte non rintracciamo e che possiamo scordarci di eliminare (al momento opportuno) se non abbiamo mantenuto un log oppure se il Makefile supportava il make uninstall o simili.
Insomma, semplicemnte il risultato è una marea di files dispersi nel nostro HD non monitorati e difficili da cancellare; magari il sistema continua a funzionare come un missile, ma di sicuro lo spazio libero segnalato dal buon df col tempo cala e parecchio… )
Viceversa, se si hanno dei pacchetti .deb, grazie al database della nostra distro debian(-based) possiamo in modo facile e trasparente sapere quale file appartiene al pacchetto X e quale a quello Y, e quindi con un semplice comando da shell (o un paio di click) possiamo disinstallare il tutto riprendendoci il nostro spazio in totale sicurezza… )

Detto questo, qual’è la soluzione? Facile! Costruiamoci da soli i pacchetti .deb che ci servono!

Operazioni Preliminari

Per poter compilare un qualsiasi software vi serviranno inizialmente molti pacchetti di base, è normale che all’inizio avrete un sacco di errori in fase di configurazione, più che di compilazione, poi pian piano diminuiranno sempre col tempo, via via che vi fate una bella scorta dei pacchetti più importanti. Ad ogni modo quando avrete un qualche errore per mancanza di pacchetti, vi consiglio di cercare su google direttamente la stringa dell’errore (semmai unita alla parola «debian» o «ubuntu» o «kubuntu» in questo caso), oppure di rivolgervi al sistema di ricerca nei pacchetti di ubuntu.com ;) .

Ad ogni modo, nel nostro caso, vi indicherò solamente i pacchetti fondamentali per fare dei pacchetti debian, da shell dovete dare il seguente comando:

  • sudo apt-get install devscripts dh-make make build-essential dpkg apt

Una volta installato quanto sopra dovrete essere a posto per quanto “mi” riguarda… Semmai chiedete!

Istruzioni

Vi dico subito che la via che intraprenderemo non sarà certo la più “ortodossa” e che magari non è troppo da guru, ma semplicemente è la più facile e veloce da seguire. Magari non funzionerà al 100% ma con maggior parte dei sorgenti andrà perfettamente (i problemi ci sono quando non c’è un Makefile o qualche volta quando manca il configure). Comunque… Il metodo per creare il pacchetto è assolutamente banale:

  • Estraete i vostri sorgenti che saranno compressi in un archivio .tar.gz o .tar.bz2 in una cartella a sé stante, in modo tale che i files Makefile e (se presente) configure si trovino direttamente all’interno; il nome di questa cartella è molto importante e deve rispecchiare il seguente stile: nomeprogramma-versione.
    Attenzione
    , perché nomeprogramma deve essere tutto in minuscolo e può contenere solo caratteri, numeri, punti (.), più (+) o meno (-), mentre versione deve iniziare con un numero seppur i caratteri successivi possono contenere anche caratteri, punti… Quindi, se quanto detto non viene rispecchiato, onde evitare warning & co., vi consiglio di rinominare la vosta directory.
  • Entrate nella cartella suddetta con il classico: cd nomeprogramma-versione
  • Date il seguente comando: dh_make -s -e nick@provider.com -n –copyright gpl

    Il comando dh_make serve a creare una sottocartella ./debian/ “standard” contenente tutte le impostazioni generali per creare un pacchetto .deb che verranno poi integrate nei passi successivi, un file .deb contiene infatti due archivi, uno (data.tar.gz) contenente i dati puri da estrarre nel vostro filesystem, mentre l’altro (control.tar.gz) contenente le informazioni sul pacchetto ed i dati dei files presenti e che permette di beneficiare della vera forza dei pacchetti (ossia l’aspetto “gestionale”).

    I parametri indicati sono opzionali a dire il vero, cmq vediamo di spiegarli:
    -s serve ad indicare che state creando un pacchetto per un programma singolo (se non è il caso omettetelo, vi verranno chieste dopo altre informazioni);
    -e nick@provider.com vi consente di impostare la vostra email (può essere utile solo se ridistribuite il pacchetto);
    -n serve a dire al dh_make di non fare una copia di backup della cartella dei sorgenti prima di procedere alla creazione della cartella ./debian/. Se non avete fatto modifiche al codice e se avete sempre l’archivio iniziale non ha senso crearvi un backup (specie se avete parecchi MB di soergenti), ad ogni modo se omettete questo parametro vi troverete una cartella denominata nomeprogramma-versione.orig in più in ../ (ossia al livello superiore);
    –copyright gpl serve invece a definire la licenza che copre il software da “pacchettizzare”. Le possibliità sono gpl, lgpl, artistic, bsd (se non la sapete omettetela pure, specie se il pacchetto è per “uso personale” ;) );
    gli altri parametri li vedete facendo dh_make –help

  • Se non dovete ridistribuire il vostro pacchetto quanto fatto dal dh_make andrà benissimo altrimenti dovrete rivedere la configurazione del pacchetto, per farlo aprite con un qualsiasi editor di testo il file ./debian/control ed editatelo. Fondamentalmente vi dovrebbe bastare la modifica della categoria o della Descrizione… E’ tutto molto intuitivo, ad ogni modo per configurazioni più complete leggetevi questo tutorial.
  • Avviate la configurazione e la compilazione: Se dovete passare qualche comando di configurazione particolare (tipo la directory di una libreria o le opzioni di ottimizzazione, vedete la documentazione o l’–help del configure per maggiori informazioni) al file configure, allora avviate il seguente comando:

    ./configure –OPZIONE1=VALORE1 –OPZIONE2=VALORE2 …

    Ad i vostri valori, onde non creare problemi di incompatibilità, dovrete comunque aggiungere anche altri parametri definiti altrimenti in modo automatico:

    CFLAGS=”-Wall -g -O2″ ./configure –host=i486-linux-gnu –build=i486-linux-gnu –prefix=/usr –mandir=\${prefix}/share/man –infodir=\${prefix}/share/info

    Che quindi diventerà (nel caso vogliate includere parametri personali):

    CFLAGS=”-Wall -g -O2″ ./configure –host=i486-linux-gnu –build=i486-linux-gnu –prefix=/usr –mandir=\${prefix}/share/man –infodir=\${prefix}/share/info –OPZIONE1=VALORE1 –OPZIONE2=VALORE2

    Se altrimenti non dovete, come nella maggior parte dei casi, passare nessun parametro alla configurazione o se non esiste il file di configurazione avviate direttamente la compilazione e tutti i processi di creazione del pacchetto, ebbene questo si fa con il seguente comando: debuild binary

    In realtà il comando è solo debuild mentre binary è un parametro che serve ad indicare allo script di creare solo un pacchetto binario (se volete anche ricomprimere i sorgenti e binari creati omettetelo pure…). A questo punto verranno eseguiti tutti gli scripts del pacchetto devscripts necessari alla configurazione (se non l’avete fatta prima), alla compilazione, all’analisi delle dipendenze e alla compressione dei files in un file denominato nomeprogramma-versione_architettura.deb che, se andrà tutto bene, troverete nella cartella ../ (livello superiore)

  • Fatto! Ebbene, se non avete notato problemi il vostro pacchetto è pronto e potrete installarlo col semplice comando: sudo dpkg -i ../nomeprogramma-versione_architettura.deb

Esempio

Per facilitarvi (ulteriormente) il tutto vi mostro un esempio… Tutto questo l’ho ottenuto creando il pacchetto di aMule 2.1.0.

  • Estraete il file aMule-2.1.0.tar.bz2 che creerà una cartella ./aMule-2.1.0/ e che per quanto detto sopra dovrete rinominare in ./amule-2.1.0/
  • Accedete a ./amule-2.1.0/ da shell con cd amule-2.1.0
  • Ora, per nel mio caso ho utilizzato una configurazione ottimizzata come indicato nell’articolo apposito, quindi ho dato un comando ./configure mio, ma in questo caso facciamo tutto con le impostazioni predefinite dagli sviluppatori di aMule.
  • Dare il comando dh_make -s -e trevi55+public@gmail.com -n –copyright gpl
  • Poiché volevo rendere pubblico ho modificato con un editor il mio file ./debian/control aggiungendovi una descrizione (ricordate che ogni riga di descrizione deve iniziare con uno spazio o una tabulazione) e modificando la versione in 2.1.0-0ubuntu1 come è consuetudine per far capire la distribuzione di base.
  • Quindi ho avviato la compilazione con debuild binary.
  • Dopo «qualche» minuto ho avuto l’output atteso dpkg-deb: costruisco il pacchetto `amule’ in `../amule_2.1.0_i386.deb’. ed il mio pacchetto era nato!
  • Ho installato il pacchetto con sudo dpkg -i amule_2.1.0-0ubuntu1_i386.deb e tutto era funzionante!

Mi auguro che questa guida che doveva essere breve P vi abbia aiutato!

CIAO

AVG Antivirus su Ubuntu

Gentilmente copiato da sudoaptget.wordpress.com …. a cui va tutta la mia stima!

Per scaricare il pacchetto .deb andiamo su questa pagina e scarichiamo il pacchetto.

A questo punto lo installiamo.

Ho notato che lanciandolo come utente normale non riesce ad effettuare l’aggiornamento delle firme dei virus, per ovviare ha questo problema in modo immediato, vi consiglio di lanciare il programma testualmente come utente root.

Per effettuare l’aggiornamento scrivete da terminale.

sudo avgupdate -o

dando da terminale sudo avgupdate -h , otteniamo un manuale in linea delle opzioni utili per l’aggiornamento eccovi una lista:
OPZIONI:
-o, –in linea aggiornamento in linea da Internet
-f, –non in linea aggiornamento non in linea da PERCORSO o ELENCO
-d, –download download dei file di aggiornamento
-p, –priorita NUM
NUM rappresenta il tipo di aggiornamento
2 – aggiornamento prioritario
3 – aggiornamento consigliato
4 – aggiornamento facoltativo
-c, –FILE di configurazione
utilizza altro file di configurazione
-i, –no-diff ignora file diff binari
-b, –no-backup non creare file di backup
-n, –no-progress non visualizzare informazioni di avanzamento
-l, –no-log non creare file registro
-a, –no-daemons non riavviare Deamons
-m, –complete solo file di aggiornamento completi
-r, –restore ripristina versione precedente
-v, –version visualizza versione
-h, –help visualizza la Guida ed esci

Il comando per effettuare la scansione è questo:
sudo avgscan -smart /home/proprio utente

Come per il comando precedente digitando sudo avgscan -h si ottiene una lista delle principali opzioni -scan Controllo scansione /percorso,percorso/
-heur Analisi euristica /percorso,percorso/
-exclude Escludi dalla scansione percorso o file
-@ File comando /nome file /
-ext controlla queste estensioni /ad esempio, EXT=*/
-noext non controllare queste estensioni /ad esempio, NOEXT=JPG/
-smart Scansione intelligente
-arc controlla archivi
-rt controlla compressioni run-time
-clean pulisci automaticamente
-macrow riporta macro
-pwdw Rapporto sui file protetti da password
-ignlocked Ignora file bloccati
-report Rapporto sul file /nome file /
-repappend Allega al file rapporto
-repok riporta file non infetti come OK
-stoplevel Sospensione rilevamento /1-n/
-h Visualizza la Guida sull’argomento
–help Visualizza la Guida sull’argomento

Basta stock

gentilmente rubato a divilinux.wordpress.com

mi faceva troppo gola!

Il vostro Notebook ha un Hard disk che allo spegnimento/accensione lancia qualche rumorino tipo Stock!!!(84)?..nessun problema:

Workaround

* Creiamo un file di testo:

sudo kate /etc/init.d/hdd-shutdown

* Inseriamo il seguente codice:

#!/bin/sh
echo 1 > /sys/class/scsi_disk/0\:0\:0\:0/stop_on_shutdown

Se abbiamo piu’ directory in /sys/class/scsi_disk bisogna capire quale si riferisca all’hard disk interno:
ESEMPIO (nel mio caso ho un solo hdd interno e un ipod collegato.. in questo momento)

/sys/class/scsi_disk/3:0:0:0/device

$ cat model
iPod

Mentre il disco fisso e’:

/sys/class/scsi_disk/0:0:0:0/device

$ cat model
ST9100825A

* Rendiamo eseguibile il txt-script con:

sudo chmod +x /etc/init.d/hdd-shutdown

* Creiamo un link simbolico al file di runlevel:

sudo ln -s /etc/init.d/hdd-shutdown /etc/rcS.d/S00hdd-shutdown

NB: Nel caso di piu’ Hard disk, bisogna aggiungere allo script una riga per ognuno di essi.