Appunti Debian

Transcript

Appunti Debian
NOTEDEBIAN
by moly82
e
p.i. D. Cosciani 2006 (alcune utili aggiunte e correzioni)
> Installare Debian tramite mini­iso da 180mb e rete funzionante (+ XFree e WM a vostra scelta): http://blucerchiato.altervista.org/debian_netinstall_howto.htm
> Eccovi alcuni comandi assolutamente fondamentali per poter utilizzare Linux:
dd if=nomefile.img of=/dev/fd0 bs=1440k [scrive un'immagine di floppy ]
alien ­i nomepacchetto.rpm [convertire RPM in DEB]
# cd /dev [spostiamoci in /dev]
# ln ­s hdx dvd [per creare un link per /dev/dvd]
> Come creare un floppy di boot GRUB?
GRUB (GRand Unified Bootloader) è il boot manager più usato nelle ultime versioni di Linux e più performante, in grado di bootare una infinità di sistemi operativi (GNU project ).
In questo documento spiegherò come creare un dischetto di boot in grado di bootare un sistema già installato o di ottenere una shell di comando GRUB.
È necessario loggarsi come root.
1. Formattare un floppy con il filesystem ext2:
mke2fs /dev/fd0
2. Montare il floppy e copiare i files necessari a GRUB per il boot:
cd /media/floppy
mkdirhier boot/grub
cd /boot/grub
cp stage1 stage2 /media/floppy/boot/grub
Se vuoi bootare il sistema operativo già installato sull macchina, copia i files /boot/grub/menu.lst, /boot/grub/device.map e /boot/message nelle rispettive directory sul floppy.
3. Entrare nella shell di comando GRUB digitando grub. Apparirà ora il prompt di comando GRUB:
grub >
dal quale inserire i seguenti comandi:
device (fd0) /dev/fd0
root (fd0)
setup (fd0)
quit
4. Fatto! Il dischetto di boot è stato creato!
Se vuoi essere paranoico, puoi salvarti una copia del master boot record (MBR) della tua macchina sul dischetto. Poniamo per esempio che il master boot record (MBR) si trovi sul device hda:
dd if=/dev/hda of=/media/floppy/boot.mbr bs=512 count=1
per i server ProLiant invece digitare:
if=/dev/cciss/c0d0 of=/media/floppy/boot.mbr bs=512 count=1
Per maggiori informazioni, cliccare sul link di inizio pagina o digitare info:grub in una shell di comando.
> Eccovi alcuni comandi assolutamente fondamentali per poter utilizzare Debian: alien ­i nomepacchetto.rpm [convertire RPM in DEB]
apt­get install pacchetto [installa il pacchetto nella versione più aggiornata disponibile nelle fonti APT contenute nel file /etc/apt/sources.list]
apt­get remove pacchetto [rimuove il pacchetto indicato]
apt­get remove ­­purge pacchetto [rimuove il pacchetto in maniera "drastica", compresi files/directory di configurazione etc]
apt­cache search pacchetto [cerca nelle fonti APT tutti i pacchetti con nome e/o descrizione contenente un determinato nome]
apt­cache show pacchetto [fornisce info sul determinato pacchetto: versione, dimensione, data, breve descrizione etc]
apt­get update [ricerca nelle fonti APT pacchetti disponibili più recenti di quelli installati e scarica la lista SENZA installare alcun pacchetto]
apt­get dist­upgrade [aggiorna tutti i pacchetti (di sistema e non) installati nel sistema (aggiorna TUTTO il sistema)]
apt­get upgrade pacchetto [aggiorna un determinato pacchetto con l'ultima disponibile nelle fonti APT]
apt­get clean [ripulisce /var/cache/apt di tutti i pacchetti .deb scaricati (lanciare solo nel caso siano stati tutti installati correttamente)]
> Eccovi ora alcuni comandi molto utili da usare nel caso si generino dei conflitti tra pacchetti installati:
[In questo caso solitamente l'installazione di tutti i restanti pacchetti non prosegue (anche quelli esenti da conflitti): questa non è ovviamente una bella cosa in caso di aggiornamenti "corposi" e per
risolvere potete provare a lanciare questi comandi in successione e alternativamente (da usare con cautela)]
apt­get ­f install
apt­get ­f upgrade
dpkg ­­configure ­a
dpkg ­­purge ­­force­all pacchetto [per installare un determinato pacchetto]
> Ecco come fare per vedere tutti i pacchetti installati nel vostro sistema:
[Il primo comando fornisce una lista completa dei pacchetti installati, il secondo limita la ricerca a un determinato pacchetto]
dpkg ­­get­selections
dpkg ­­get­selections |grep pacchetto
...in alternativa potete usare questi due comandi che forniscono un maggior numero di info relative ai pacchetti installati...
dpkg ­l
dpkg ­l |grep pacchetto
dpkg ­i nomepachetto.deb [da utilizzare solo nel caso si voglia forzare la rimozione un determinato pacchetto]
> Far partire programmi/comandi all'avvio del sistema (come creare uno script d'avvio): Eseguire da shell, come root:
cd /etc/init.d touch startup chmod +x startup update­rc.d startup start 99 2 .
cd /etc/init.d nano /etc/init.d/startup ...ora aggiungere dentro al file "startup" per esempio i comandi scritti qua sotto relativi al firewall, altrimenti gli altri eventuali comandi, programmi, scripts etc etc che volete partano all'avvio. Non
dimenticate il punto in fondo alla terz'ultima riga senò lo script non verrà lanciato correttamente all'avvio.
es:
if up eth0
> Firewall in pochissimo tempo: Vi basta aggiungere al vostro script di avvio questi comandi: iptables ­A INPUT ­i eth0 ­m state ­­state NEW,INVALID ­j DROP
iptables ­A FORWARD ­i eth0 ­m state ­­state NEW,INVALID ­j DROP
e eventualmente anche: iptables ­I INPUT ­p tcp ­­dport NUM_PORTA ­m state ­­state NEW ­j ACCEPT
iptables ­I INPUT ­p udp ­­dport NUM_PORTA ­m state ­­state NEW ­j ACCEPT
I primi 2 comandi chiudono TUTTE le porte in ingresso. Il terzo e il quarto sono 2 esempi da usare solo nel caso voleste aprire alcune determinate porte (nell'esempio una TCP e l'altra UDP), per
esempio nel caso voleste aprire le porte usate dal vostro programma p2p per poter far scaricare altri da voi.
In aggiunta, ricordatevi anche di questi 2 comandi che possono tornarvi molto utili in alcune circostanze e possono venire lanciati da shell: iptables ­L
iptables ­F
Il primo vi mostra tutte le regole attualmente impostate per iptables. Il secondo azzera tutte le regole, in pratica abbassa il firewall e vi priva della sua protezione, almeno fino al riavvio successivo o
fino a che non rilancerete il vostro script.
> Rendere Debian molto simile a uno distro a riconoscimento HW automatico Ecco come levarsi ogni problema relativo a che moduli caricare per far funzionare questa o quella determinata periferica, e scordarsi definitivamente cosa vuol dire ricompilare il kernel ogni volta che si
dimentica un modulo. apt­get install kernel­image­2.6­k7 hotplug module­init­tools Tutto qua. Con questo comando installate l'immagine di un kernel precompilato Debian pronto all'uso, nella sua ultima versione disponibile 2.6.x e ottimizzato per AMD (nell'esempio). Una volta apt­
gettato non serve altro che modificare lilo o grub per avviarlo (per chi usa grub basta lanciare "update­grub" e tutto verrà aggiunto in automatico, per lilo non saprei credo comunque che esista un
comando del tutto analogo). Tale kernel sarà messo in automatico dentro /boot insieme alle altre immagini di kernel già installati, insieme a un file imagine initrd (di cui i precompilati fanno largo uso). Controllate che la riga in
questione sia stata aggiunta in automatico nel file config del vostro boot­loader, altrimenti il nuovo kernel non si avvierà correttamente.
Hotplug è un demone che si aggiunge in automatico all'avvio del sistema, e si occuperà ad ogni avvio di trovare e caricare tutti i moduli necessari alle vostre periferiche per funzionare. Funzionerà
anche a distro avviata, quindi scordatevi di attaccare una penna usb e perdere tempo a capire che moduli caricare, tutto verrà sistemato in automatico da hotplug non appena una nuova periferica viene
collegata al sistema. Il pacchetto module­init­tools è indispensabile per far funzionare i kernel 2.6.x, ricordatevi sempre di installarlo se on lo aveste già fatto. In poche parole con un solo comando renderete la vostra Debian semplice da utilizzare alla stregua di distro come Mandriva o Fedora per quanto concerne la configurazione del vostro HW. > Compilare un kernel col "Metodo Debian": Esempio: da kernel 2.4.18­bf2.4 a kernel 2.4.19, eseguire da shell, sempre come root:
apt­cache search kernel­source [visualizza tutti i sorgenti dei kernel disponibili nelle fonti APT]
apt­get install kernel­source­2.4.19 [scarica i sorgenti del kernel scelto in formato tar.bz2 e mette l'archivio in /usr/src]
cd /usr/src [spostiamoci nella directory in questione]
tar jxvf kernel­source­2.4.19.tar.bz2 [scompattiamo i sorgenti, verrà creata la cartella "kernel­source­2.4.19"]
ln ­s kernel­source­2.4.19 linux [creiamo un link simbolico chiamato "linux" che punti alla cartella appena creata]
ls ­la /boot/conf* [cerchiamo un file di configurazione di un kernel vecchio da cui partire a configurare quello nuovo]
cp /boot/config­2.4.18­bf2.4 /usr/src/linux/.config [se presente, copiamolo nella dir /linux con altro nome]
apt­get install make gcc kernel­package libncurses5­dev module­init­tools modutils [pacchetti necessari per proseguire]
cd /usr/src/linux [spostiamoci nella dir /linux: trattandosi di un link è come spostarsi direttamente nella dir dei sorgenti del kernel]
make menuconfig [selezionare tutti i vari moduli da compilare col kernel] (make oldconfig) [consigliato per chi utilizza vecchi .config: verrà chiesto come comportarsi solo coi moduli non presenti in tale file] make­kpkg clean [pulisce gli output dei binari e prepara la compilazione di un nuovo kernel]
make­kpkg kernel_image [ricompila il nuovo kernel
...al termine della compilazione, in /usr/src verrà creato un .deb del nuovo kernel pronto per essere installato con dpkg:
cd .. [spostiamoci nella directory /usr/src]
dpkg ­i kernel­image­2.4.19.deb [installiamo il kernel appena creato]
> Di cosa fare il backup? ­ menus.lst ( /boot/grub/ ) ­ lilo.conf ( /etc ) ­ XF86Config­4 ( /etc/X11 ) ­ modules ( /etc/modules) ­ startup script ( /etc/init.d/startup ) ­ i vari config dei kernel ( /boot ) ­ fstab ( /etc ) ­ sources.list ( /etc/apt ) ­ server.list ( se usate lopster :­) )
> Shortcut da tastiera: tab [da shell, completa i percorsi delle directory, nomi files, etc]
ctrl + a [porta cursore a inizio riga]
ctrl + e [porta cursore a fine riga]
ctrl + k [cancella dal cursore in poi, fino a fine riga]
ctrl + w [cancella tutti i caratteri posti prima del cursore]
ctrl + d [chiude la shell]
ctrl + l [pulisce il video di tutti i vari output (=cls di dos)]
ctrl + c [interrompe comando in esecuzione]
ctrl + s [sospende i caratteri su schermo]
ctrl + q [riprende i caratteri su schermo]
> Condivisione uso periferiche comuni con altri utenti: Eseguire da shell, come root:
adduser nome_utente audio adduser nome_utente video (es. scheda tv) adduser nome_utente lp (stampante) > Inizializzare delle partizioni EXT3 e FAT32: ­ Ext3:
mkfs ­t ext3 /dev/hdxX
mke2fs ­j /dev/hdxX
­ vfat:
mkdosfs ­F 32 /dev/hdxX
> Montare partizioni FAT32 in lettura/scrittura modificando fstab: Eseguire da shell, come root:
nano /etc/fstab ...e aggiungere la/e riga/e... /dev/hdxX /mnt/*** vfat users,auto,uid=nome_utente 0 0
[x = lettera corrispondente all'HD rispetto i canali IDE X = numero relativo alla partizione in oggetto
*** = punto di mount. Deve esistere la relativa directory dentro la dir "mnt" (come root: mkdir /mnt/***)]
> Comandi utili: ls ­a [visualizza files nascosti] ­r [visualizza files sottodirectory] ­s [visualizza dimensioni files] ­l [info aggiuntive, permessi etc]
cat [visualizza il contenuto di file di testo non troppo lunghi]
cat | grep ciccio [visualizza tutte le righe contenenti la parola "ciccio"]
less [come cat ma per files più lunghi, usare "pagup" e "pagdown" per scorrere il testo, "q" per uscire]
cp ­rf oggetto /directory/di/destinazione/ [copia un file/directory, l'opzione "­f" forza l'operazione] mv ­rf oggetto /directory/di/destinazione/ [sposta un file/directory, l'opzione "­f" forza l'operazione]
mv ­rf oggetto oggetto_nuovo [rinomina un file/directory, l'opzione "­f" forza l'operazione]
rm ­rf [cancella una file/directory, l'opzione "­f" forza l'operazione]
tar jxvf nome_file.tar.bz2 [decomprime un tar.bz2 nella directory attuale]
tar zxvf nome_file.tar.gz [decomprime un tar.gz nella directory attuale]
dpkg ­i file.deb [installa un pacchetto .deb]
dpkg ­i ­­force­all file.deb [installa un pacchetto .deb forzando l'operazione]
dpkg­reconfigure xserver­xfree86 [riconfigura X , agendo sul file /etc/X11/XF86Config­4]
modprobe nome_modulo [carica un determinato modulo]
modprobe ­l [mostra la lista di tutti i moduli compilati nel kernel che è possibile caricare con modprobe]
modprobe ­l | grep SCSI [mostra solo i moduli che contengono nel nome la parola SCSI, compilati nel kernel, che è possibile caricare]
lsmod [mostra tutti i moduli attualmente caricati, se sono in uso o meno e se si da quali altri moduli]
lsmod | grep fglrx [mostra se il modulo "fglrx" è attualmente caricato, se è in uso o meno e se si da quali altri moduli]
XFree86 ­v [mostra la versione di X installata] cat /var/log/Xfree86.0.log [mostra l'intero log di X] cat /var/log/Xfree86.0.log | grep EE [mostra solo le righe contenenti errori del log di X] cat /var/log/Xfree86.0.log | grep WW [mostra solo le righe contenenti warnings del log di X]
cat comando > file [crea un nuovo file contenente l'output di un comando] cat /var/log/Xfree86.0.log | grep EE > /home/utente/errori.txt [crea un file nella home contenente gli errori di X] psaux [mostra tutti i processi attivi] top [mostra la lista di processi attivi con relativa % di occupazione cpu] free [mostra l'utilizzo della RAM e della partizione di SWAP]
df ­h [mostra l'utilizzo di tutte le partizioni montate dei dischi fissi presenti e lo spazio occupato]
du ­h [mostra lo spazio occupato da tutti i files/sottodirectory contenuti in una directory]
uname ­a [mostra la versione del kernel in uso, hostname, username, data, architettura del PC etc]
uname ­r [mostra solo la versione del kernel in uso]
mount ­a [rende attive tutte le modifiche effettuate sul file /etc/fstab]
lspci ­v [mostra info su tutte le periferiche connesse agli slot PCI]
/etc/init.d/script start [avvia un servizio/demone] /etc/init.d/script stop [stoppa un servizio/demone]
rescue root=/dev/hdaX [se digitato al boot con il cd di Debian inserito, verrà avviato Linux con il kernel presente nella partizione indicata]
ifconfig eth0 IP netmask IP broadcast IP up [assegna indirizzo IP, netmask e broadcast alla scheda di rete eth0 e l'abilita] update­alternatives ­­config x­session­manager [consente di modificare la scelta del desktop manager da usare] update­alternatives ­­config x­window­manager [consente di modificare la scelta del window manager da usare]
lame ­­decode ­­silent "canzone.mp3" ­ | oggenc ­ ­q2 ­o "nome_canzone.ogg" [converte un .mp3 in .ogg a 128 kbps]
mount ­o loop ­t iso9660 file.iso /cdrom [monta una immagine .iso nella dir /cdrom]
for i in *.tar.gz; do tar xvfz $i; done [utile per decomprimere diversi archivi tar.gz posti nella stessa directory uno dopo l'altro in maniera automatica]
CHARSET=UTF­8 rox [avvia rox in modalità UTF­8 per evitare di riscontrare errori nei nomi dei files/directory]
mplayer ­vo vesa ­ao alsa1.x ­vf scale=640:­1 [avvia mplayer abilitando il tvout della scehda video]
dpkg­reconfigure ­plow ntpdate [per riconfigurare ntpdate con un nuovo server]
> Come avere l'ora sempre aggiornarnata:
apt­get install ntpdate ntpdate time.ien.it
> Installare un joystick su porta giochi: Esempio: Microsoft Sidewinder (c)
Caricare con modprobe i seguenti moduli, nell'ordine. In caso di errori accertatevi di aver compilato tutti i moduli nel kernel, se così non fosse occorrerà ricompilare il kernel.
input ns558 (questo è il modulo relativo alla porta giochi standard. Se si possedesse una Live! il modulo giusto sarebbe: emu10k1_gp. Il modulo corretto comunque lo si trova nella sezione "input" nelle
schermate di configurazione del kernel)
gameport joydev sidewinder NOTA: non caricare il modulo "analog", non c'entra niente con la porta giochi standard e può creare conflitti.
...una volta caricati tutti i moduli, dare uno di questi comandi da shell (come root) per vedere se il joypad funziona: cat /dev/js0 cat /dev/input/js0 ...alla pressione dei tasti del joystick devono apparire dei caratteri speciali su schermo: provate tutti i tasti e poi premete "ctrl+c" per uscire. Se il joypad non funzionasse probabilmente non avete
caricato tutti i moduli necessari.
Infine aggiungete manualmente tutti i moduli caricati in /etc/modules in modo che vengano caricati automaticamente ad ogni avvio del sistema.
> Installare un mouse SERIALE: Collegare il mouse prima di accendere il computer. Lanciare quindi da console
mouseconfig
e seguire le istruzioni.
> Installare un mouse USB: Collegare il mouse USB. Caricare i seguenti moduli, nell'ordine. In caso di errori accertatevi di aver compilato i moduli nel kernel, se così non fosse occorrerà ricompilare il kernel.
usbcore usb­uhci (o uhci) input usbmouse hid mousedev ...una volta caricati tutti i moduli, dare questo comando da shell per vedere se il mouse funziona:
cat /dev/input/mice ...muovendo il mouse e alla pressione dei tasti devono apparire dei caratteri speciali su schermo: provate tutte le funzionalità e poi premete "ctrl+c" per uscire. Se il mouse non funzionasse
probabilmente non avete caricato tutti i moduli necessari. Successivamente dovrete riconfigurare X selezionando come mouse: /dev/input/mice, protocollo ImPS2 (2 tasti + rotella) e
ricordatevi di NON emulare il terzo tasto. Riavviate X e aggiungete tutti i moduli manualmente a /etc/modules in modo che vengano caricati automaticamente ad ogni avvio del sistema.
> Come applicare una patch ai sorgenti del kernel:
(by ilsensine)
Da console, entrate nella directory contenente i sorgenti del vostro kernel (normalmente /usr/src/linux, o qualsiasi altra posizione scegliate) ed eseguite il comando:
bzcat /path/al/file/patch.bz2 | patch ­p1
oppure
zcat /path/al/file/patch.gz | patch ­p1
oppure
cat /path/al/file/patch.diff | patch ­p1
...a seconda del formato di compressione della patch in vostro possesso. È possibile anche "invertire" il processo di patch aggiungendo l'opzione ­R al comando patch.
Speriamo d'esservi stati utili. Se trovate imprecisioni o volete ampliare la guida scrivere a:
[email protected]
Grazie.­