aptitude
è attualmente l'interfaccia preferita per APT, l'Advanced
Package Tool. Ricorda quali pacchetti avete deliberatamente installato e quali
in base alle dipendenze; questi ultimi vengono disinstallati automaticamente da
aptitude
queo non sono più necessari ai pacchetti installati
deliberatamente. Ha funzionalità avanzate di filtro sui pacchetti, ma possono
essere difficili da configurare.
synaptic
è attualmente l'interfaccia grafica Gtk preferita per
APT. Le sue funzionalità di filtro sono più facili da usare rispetto ad
aptitude
. Ha anche il supporto sperimentale per le Debian Package Tags
.
Per ridurre il carico sui depositi Debian e per velocizzare i vostri download, dovreste prendere i pacchetti dai mirror Debian.
Se dovete installare lo stesso pacchetto su più macchine sulla vostra rete
locale, impostate un proxy HTTP locale useo squid
per i pacchetti
scaricati con APT. Impostate, se necessario, la variabile d'ambiente
http_proxy, oppure il valore di http in
/etc/apt/apt.conf
.
Sebbene l'a funzionalità di pinning di APT, descritta in
apt_preferences(5)
sia potente, i suoi effetti possono essere
difficili da comprendere e gestire. Consideratela una Funzione Avanzata.
L'uso del metodo descritto in chroot
, Sezione 8.6.35 è
preferibile per assicurare al contempo stabilità del sistema ed accesso alle
versioni più recenti del software.
Questo capitolo fa riferimento ad un sistema successivo a Woody Alcune funzionalità potrebbero richiedere un sistema Sarge o successivo.
Se la lettura di tutta la documentazione per gli sviluppatori è troppo per voi, leggete questo capitolo per primo ed iniziate a gustare in pieno il potere della Debian con le distribuzioni testing/unstable :-)
dpkg – Installatore dei pacchetti Debian apt-get – Interfaccia a riga di comeo per APT aptitude – Interfaccia avanzata testo e riga di comeo per APT synaptic – Interfaccia grafica Gtk di APT dselect – installatore Debian dei pacchetti tasksel – Installatore dei task
Questi strumenti non non sono tutti alternativi fra loro. Per esempio,
dselect
usa sia APT che dpkg
.
APT usa /var/lib/apt/lists/*
per tenere traccia dei pacchetti
disponibili, mentre dpkg
usa /var/lib/dpkg/available
.
Se avete installato dei pacchetti useo direttamente aptitude
od
un'altra interfaccia ad APT, e volete usare dselect
per installare
dei pacchetti, assicuratevi di aggiornare il file
/var/lib/dpkg/available
tramite la voce [A]ggiorna
del menu di dselect
(o con il comeo "dselect
update").
apt-get
installa automaticamente tutti i pacchetti dai quali un
pacchetto richiesto Dipende. Non installa i pacchetti che Raccomea o
Suggerisce.
aptitude
, al contrario, può essere configurato per installare i
pacchetti che un pacchetto richiesto Raccomea o Suggerisce.
dselect
presenta all'utente una lista di pacchetti che un
pacchetto richiesto Raccomea o Suggerisce e permette una loro selezione caso
per caso. Vedere Dipendenze dei
pacchetti, Sezione 2.2.8.
dpkg-reconfigure - riconfigura un pacchetto già installato (se utilizza debconf) dpkg-source - gestisce il pacchetto con il file sorgente dpkg-buildpackage - automatizza la creazione di un pacchetto apt-cache - controlla l'archivio dei pacchetti nella cache locale
Impostate sources.list
come descritto in Preparazione per l'aggiornamento,
Sezione 5.2. [34] Fate
riferimento anche a Suggerimenti per
l'installazione di un sistema Debian, Capitolo 3, Aggiornare una distribuzione a stable,
testing o unstable, Capitolo 5 e Editor di salvataggio, Sezione 11.2.
E' possibile installare un gruppo di pacchetti tipicamente richiesto per un determinato utilizzo del sistema Debian. Questo gruppo di pacchetti è chiamato "task".
Il modo più semplice per installare i task al momento dell'installazione
iniziale è useo tasksel
. Notate che dovete eseguire
dselect update
prima di utilizzarlo.
Anche aptitude
può installare i task ed è lo strumento racomeato
per questo scopo. Permette di deselzionare singoli pacchetti all'interno dei
task prima di procedere all'installazione.
aptitude
aptitude
è un nuovo installatore di pacchetti basato su menu,
simile a dselect
, ma costruito da zero sopra APT. Può essere
utilizzato in alternativa ad apt-get
per gran parte dei comandi.
Vedere aptitude(1)
e /usr/share/doc/aptitude/README
.
Una volta cominciato ad usare aptitude
, è meglio continuare ad
usarlo invece che come metodo alternativo di installazione dei pacchetti;
altrimenti perdete il vantaggio di avere aptitude
che mantiene una
traccia di tutti i pacchetti installati deliberatamente.
aptitude
in modalità a tutto schermo accetta comandi sotto forma
singole lettere, di norma in minuscolo. Tasti degni di nota sono:
Tasto Azione F10 Menu ? Aiuto per i comandi u Aggiorna le informazioni relative all'archivio dei pacchetti + Marca il pacchetto nuovo da installare o da aggiornare - Marca il pacchetto da rimuovere (mantiene la configurazione) _ Marca il pacchetto da eliminare (rimuove la configurazione) = Pone il pacchetto in attesa U Marca tutti i pacchetti aggiornabili da aggiornare g Scarica ed installa i pacchetti selezionati q Esce dalla schermata corrente e salva le modifiche x Esce dalla schermata corrente e non salva le modifiche Enter Mostra le informazioni su un pacchetto C Mostra il changelog di un pacchetto l Cambia i limiti per il pacchetto mostrato / Cerca la prima corrispondenza \ Ripete l'ultima ricerca
Come apt-get
, aptitude
installa i pacchetti da cui un
pacchetto selezionato Dipende. aptitude
offre anche l'opzione di
prendere tutti i pacchetti che un dato pacchetto Raccomea o Suggerisce. Potete
modificare questo comportamento tramite F10 -> Options ->
Dependency heling nel suo menu.
Altri vantaggi di aptitude
sono:
aptitude
offre l'accesso a tutte le versioni di un pacchetto.
aptitude
registra le azioni in /var/log/aptitude
.
aptitude
facilita il tenere traccia di software obsoleto elenceolo
in "Obsolete e Locally Created Packages".
aptitude
include un sistema abbastanza potente per la ricerca di
pacchetti particolari e per limitare i pacchetti mostrati. Gli utenti
familiari con mutt
ci si abitueranno rapidamente, poichè mutt è
stata l'ispirazione per la sintassi. Vedere "SEARCHING, LIMITING, e
EXPRESSIONS" in /usr/share/doc/aptitude/README
.
aptitude
nella modalità a tutto schermo ha la funzione di
su
incastonata e può essere fatto girare da normale utente finchè
non si ha realmente bisogno dei privilegi amministrativi.
dselect
Nelle versioni stabili da Potato in su, dselect
era il principale
strumento di gestione dei pacchetti. Per Sarge, considerate invece di usare
aptitude
.
Una volta lanciato, dselect
seleziona automaticamente tutti i
pacchetti "Essenziali", "Importanti", e "Steard".
dselect
presenta un'interfaccia utente un pò strana. Comunque
sia, sono in tanti ad essersi abituati. Quattro sono i comandi ambigui
(Maiuscolo significa MAIUSCOLO!):
Tasto Azione Q Esci. Conferma la selezione corrente ed esce comunque (prevale sulle dipendenze) R Torna indietro. Non intendevo farlo. D Dannazione! Non mi interessa cosa ne pensa dselect. Fallo e basta! U Riporta tutto allo stato sUggerito
Useo D e Q, potete scegliere delle selezioni che presentano conflitti di dipendenze a vostro rischio e pericolo. Usate questi comand con cura.
Aggiungete una linea con l'opzione "expert" in
/etc/dpkg/dselect.cfg
per ridurne il "rumore".
Se la vostra macchine è lenta nell'esecuzione di dselect
, prendete
in considerazione di eseguire dselect
su un'altra macchina (più
veloce) per trovare i pacchetti che vi servono, poi usate apt-get
install sulla macchina lenta per installarli.
Per tracciare la distribuzione testing man mano che cambia,
modificate il vostro /etc/apt/preferences
in maniera che somigli a
quanto segue:
Package: * Pin: release a=testing Pin-Priority: 800 Package: * Pin: release a=stable Pin-Priority: 600
Notate che il tracciamento della distribuzione testing può avere come effetto il ritardo nell'installazione degli aggiornamenti per la sicurezza. Tali pacchetti vengono prima caricati in unstable e poi migrano in testing solo dopo un lasso di tempo.
Vedere apt_preferences(5)
per esempi più complessi che permettono,
per esempio, di tracciare testing mentre si installano pacchetti
selezionati da unstable.
Esempi di che bloccano alcuni pacchetti a determinate versioni, mentre si
tracciano altri pacchetti via via che vengono rilasciati, sono disponibili
nella sottodirectory degli esempi
come
preferences.testing
e preferences.unstable
.
Se mischiate le distribuzioni, p.es. testing con
stable o unstable con stable, vi
troverete infine a prendere pacchetti fondamentali, come libc6
da
testing o unstable e non c'è garanzia che essi non
conterranno bachi. Siete stati avvertiti.
Un altro esempio, preferences.stable
, forza tutti i pacchetti ad
essere degradati a stable.
Il declassamento di un pacchetto da una versione più recente
ad una meno non è ufficialmente supportato in Debian. Tuttavia, potreste aver
bisogno di declassare un dato pacchetto per reinstallarne una versione che sia
funzionante, queo quella più nuova non lo è. Queste versione precedenti le
trovate localmente in /var/cache/apt/archives/
o remotamente in
http://snapshot.debian.net/
.
Vedere anche Salvataggio mediante dpkg
,
Sezione 6.3.3.
Anche il declassamento di una distribuzione ad una meno recente non è ufficialmente supportato e quasi sicuramente causerà problemi. Tuttavia, se siete disperati, può valer la pena tentarlo come ultima risorsa.
aptitude
, apt-get
e apt-cache
Mentre tracciate testing, come descritto sopra, potete gestire il sistema con i comandi seguenti:
Tracciano la distribuzione testing — aggiornano tutti i pacchetti del sistema dopo aver installato le versioni dei pacchetti da cui Dipende, dalla distribuzione testing. [35]
Traccia testing — aggiorna tutti i pacchetti in accordo con
la selezioni di dselect
.
Installa pacchetto ed i pacchetti da cui Dipende da testing.
Installa pacchetto ed i pacchetti da cui Dipende e che Raccomanda da testing.
Installa pacchetto ed i pacchetti da cui Dipende e che raccomanda o Suggerisce da testing.
Installa pacchetto da unstable, mentre installa le sue dipendenze da testing.
Installa pacchetto da unstable, mentre installa le sue dipendenze anche da unstable impostando la Pin-Priority di unstable a 990.
Controlla lo stato dei pacchetti foo bar ....
Controlla le informazioni per i pacchetti foo bar ....
Installa la data versione 2.2.4-1 del pacchetto foo.
Installa il pacchetto foo e rimuove bar
Rimuove il pacchetto bar ma non i suoi file di configurazione.
Rimuove bar insieme ai suoi file di configurazione.
Nell'esempio sopra, dando ad apt-get
l'opzione -u gli
fa scrivere una lista di tutti i pacchetti da aggiornare e aspettare l'utente
prima di intraprendere le azioni. Quanto segue gli fa sempre
apt-get
fare così:
$ cat >> /etc/apt/apt.conf << . // Mostra sempre i pacchetti che devono essere aggiornati (-u) APT::Get::Show-Upgraded "true"; .
Utilizzare l'opzione --no-act per simulare le azioni senza realmente installare, rimuovere, ecc. alcun pacchetto.
Conoscendoli, potrete vivere una vita di eterni "upgrade" :-)
Se avete dei problemi con un pacchetto in particolare, controllate prima questi
siti e poi, eventualmente, cercate aiuto o segnalate un baco.
(lynx
, links
e w3m
funzionano tutti
bene):
$ lynx http://bugs.debian.org/ $ lynx http://bugs.debian.org/nome-pacchetto # se conoscete il nome del pacchetto $ lynx http://bugs.debian.org/numerobaco # se conoscete il numero del baco segnalato
Cercate su Google (www.google.com) includendo nelle frasi da ricercare "site:debian.org".
Se avete ancora dubbi, leggete i manuali. Impostate CDPATH come segue:
export CDPATH=.:/usr/local:/usr/share/doc
e digitate
$ cd nomepachetto $ pager README.Debian # se esiste $ mc
Maggiori fonti di supporto sono descritte in Supporto per Debian, Capitolo 15.
Problemi di dipendenze possono accadere quando si esegue l'aggiornamento in unstable o testing, come descritto in Aggiornamento, Sezione 5.3. Molte volte ciò accade poichè un pacchetto da aggiornare presenta delle nuove dipendenze che non vengono soddisfatte. Problemi del genere vengono risolti usando
# apt-get dist-upgrade
Se questo non funziona, allora ripetete uno dei seguenti comandi finchè il problema non si risolve da sè:
# aptitude -f upgrade # continua l'aggiornamento nonostante l'errore ... oppure # aptitude -f dist-upgrade # continua il dist-upgrade nonostante l'errore
Alcuni script di aggiornamento realmente difettosi possono causare problemi
ricorrenti. Per risolvere tali situazioni è in genere buona cosa ispezionare
gli script
/var/lib/dpkg/info/packagename.{post-,pre-}{inst,rm}
del pacchetto responsabile e poi eseguire:
# dpkg --configure -a # configura tutti i pacchetti installati parzialmente
Se uno script lamenta la mancanza di un file di configurazione, date
un'occhiata in /etc
per il file di configurazione corrispondente.
Se ne esiste uno con l'estensione .dpkg-new (o qualcosa di
simile), mv
per rimuovere il suffisso.
Problemi di dipendenze possono accadere installando i pacchetti in unstable o testing. Esistono dei metodi per aggirare le dipendenze.
# aptitude -f install pacchetto # ignora le dipendenze difettose
Un metodo alternativo consiste nell'utilizzare il pacchetto
equivs
. Vedere /usr/share/doc/equivs/README.Debian
e
Il pacchetto equivs
, Sezione 6.5.2.
dpkg
Se siete in un vicolo cieco con APT, potete scaricare i pacchetti dai mirror
Debian ed installarli con dpkg
. Se non avete accesso alla rete,
potete cercare le copie dei pacchetti in /var/cache/apt/archives/
.
# dpkg -i fetchmail_6.2.5-4_i386.deb
Se l'installazione di un pacchetto fallisce a causa di violazioni delle
dipendenze e avete realmente bisogno di quel pacchetto, potete scavalcare i
controlli sulle dipedenze usando le opzioni di dpkg
--ignore-depends, --force-depends ed altre ancora.
Vedere dpkg(8)
per i dettagli.
Se /var/lib/dpkg/status
diventa illeggibile per una qualsivoglia
ragione, il sistema Debian perde i dati sulla selezione dei pacchetti,
soffrendone in maniera severa. Cercate il vecchio file
/var/lib/dpkg/status-old
, oppure
/var/backups/dpkg.status.*
.
Tenere /var/backups/
in una partizione separata può essere una
buona idea, dato che questa directory contiene molti dei dati fondamentali del
sistema.
Se il vecchio file /var/lib/dpkg/status
non è disponibile, potete
ancora recuperare le informazioni dalle directory in
/usr/share/doc/
.
# ls /usr/share/doc | \ grep -v [A-Z] | \ grep -v '^texmf$' | \ grep -v '^debian$' | \ awk '{print $1 " install"}' | \ dpkg --set-selections # dselect --expert # reinstalla il sistema, deseleziona se necessario
/var
Dato che la directory /var
contiene dati che vengono regolarmente
aggiornati, tipo la posta, è più suscettibile di corruzione di, p. es.,
/usr/
Metterla in una partizione separata limita i rischi. Se
accade l'irreparabile, bisogna ricostruirla per salvare il sistema Debian.
Procuratevi una directory /var
con il contenuto ridotto all'osso,
da un sistema Debian minimale e funzionante, basato su una versione uguale o
più vecchia, per esempio
e
piazzatela nella root directory del sistema danneggiato. Poi,
var.tar.gz
# cd / # mv var var-old # se vi è rimasto qualcosa di utile # tar xvzf var.tar.gz # usate il file preso da Woody # aptitude # o dselect
Ciò dovrebbe restituirvi un sistema funzionante. Potete velocizzare la procedura di recupero delle selezioni dei pacchetti usando la tecnica descritta in Recuperare i dati sulla selezione dei pacchetti, Sezione 6.3.4. ([FIXME]: This procedure needs more experiments to verify.)
Fate il boot in Linux mediante un floppy o CD di salvataggio Debian, o tramite
una partizione alternativa se avete un sistema con multiboot in Linux. Vedere
Avviare il sistema, Sezione 8.1.
Montate il sistema non bootabile su /target
ed usate il modo
chroot di installazione di dpkg
.
# dpkg --root /target -i packagefile.deb
Poi configurate il tutto e risolvete i problemi.
A proposito, se tutto quello che impedisce il boot è un lilo
malfunzionante, potete fare il boot con un disco di salvataggio Debian
standard. Al prompt del boot, ammettendo che la partizione root della vostra
installazione è su /dev/hda12
e volete un runlevel 3, digitate:
boot: rescue root=/dev/hda12 3
A questo punto avrete accesso ad un sistema pressochè perfettamente funzionante con il kernel su dischetto. (Potranno esserci inconvenienti minori dovuti alla mancanza di moduli o di funzioni particolari del kernel.)
dpkg
non funziona
Un dpkg
malfunzionante può rendere impossibile l'installazione di
qualsiasi file .deb. Una procedura come la seguente vi aiuterà ad
uscire da questa situazione. (Nella prima riga, potete sostituire
"links" con il vostro browser da terminale preferito.)
$ links http://http.us.debian.org/debian/pool/main/d/dpkg/ ... scarica un valido dpkg_version_arch.deb $ su password: ***** $ ar x dpkg_version_arch.deb # mv data.tar.gz /data.tar.gz # cd / # tar xzfv data.tar.gz
Per i386, http://packages.debian.org/dpkg può anche essere utilizzata come URL.
L'Illuminazione ottenuta con questi comandi salverà una persona dall'eterno ciclo del karma dell'inferno degli aggiornamenti, permettendogli di raggiungere il nirvana Debian. :-)
Per scoprire a quale pacchetto un file appartiene:
$ dpkg {-S|--search} modello # trova i modelli nei pacchetti installati $ wget http://ftp.us.debian.org/debian/dists/sarge/Contents-i386.gz $ zgrep -e pattern Contents-i386.gz # trova l'elenco dei file con la stessa radice (o il file) nell'archivio Debian
Potete utilizzare anche dei comandi specifici per i pacchetti:
# aptitude install dlocate # è in conflitto con slocate (la versione sicura di locate) $ dlocate filename # alternativa rapida a dpkg -L e dpkg -S ... # aptitude install auto-apt # strumento per l'installazione a richiesta dei pacchetti # auto-apt update # crea un database per auto-apt $ auto-apt search modello # effettua una ricerca completa nell'archivio pacchetti
Cerca le informazioni negli archivi dei pacchetti e le visualizza. Accertatevi che APT sia indirizzato verso l'archivio(i) appropriato(i) modificando /etc/apt/sources.list. Se volete vedere come si comportano i pacchetti in testing/unstable rispetto a quelli correntemente installati utilizzate apt-cache policy— un comando molto utile.
# apt-get check # aggiorna la cache e controlla le dipendenze $ apt-cache search testo # cerca un pacchetto a partire dalla descrizione $ apt-cache policy pacchetto # informazioni su priorità e distribuzione di un pacchetto $ apt-cache show -a pacchetto # mostra la descrizione di un pacchetto per ogni distribuzione $ apt-cache showsrc pacchetto # mostra la descrizione del pacchetto sorgente corrispondente $ apt-cache showpkg pacchetto # Informazioni per il debug # dpkg --audit|-C # cerca i pacchetti parzialmente installati $ dpkg {-s|--status} pacchetto... # descrizione del pacchetto installato $ dpkg -l pacchetto ... # stato del pacchetto installato (1 linea) $ dpkg -L pacchetto ... # elenca i file installati per un dato pacchetto
apt-cache showsrc non è documentato al momento del rilascio di Woody, ma funziona :)
E' sempre possibile trovare informazioni sui pacchetti in (Io uso mc):
/var/lib/apt/lists/* /var/lib/dpkg/available
Il confronto dei file seguenti fornisce informazioni su cosa è realmente accaduto nelle ultime sessioni di installazione.
/var/lib/dpkg/status /var/backups/dpkg.status*
Per una installazione automatica, senza controllo alcuno, aggiungete la
seguente riga a /etc/apt/apt.conf
:
Dpkg::Options {"--force-confold";}
Questo è l'equivalente di aptitude -y install
nomepacchetto. o apt-get -q-y install
nomepacchetto. Siccome in questo modo si risponde
"si" a tutte le domande, usate questo trucco con accortezza. Vedere
apt.conf(5)
e dpkg(1)
.
Si può configurare qualsiasi pacchetto in un secondo momento seguendo Riconfigurare i pacchetti già installati, Sezione 6.4.4.
Usate i seguenti comandi per riconfigurare un pacchetto già installato.
# dpkg-reconfigure --priority=medium pacchetto [...] # dpkg-reconfigure --all # riconfigura tutti i pacchetti # dpkg-reconfigure locales # genera qualsiasi locale extra # dpkg-reconfigure --p=low xserver-xfree86 # riconfigura il server X
Eseguite questo tramite debconf
se avete la necessità di cambiarne
la configurazione dei messaggi in modo permanente.
Alcuni programmi hanno degli script speciali di configurazione. [36]
apt-setup - crea /etc/apt/sources.list install-mbr - installa un manager di Master Boot Record tzconfig - imposta il fuso orario locale gpmconfig - imposta il demone per mouse gpm sambaconfig - configura Samba (Woody usa debconf) eximconfig - configura Exim (MTA) texconfig - configura teTeX apacheconfig - configura Apache (httpd) cvsconfig - configura CVS sndconfig - configura il sistema audio ... update-alternatives - imposta i comandi predefiniti, p.e. vim per vi update-rc.d - Gstione degli script di inzializzazione del System-V update-menus - Il sistema dei menu Debian ...
Rimuove un pacchetto mantenendone la configurazione:
# aptitude remove pacchetto ... # dpkg --remove pacchetto ...
Rimuove un pacchetto e la sua configurazione:
# aptitude purge pacchetto ... # dpkg --purge pacchetto ...
Per esempio, per mantenere libc6
e libc6-dev
con
dselect
e aptitude install pacchetto si
può procedere come segue:
# echo -e "libc6 hold\nlibc6-dev hold" | dpkg --set-selections
aptitude install pacchetto non verrà impedito da
quell'"hold". Per mantenere un pacchetto forzandone un declassamento
automatico con aptitude upgrade pacchetto oppure
aptitude dist-upgrade, aggiungete le seguenti linee ad
/etc/apt/preferences
:
Package: libc6 Pin: release a=stable Pin-Priority: 2000
Qui la voce "Package:" non può usare termini tipo
"libc6*". Se dovete mantenere tutti i pacchetti binari
correlati al pacchetto sorgente glibc
in una versione
sincronizzata, dovete elencarli esplicitamente.
Il comando seguente mostra i pacchetti tenuti in sospeso (non aggiornati):
dpkg --get-selections "*"|grep -e "hold$"
apt-show-versions
può elencare le versioni dei pacchetti
disponibili per ciascuna distribuzione.
$ apt-show-versions | fgrep /testing | wc ... quanti pacchetti avete da testing $ apt-show-versions -u ... elenco di pacchetti aggiornabili $ aptitude install `apt-show-versions -u -b | fgrep /unstable` ... aggiorna tutti i pacchetti da unstable alle loro versioni più recenti
L'installazione dei pacchetti tramite APT lascia i loro file archiviati in
/var/cache/apt/archives
e questi vanno rimossi.
# aptitude autoclean # rimuove solo pacchetti inutili # aptitude clean # rimuove tutti i pacchetti nella cache
Per fare una copia locale dello stato della selezione dei pacchetti:
$ dpkg --get-selections "*" >lemieselezioni # oppure usare \*
"*" fa includere anche i nomi dei pacchetti marcati con "elimina".
Potete poi trasferire questo file su un altro computer ed installarlo con:
# dselect update # dpkg --set-selections <lemieselezioni # apt-get -u dselect-upgrade # o dselect install
Se si eseguono degli aggiornamenti parziali di un sistema stable,
può essere buona cosa ricreare un pacchetto all'interno del proprio ambiente a
partire dai sorgenti. In tal modo si eviteranno dei massicci aggiornamenti di
pacchetti, dovuti alle loro dipendenze. Per prima cosa, aggiungete le linee
seguenti a /etc/apt/sources.list
:
deb-src http://http.us.debian.org/debian testing \ main contrib non-free deb-src http://non-us.debian.org/debian-non-US testing/non-US \ main contrib non-free deb-src http://http.us.debian.org/debian unstable \ main contrib non-free deb-src http://non-us.debian.org/debian-non-US unstable/non-US \ main contrib non-free
Ogni linea che inizia con deb-src qui è divisa in due parti per
ragioni di stampabilità, ma in sources.list
dovranno essere
ciascuna su un'unica riga.
Poi recuperate i sorgenti e costruite un pacchetto locale:
$ apt-get update # aggiorna la lista dei pacchetti sorgente $ apt-get source pacchetto $ dpkg-source -x pacchetto.dsc $ cd versione-pacchetto ... controlla i pacchetti necessari (Build-depends nel file .dsc) e li installa. Avete bisogno anche del pacchetto "fakeroot". $ dpkg-buildpackage -rfakeroot ...oppure (senza "signature") $ dpkg-buildpackage -rfakeroot -us -uc utilizzate "debsign" in seguito, se necessario ...poi per installare il pacchetto $ su -c "dpkg -i pacchetto.deb"
Normalmente, per soddisfare le dipendenze si ha la necessità di installare
alcuni pacchetti con il suffisso "-dev". debsign
è
contenuto nel pacchetto devscripts
. auto-apt
può
aiutare nel soddisfare queste dipendenze. fakeroot
evita l'uso
non necessario del root account.
In Woody, questi problemi di dipendenze possono essere semplificati. Per
esempio per compilare solo il sorgente del pacchetto pine
:
# apt-get build-dep pine # apt-get source -b pine
Per creare un archivio locale dei pacchetti che sia compatibile con APT e
dselect
, bisogna creare Packages
ed i file dei
pacchetti devono essere organizzati in un particolare albero directory.
Si può creare un deposito locale deb simile ad un archivio ufficiale Debian in questo modo:
# aptitude install dpkg-dev # cd /usr/local # install -d pool # i pacchetti sono fisicamente localizzati qui # install -d dists/unstable/main/binary-i386 # ls -1 pool | sed 's/_.*$/ priority section/' | uniq > override # editor override # adjust priority e section # dpkg-scanpackages pool override /usr/local/ \ > dists/unstable/main/binary-i386/Packages # cat > dists/unstable/main/Release << EOF Archive: unstable Version: 3.0 Component: main Origin: Local Label: Local Architecture: i386 EOF # echo "deb file:/usr/local unstable main" \ >> /etc/apt/sources.list
In alternativa, un altro metodo per creare un archivio locale deb, molto alla bruta:
# aptitude install dpkg-dev # mkdir /usr/local/debian # mv /dove/è/pacchetto.deb /usr/local/debian # dpkg-scanpackages /usr/local/debian /dev/null | \ gzip - > /usr/local/debian/Packages.gz # echo "deb file:/usr/local/debian ./" >> /etc/apt/sources.list
Questi archivi possono essere raggiunti da remoto tramite HTTP od FTP,
modificeo le voci in /etc/apt/sources.list
di conseguenza.
alien
permette la conversione dei pacchetti binari nei formati Red
Hat rpm, Stampede slp, Slackware tgz, e
Solaris pkg, in pacchetti Debian deb. Se volete
usare un pacchetto proveniente da un'altra distribuzione di Linux al posto di
quello installato sul vostro sistema, potete utilizzare alien
per
convertirlo nel formato che più preferire. alien
supporta anche
pacchetti LSB.
auto-apt
è uno strumento di installazione dei pacchetti a
richiesta
$ sudo auto-apt update ... aggiorna il database $ auto-apt -x -y run Entering auto-apt mode: /bin/bash Exit the command to leave auto-apt mode. $ less /usr/share/doc/med-bio/copyright # access non-existing file ... Installa il pacchetto che fornisce questo file. ... Installa anche le dipendenze
debsums
permette la verifica dei file dei pacchetti installati
contro gli MD5 checksums. Alcuni pacchetti non hanno MD5 checksums. Una
soluzione temporanea per gli amministratori di sistema:
# cat >>/etc/apt/apt.conf.d/90debsums DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";}; ^D
da Joerg Wendle <joergle@debian.org> (non testata).
sources.list
In breve, sforzi sovrumani per creare un sources.list
ottimizzato,
non hanno prodotto per me miglioramenti, da una località negli . Ho scelto
manualmente un sito vicino usando apt-setup
.
apt-spy
crea automaticamente sources.list
, basandosi
su latenza e larghezza di banda. netselect-apt
crea un
sources.list
ancora più completo, ma usa un metodo meno efficace
per la scelta del mirror migliore (comparazione dei tempi di ping).
# aptitude install apt-spy # cd /etc/apt ; mv sources.list sources.list.org # apt-spy -d testing -l sources.apt
dpkg-divert
Le deviazioni dei files rappresentano un modo di forzare
dpkg
a non installare un file nella sua posizione predefinita, ma
in una posizione deviata. Le deviazioni
possono essere utilizzate tramite gli script dei pacchetti Debian per muovere
un file quando causa un conflitto. Gli amministratori di sistema possono usare
una deviazione anche per scavalcare un file di configurazione di un pacchetto,
oppure quando alcuni file (non marcati come conffiles) devono essere
salvaguardati da dpkg
, durante l'installazione di una nuova
versione di un dato file (vedere Mantenimento della configurazione locale,
Sezione 2.2.4).
# dpkg-divert [--add] filename # aggiunge la "deviazione" # dpkg-divert --remove filename # rimuove la "deviazione"
Di solito è una buona idea non usare dpkg-divert
a meno che non
sia strettamente necessario.
equivs
Se compilate un programma dai sorgenti, è meglio debianizzarlo in un pacchetto (*.deb). Usate equivs solo come ultima risorsa.
Package: equivs Priority: extra Section: admin Description: Aggira le dipendenze dei pacchetti Debian. E' un pacchetto vuoto che può essere usato per creare dei pacchetti Debian contenenti solo le informazioni sulle dipendenze.
Per lanciare vim
con il comando vi
, usate
update-alternatives
:
# update-alternatives --display vi ... # update-alternatives --config vi Selection Comme ----------------------------------------------- 1 /usr/bin/elvis-tiny 2 /usr/bin/vim *+ 3 /usr/bin/nvi Enter to keep the default[*], or type selection number: 2
Le alternative del sistema in Debian sono contenute in
/etc/alternatives
come collegamenti simbolici.
Per impostare il vostro ambiente X Window preferito, usate invece
update-alternatives
su /usr/bin/x-session-manager
e
/usr/bin/x-window-manager
. Per i dettagli, vedere Personalizzare le X session, Sezione
9.4.5.1.
/bin/sh
è un collegamento simbolico a /bin/bash
o
/bin/dash
. E' più sicuro usare /bin/bash
per
mantenere la compatibilità con vecchi script in contaminati da bash, ma più
corretto utilizzare /bin/dash
per rinforzare la compatibilità
POSIX. L'aggiornamento al kernel 2.4 tende ad impostare il collegamento su
/bin/dash
Una volta installati, gran parte dei pacchetti Debian configura i propri
servizi per girare nei runlevel da 2 a 5. Quindi, non esistono differenze fra
i runlevel 2, 3, 4 e 5 su un sistema Debian non personalizzato; Debian lascia
all'amministratore la possibilità di personalizzare i runlevel, come descritto
in Personalizzare i runlevel,
Sezione 2.4.3. Ciò differisce dal modo in cui i runlevel sono usati da
altre distribuzioni popolarin GNU/Linux. Una modifica che potreste voler fare
e disabilitare xdm
o gdm
nel runlevel 2 in maniera da
non lanciare l'X display manager al termine della sequenza di boot; potete
lanciarlo passando al runlevel 3.
Per maggiori informazioni sui runlevel, vedere I Runlevel, Sezione 2.4.2.
Gli sviluppatori Debian hanno molto a cuore la sicurezza del sistema. Molti demoni di servizio sono installati con il minimo dei servizi abilitati.
Se avete dei dubbi (su Exim, DHCP, ...) controllate ps aux oppure
il contenuto di /etc/init.d/*
e di /etc/inetd.conf
.
Controllate anche /etc/hosts.deny
in Restrizione tramite PAM, Sezione 9.2.1.
Anche il comando pidof
è utile (vedere pidof(8)
).
X11 non permette connessioni TCP/IP (remote) predefinite nelle versioni più
recenti di Debian. Vedere Connessione TCP/IP
ad X, Sezione 9.4.6. Anche l'X forwarding in SSH è disabilitato. Vedere
Connessioni ad un X server remoto –
ssh
, Sezione 9.4.8.
La guida Debian
1.08-3, dom mag 1 07:45:18 UTC 2005osamu@debian.org
dsewell@virginia.edu
mc0315@mclink.it