PDA

View Full Version : [Debian] pacchetti, dpkg,aptitute,dselect ecc ecc


barzi
05-10-2007, 10:31
Ciao a tutti.

Volevo sapere che differenza c'è tra i vari apt, aptutude, dpkg, aptitude, dselect in termini pratici (e magari con qualche esempio) che differenza c'è tra tutti questi comandi e perchè usare l'uno al posto di un altro.

Poi una considerazione su dove/cosa/come vengono effettuate le installazioni del sw.

MAC OS X:

Basta fare un copia/incolla dell'applicazione. I file preferenze e tutti i files di gestione vengono messi in cartelle predefinite (anche plug in e quant'altro) e si ha sempre il controllo assoluto di ciò che si installa/disinstalla. Il sistema è SEMPRE pulito e funzionale.

WINDOWS:

C'è solo un file .exe che inizia a buttare files, dll ecc ecc in parti ignote ed praticamente impossibile sapere un'applicazione cosa/dove/come va a mettere. Inoltre si sporca il registro di sistema e dopo un po nn ci si capisce piu niente tra dll files strani plug in ecc ecc.

Debian:

Come ragiona?Ad esempio se voglio cambiare le preferenze di qualche programma dove devo andare a cercare i file di configurazione? Dove mette librerie e quant'altro?Cosa accade passp passo quando vado a fare un apt-get install XXXXX? Oppure se mi compilo un programma dal suo codice sorgente? Una volta compilato il sorgente la cartella contenente i sorgenti e tutti gli altri files posso buttarla?Cosa va mettere nel mio HD e dove lo va a mettere?

Scusate ma abituato con Mac Os X sono abituato a tenere sotto controllo tutte le applicazioni... Vorrei capirci un po di piu anche con Linux (in particolare con la Debian).
Grazie.
:)

Gimli[2BV!2B]
05-10-2007, 20:44
Package managers.
apt: è il tool originale, di uso molto veloce ed estendibile (apt-file per cercare un file particolare in TUTTI i pacchetti, apt-build per compilare da sorgenti creando deb personalizzati, ecc...). Per l'uso quotidiano.

dpkg: può installare pacchetti non provenienti da repositories (memorizzati in una qualche directory locale o da una risorsa montata) ed ha una sintassi più stringata. Per installare deb particolari o creati personalmente.

dselect: strumento di "più alto livello", presenta un frontend se lanciato senza argomenti. Personalmente lo uso solo per creare una lista di tutti i pacchetti installati o per installare partendo da una lista già creata.

Policies di installazione: personalmente considero la scelta Mac buona: tutto ciò che riguarda un programma è chiuso nella sua cartella. Ma questo comporta eventuali sprechi di spazio, con librerie usate da più programmi e presenti in varie cartelle di installazione, non dimenticando la necessità di trovare l'installer da qualche parte...

In Gnu/Linux le distribuzioni coordinano migliaia di pacchetti come una sinfonia per far sì che esista una sola copia di ogni file (al massimo di poche versioni diverse), e che sia possibile conoscerne la posizione con certezza. Questo trasforma il filesystem in un enorme puzzle in cui ogni pezzo è incollato al suo posto e facilmente recuperabile in caso di rari problemi con un semplice "apt-get install --reinstall PACCHETTO".
Puoi sapere dove sono i files installati da un pacchetto senz'altro in Synaptic (proprietà -> files installati), ma credo sia possibile anche in testuale, anche se non ne ho mai avuto bisogno.
Il più grande vantaggio è che ti basta avere una connessione internet e aprire un programma per installare una marea di programmi senza doverli andare a scaricare a mano in chissà quale sito o altro...

Ultimo dettaglio: le configurazioni di tutti i programmi finiscono nella cartella home dell'utente che li usa (sono spesso nascosti iniziando per un punto), mentre quelle di demoni di sistema o programmi fondamentali sono in /etc.

Compilare da sorgenti: raro, raro, raro... in questo caso tutto quanto dovrebbe finire nelle cartelle user relative ai principali rami del filesystem, spesso è meglio tenere i sorgenti per eventualmente rimuovere ciò che si è installato (se quello che ha scritto il programma ha pensato bene di fare un uninstall nel make...) o cercare di capire dove ha messo il tutto.
Se si installano drivers da sorgenti (più comune) spesso creano solo uno o più moduli nella cartella /lib/modules/[versione del kernel].

Per chiudere ecco un piccolo specchietto dell'albero directory in Gnu/Linux con breve introduzione al contenuto. (http://illusionblog.wordpress.com/2007/10/02/struttura-e-gerarchia-delle-directory-su-file-system-gnulinux/)

diabolicus
06-10-2007, 14:31
;19021433']
Puoi sapere dove sono i files installati da un pacchetto senz'altro in Synaptic (proprietà -> files installati), ma credo sia possibile anche in testuale, anche se non ne ho mai avuto bisogno.

giusto per completezza, può tornare utile ;)
dpkg -L nomepacchetto
per i pacchetti non installati bisogna avere il file .deb
dpkg --contents nomepacchetto_versione.deb

Oppure se mi compilo un programma dal suo codice sorgente? Una volta compilato il sorgente la cartella contenente i sorgenti e tutti gli altri files posso buttarla?Cosa va mettere nel mio HD e dove lo va a mettere?

spesso i makefile hanno una sezione uninstall, quindi è possibile disinstallare un programma compilato senza lasciare in giro niente. ma conviene comunque tenere traccia dei cambiamenti con tool appositi, per esempio checkinstall che su richiesta crea pacchetti deb, rpm, tar.gz da installare in maniera pulita. in questo caso la dir dei sorgenti puoi rimuoverla senza problemi.