Indice:
- La mission
- Le modalità
- Installazione
- Configurazione - atto primo
- Ricompilare il kernel
- Configurazione - atto secondo
- Vedere le partizioni Windows sulla stessa macchina
- Usare l'accelerazione hardware della Nvidia
- Vedere anche in rete locale con Samba
- Mostrare il log in una virtual console inutilizzata
- Cambio bootloader: da Lilo a Grub
- Masterizzare: K3B
- Stampare: Cups
- Centralizzare i download di apt-get
- Installare Apache2
La mission
Lo scenario che si presenta è questo: voglio installare Debian sul mio PC fisso.
La scelta di Debian è dovuta al fatto che la sto usando felicemente da tempo sul portatile.
Questa pagina vuole dare qualche spunto e qualche dritta per l'installazione di questa
distribuzione, non mi addentrerò molto in spiegazioni dettagliate.
Magari in futuro approfondirò meglio questo e quell'argomento, per ora no.
Resto cmq a disposizione per email se volete contattarmi... (per i distratti: c'è "contattami" nel menu a sinistra)
Le modalità
Avevo già 3 cd di Debian Woody (l'ex ramo stabile di Debian) nella versione 3.0 e userò quelli per
installare, volendo però smacchinare con pacchetti più recenti e non essendo in un ambiente
di produzione asettico, migrerò via rete (tramite adsl) al ramo instabile di Debian "Sid" che
contiene pacchetti più aggiornati (anche se meno testati).
Inoltre preferisco (e suggerisco) installare un kernel vanilla, scaricato da
www.kernel.org all'ultima versione stabile disponibile
è del 2.6... La configurazione del kernel è comunque un'operazione un
po' delicata e necessita di una lunga configurazione, ne vale sicuramente la pena a mio
avviso! (ma magari fatevi qualche mese di esperienza con Linux prima).
L'installazione
La prima installazione passa in modo indolore, si seguono i vari passi in modo lineare
e ci si ritrova con il sistema pronto. L'unica parte critica riguarda la creazione delle
partizioni, io avevo già il disco partizionato con una partizione per Windows (con il
quale Debian dovrà convivere), una partizione di poco più di 6Gb che conterrà Debian
(tengo assieme root, /home, /usr eccetera) e 256Mb di swap (ho 512 di ram)...
In realtà non mi interessa riporre troppa attenzione sulle dimensioni delle partizioni
in quanto ho intenzione di migrare a una gestione dinamica delle partizioni (LVM2)
presto (e per quello ho scritto questa guida).
Al termine dell'installazione ho installato LILO in hda1 in modo che gestisca il multiboot
tra windows e linux all'avvio.
Configurazione e installazione pacchetti 1
Al primo avvio Lilo mi mostra la lista dei sistemi operativi avviabili: Linux in hda3,
Windows in hda1... Windows in hda5 !?! mmm, ne ha visto uno di troppo... scelgo linux
e vediamo cosa succede...
parte il framebuffer, trova la rete... funziona tutto molto meglio di come funzionerà
alla fine :) !
Parte la configurazione dei vari pacchetti: debconf. Andiamo a "incasinare" un po' le cose!
Per modificare queste opzioni, in un qualsiasi momento, fare:
/usr/bin/base-config
- L'orologio non è impostato sul GMT (Greenwich mean time) che windows non gestisce,
ma è impostato sull'ora legale italiana.
- Imposto il mio fuso orario, abilito MD5, shadowpassword, imposto la password
di root (sufficientemente complessa), creo un utente normale (per dovere di cronaca: l'utente root non va utilizzato se non quando necessario), e non imposto
PCMCIA e PPP...
- Per continuare l'installazione ho bisogno di un tot, di pacchetti... un po' li prenderò
da Internet, un po' dai cd (spero). Solo che per ora non so a che device
corrisponde il lettore dove ho messo il cd (ho 3 lettori).
Vado allora in console (CTRL+ALT+F2) entro come root e con un
dmesg | grep hd
(ovvero: "dmesg" restituisce la lista dei messaggi all'avvio, "grep hd" fa filtrare le sole righe che contengono la parola hd) vedo che il lettore
che voglio usare è in /dev/hdb, volendo posso già modificare l'fstab:
creo la cartella /mnt/dvdrw e imposto fstab così (vi /etc/fstab) :
/dev/hdb /mnt/dvdrw auto ro,user,noauto 0 0
creo allora l'indice dei 3 cd, aggiungo un paio di fonti HTTP italiane
(alcune non mi rispondevano) cercando di sceglierne di veloci e comincio.
Siccome non ho interesse a installare molta roba del ramo stabile non scelgo nessun
pacchetto con tasksel e non avvio nemmeno dselect... verranno scaricati 22Mb di pacchetti
base (dovrebbe bastare il primo cd).
- Procedo con le scelte predefinite, scelgo it_IT@EURO come locale standard
non faccio avviare il demone sshd all'avvio (non voglio permettere una gestione
remota, almeno per ora).
- Quando exim (un server di posta) mi chiede di scegliere un tipo di connessione (sono
tutti ben descritti) scelgo "Local delivery only". Questa impostazione può essere cambiata
con /usr/sbin/eximconfig
Scelgo anche di recapitare i messaggi di root all'utente che preferisco (root non andrebbe mai usato)
Finite queste brevi impostazioni siamo scaraventati al login! Yuppie...
Cominciamo ora a fare qualche settaggio più fino.
Loggiamoci come root e cominciamo a fare le nostre modifiche, per ora come
editor usiamo
vi presto installeremo qualcosa di meglio
(intendo vim):
-
Cominciamo subito passando a Debian unstable:
Per farlo bisogna cambiare nel file /etc/apt/sources.list tutte le "stable" con "unstable"
Se volete farlo velocemente fate questo [tutto in una linea] dalla cartella /etc/apt/:
sed -e "s/stable/unstable/" sources.list > sources.unstable
-e serve per eseguire un comando da riga di comando: il comando s, dentro le virgolette
serve per sostituire "stable" con "unstable"...
dopo aver controllato che tutto sia a posto copiate il nuovo file nel vecchio:
mv sources.unstable sources.list
potete anche togliere, se l'avevate messa, la fonte security.debian.org, per unstable
i pacchetti critici non vengono rilasciati da una fonte separata...
a questo punto aggiornate la lista dei pacchetti:
apt-get update
se avete scelto server lenti a questo punto potete anche eliminarli dalla lista delle vostre
fonti... dopo vedremo di mettere nel vostro sources.list solo fonti veloci, grazie ad
apt-spy...
Il mio sources.list per esempio ora è così:
deb http://ftp2.it.debian.org/debian/ unstable main
deb-src http://ftp2.it.debian.org/debian/ unstable main
deb http://non-us.debian.org/debian-non-US/ unstable/non-US main
deb-src http://non-us.debian.org/debian-non-US/ unstable/non-US main
Già ora siamo pronti a passare a Sid, per farlo ora che sappiamo (con apt-get update)
quali sono i pacchetti nuovi, possiamo scaricarli con:
apt-get dist-upgrade
nessuna impostazione da segnalare se non, in debconf, ho scelto la modalità Dialog
(testuale come basata sulle curses) per non avere problemi al di fuori di X.
- Quando mi viene chiesto, nella configurazione di adduser, imposto di NON avere
le "system wide readable home directorys" per non lasciare a tutti gli utenti la possibilità
di vedere la lista dei file nella home di altri.
- Rispondo YES per effettuare l'aggiornamento di FLEX e proseguire con le
impostazioni di default
- Installiamo vim e aptitude con questo
apt-get install vim aptitude
- Uno degli ultimi passaggi è stato la configurazione di LILO, già che ci siamo
continuamo da li: una volta al prompt andiamo a modificare il file di impostazioni
di LILO:
vim /etc/lilo.conf
Qui nel marasma di impostazioni (tutte ben commentate peraltro) tolgo il # per non
commentare la riga COMPACT (che rende il boot un po' più veloce).
Tolgo il commento dalla riga "password = " e inserisco una password che sarà necessaria
per avviare il sistema con parametri personalizzati. Per lo stesso motivo tolgo il commento
da tutte le righe "restricted" (una per ogni voce del menu di boot). E finalmente posso
togliere le 2 righe della voce di avvio di Windows in hda5 (che in realtà non c'è).
Se volete potete impostare in timeout= il ritardo in decimi di secondi, dopo di che verrà
scelta la voce di default. Aggiungo anche in un punto qualsiasi la voce:
menu-title= "Titolo del menu"
appunto per inserire
un titolo al menù di boot.
Finite le modifiche, visto che abbiamo inserito una password nel file dobbiamo rendere
il file leggibile solo da root:
chmod ag-r /etc/lilo.conf
Dove il - serve per togliere i permessi di lettura (r) a tutti (a) e al gruppo (g).
Diamo lilo per rendere effettive le modifiche.
Riavviamo e vediamo se tutto è a posto.
- Io a questo punto mi ritrovo la tastiera inglese impostata, la sistemo con
il comando kbdconfig impostando una querty italiana.
- Un'altra cosa che trovo comodo abilitare è la bash completition seria:
attivandola, il completamento automatico (premendo TAB) completerà intelligentemente
anche i parametri dei vari programmi... per esempio il comando tar: se date
tar xzf [TAB]completerà solo tra file .gz
con tar xjf [TAB] completerà con .bz2
insomma una bellezza... per attivarlo modificate il file /etc/bash.bashrc
e togliete i commenti alle 3 righe sotto "enable bash completition..."
al prossimo login sarà attivo
- Ora qualche aggiustatina a VIM (se lo usate):
modifichiamo il file /etc/vim/vim.rc:
in questo file le righe che cominciano con il doppio apice (") sono commenti:
dovete togliere il commento a "syntax on" per abilitare l'evidenziazione della sintassi.
Inserite anche la linea "set mouse=a" per abilitare il supporto del mouse (al momento
il mio mouse usb non funziona, ma non è un problema tanto dobbiamo ricompilare il kernel)
- Ora impostiamo i colori per il comando ls (che per la cronaca serve per vedere la
lista di file nella directory corrente) e impostiamo qualche alias,
per entrambe le cose dobbiamo modificare il file /etc/profile:
vim /etc/profile e aggiungiamo le seguenti righe:
export LS_OPTIONS='--color=auto'
per creare la variabile LS_OPTIONS che conterrà tutte le opzioni che vorremo passare a LS...
alias ls='ls $LS_OPTIONS'
per far si che quando diamo 'ls' in realtà gli passiamo
anche le opzioni che abbiamo appena scelto.
alias ll='ls $LS_OPTIONS -l'
per far si che premendo 'll' possiamo avere
la lista dettagliata dei file...
- Già che stiamo modificando /etc/profile aggiungiamo anche:
alias cls='clear' per far si che appunto con il
comando cls venga cancellato lo schermo (in UNIX si fa con 'clear')
E inoltre inseriamo la riga trap clear 0:
il comando trap serve per eseguire qualcosa al verificarsi di un evento,
in questo caso, esegue clear quando avviene il segnale 0 (che è il segnale di uscita)
in questo modo quando vi scollegherete (con exit)
lo schermo verrà cancellato. Comodo!
-
Un'altra cosa comoda è cambiare il prompt del terminale:
per cambiarlo impostiamo la variabile d'ambiente $PS1 (sempre in /etc/profile):
$PS1='\u@\w'
if [ "`id -u`" -eq 0 ]; then
PS1=$PS1'# '
else
PS1=$PS1'$ '
fi
Questo imposta prima il prompt a qualcosa tipo <nomeutente>@<percorso>
poi controlla se l'utente è root, se lo è imposta il carattere finale al cancelletto, altrimenti al dollaro! Così per convenzione. Poi dovremmo togliere eventuali personalizzazioni del singolo utente che possono essere nelle home in .bashrc o .profile.
Prima di continuare con ulteriori settaggi (mi rendo conto che sono davvero tanti)
installiamo tutto quello che ci serve con aptitude (non si sa mai che qualcuno poi
voglia scrivere nuovi file di configurazione)...
andiamo allora in
aptitude aspettiamo che ci mostri la lista
dei pacchetti disponibili e scorriamola, i tasti importanti da sapere sono
+ |
Installa il pacchetto selezionato |
- |
Disinstalla |
M |
Tieni il pacchetto solo finché serve a qualcun'altro. Io in genere, imposto così tutte le librerie. |
g |
Effettua le modifiche |
u |
Scarica la lista aggiornata dei pacchetti |
/ |
Per cercare e "\" per cercare ancora |
r |
Pacchetti che dipendono dal selezionato |
d |
Pacchetti dai quali dipende il selezionato |
q |
Per uscire (al solito) |
|
|
cambiamo prima due impostazioni da "Option - UI Options"
togliamo la spunta da "Pause after downloading"
mentre da "Option - Misc" mettiamo la spunta su "Automatically upgrade installed packages"
In "Option - UI Options" cambiamo la stringa in "display format for package view" per poter vedere quanto occupano i pacchetti e quanto deve scaricarne, scriviamo questa:
%c%a%M %p %D %I %Z #%v
%V dove appunto %D è quanto dovrò scaricare e %I è quanto occuperà su disco il pacchetto installato.
Premiamo "u" per aggiornare la lista dei pacchetti e installiamo i seguenti pacchetti:
(qui andrebbe aperta una parentesi infinitamente lunga... molte sono le scelte da fare
per installare i pacchetti: che editor di testo? nella grafica che gestore di finestre,
desktop enviroment e librerie? sono davvero una valanga... io vi do le mie scelte
attuali (non definitive ne altro) come indicazione, sapendo che potrebbero cambiare
(e forse col tempo le cambierò anche su questa pagina).
alsa-utils (nel kernel 2.6 per i suoni si usa ALSA)
alsamixergui
apmd (per il risparmio energetico)
apt-spy (ne parlavamo prima)
bluefish (un bellissimo editor)
bzip2 (scompattatore)
fbset (non si sa mai che andremo ad usare frambuffer)
gpm (per poter usare il mouse in modalità testo)
gqview (programmino per vedere le immagini -GTK-)
hdparm
hotplug
initrd-tools
isapnptool
libncurses5 (per avere l'interfaccia testuale curses)
libncurses5-dev
kernel-package (compilare il kernel nella "Debian way")
lvm2 (per le partizioni dinamiche)
mc
module-init-tools (necessario per i kernel 2.6)
openoffice.org (suite office corposa, circa 200Mb)
openoffice.org-l10n-it
parted (per ridimensionare le partizioni)
powertweak
sleepd
udev
unrar
unzip
x-window-system-core (il server grafico)
con le numerosissime dipendenze, per un download di circa 200Mb
PS. Se siete in rete locale e prevedete di fare altre installazioni di Debian:
o vi scaricate dei cd aggiornati di Sid, oppure, meglio, potete usare uno dei
computer come proxy per apt... tutti i pacchetti installati passeranno da lui che
realizzerà una cache per le successive installazioni (lo faremo nelle prossime
puntate).
altri pacchetti che possono essere interessanti sono:
sitecopy (sync di una pagina web con la copia locale)
xsitecopy
mozilla-firefox-locale-it
gimp (per il fotoritocco)
gimp-python
gimp-svg
python-psyco
kpdf
john
cdcd (un player cd da linea di comando molto comodo)
ettercap-gtk (sniffer per la rete italiano)
wxvlc (è un player per filmati di ogni razza)
gaim (un bel client ICQ, MSN e altri)
Per la configurazione di X, cercate il driver piu' adatto alla vostra scheda video,
se un driver è esattamente per la vostra scheda video ne sfrutterà più funzionalità,
viceversa se ricadete per esempio, su un driver vesa generico, la scheda video funzionerà,
ma senza ottimizzazioni...
Nel mio caso ho una Geforce, quindi installo il driver nv, e in seguito scaricherò i
driver binari dal sito della NVidia.
Scegliete il tipo di tastiera (pc105 per quelle con i tasti windows) e la lingua.
Se X non dovesse andare, per smanettamenti vari il file con le impostazioni è
/etc/X11/XF86Config-4 (man XF86Config-4) per avere un aiuto sulla sintassi.
Per fare le prove avviate
X e per uscire premete
CTRL+ALT+BACKSPACE.
A me ora non vede il mouse USB (che in X è impostato come "core pointer" quindi non
posso ancora andare in X senza mouse). E' giunto il momento di installare il kernel
così avremo alsa, usb, e cosuzze varie funzionanti... (o forse l'intera macchina
sarà non funzionante, lo avete un dischetto con una distribuzione live eventualmente?).
Ricompilare il kernel
Scarichiamo il kernel e scegliamo cosa includervi e cosa no,
e ricompiliamolo alla "Debian way".
Io sono a riga di comando quindi per scaricarlo uso lynx, un comodo browser testuale...
digitate
lynx www.kernel.org per andare alla pagina con i
sorgenti del kernel, nella riga "latest stable version" cliccate sulla F (che sta per
full source: tutti i sorgenti completi, visto che al momento non ne abbiamo)
(vi muovete con le frecce e premete INVIO per cliccare).
Scaricherà il file compresso in bzip2, scegliamo "D"ownload e scarichiamo i
34Mb di sorgenti compressi (nella cartella in cui eravate).
Prima di scompattare il file spostiamolo nella cartella /usr/src dove normalmente
andrebbero i sorgenti:
mv linux-2.6.xx.tar.bz2 /usr/src
[dove xx è la sottoversione del kernel] andiamo alla cartella
cd /usr/src
e scomprimiamo il file:
tar xjvf linux-2.6.xx.tar.bz2
(l'opzione 'x' sta per "estrai",
'j' per "il file è in bunzip2, 'v' per "mostrami i nomi dei file che stai
scompattando", e dopo la 'f' va indicato il nome del file da scompattare).
Verrà creata una cartella 'linux-2.6.xx' che conterrà i sorgenti...
E' prassi creare un collegamento /usr/src/linux che punta ai sorgenti del kernel installato,
creiamolo subito:
ln -s linux-2.6.xx linux.
Entriamo allora nella cartella linux e cominciamo la compilazione:
Lo strumento che Debian mette a disposizione si chiama make-kpkg (kernel package), il kernel
verrà compilato e messo in un pacchetto debian (.deb) pronto per essere installato
con gli strumenti consueti per i deb: dpkg...
I passi da seguire sono questi:
- Se necessario cancellare i vecchi file temporanei creati da make-kpkg con
make-kpkg clean
- Quindi configurare il kernel con i metodi classici (questi non sono prettamente
debianistici), io uso il menu testuale quindi
make menuconfig
Qui si apre un mondo di possibilità, e ci perderete davvero molto tempo a vedere
le descrizione di tutte le opzioni, a scegliere quali vi sono utili e quali no
(che non vorrete installare)... Mano quindi al manuale delle vostre periferiche per
sapere come è fatta la vostra macchina, sfruttate anche il comando
lspci che vi indica i nomi dei vari aggeggi nel vostro PC,
cat /proc/cpuinfo per la CPU.
Ovviamente questa operazione è diversa da macchina a macchina, nelle distribuzioni Linux
solitamente vengono inclusi moduli per tutte le esigenze, in modo che tutto funzioni bene,
ma che risulti tutto anche un po' più pesante... Per questo stiamo ricompilando
il kernel, per fare in modo che Linux giri bene sulla nostra macchina e non carichi
cose di cui non avremo mai bisogno...
Una buona base per cominciare a fare le proprie modifiche, è quella con tutte le scelte
di default... Per passare alla configurazione (tutte le scelte sono impostate nel file
.config) di default digitare make defconfig
da qui
si procederà con make menuconfig
Queste sono le opzioni che ho dovuto cambiare io:
- Loadable module support
- Processor type and features
- Processor family = Athlon (ho un Athlon XP)
- Symmetric multi-processing support = N (ho un solo processore)
- Local APIC support on uniprocessors = Y
- IO-APIC support on uniprocessors = Y
- check for P4 thermal throttling interrupt = N
- Executable file formats
- Kernel support for a.out = M (li si usa di rado)
- Kernel support for MISC = M (idem con patate)
- Device Drivers
- Parallel port support
- Use FIFO/DMA if available = Y
- Plug and Play support
- ISA Plug and Play support = Y
- Block devices
- Loopback device support = M
- ATA/ATAPI/MFM/RLL support
- CMD640 chipset bugfix/support = N
- RZ1000 chipset bugfix/support = N
- Intel PIIXn chipsets support = N
- PROMISE PDC202{68|69|70|71|75|76|77} support = Y (ho una PDC20271)
- VIA82CXXX chipset support = Y
- Multi-device support (RAID and LVM)
- Multiple devices driver support = Y
- Device mapper support = Y (metteremo LVM2 presto)
- Networking support
- Ethernet (10 or 100Mbit)
- RealTek RTL-8139 ... = N
- VIA Rhine support = Y (la mia scheda di rete)
- Ethernet (10000Mbit)
- S2IO 10Gbe XFrame NIC = N
- Character devices
- Intel 440LX... = N
- Intel i865 ... = N
- VIA chipset support = Y
- Graphics support
- Support for frame buffer devices = Y
- Console display driver support
- Video mode selection support = Y
- Framebuffer console support = M
- Logo Configuration
- Sound
- Advanced Linux Sound Architecture
- PCI device
- EMU10K1 ... = Y (ho una SBLive)
- Intel i8x0 ... = N
- File systems
- Network file system
- DOS/FAT/NT Filesystems
- NTFS Filesystem support = M
- Kernel Hacking
- Sleep inside... = N
- Use 4kb for kernel stacks =N
Quando avete finito... fate Exit, e consentite di salvare uscendo (mi raccomando
o avete fatto tutta questa scelta per nulla).
Ora che avete il vostro bel file .config con tutte le vostre scelte (saranno giuste? lo
scopriremo al prossimo riavvio) dovete compilare.
-
Fate make-kpkg kernel_image modules_image
per compilare il kernel in un .deb (questa è la famosa Debian way) e aspettate
che tutto sia compilato (potrebbe metterci anche ore la prima volta, con computer lenti).
-
Il pacchetto con il kernel compilato lo troverete nella cartella superiore
(in /usr/src se avete fatto tutto a dovere) con nome kernel-image-2.6.xx eccetera.
Installatelo digitando
dpkg -i kernel-image 2.6.xx_blabla.deb
vi verrà chiesto se creare un floppy di avvio
e se installare il nuovo kernel come indicato nel lilo.conf,
detto fatto il kernel è installato...
Riavviate per vedere se tutto funziona per il verso giusto, e nel caso cambiate
qualcosa ripartendo dalla configurazione del kernel...
- Per la cronaca, quello sopra dicevamo è il metodo Debian, il metodo classico invece oltre alla configurazione con
make menuconfig
vuole un
make
(per compilare tutto)
make modules_install
(per installare in moduli in /lib/modules)
make install
(per installare il kernel in /boot)
- A me sembra sia andato tutto bene, il sistema si riavvia senza errori,
ma ci vorrà un po' per controllare che ogni cosa funzioni...
Continuiamo la configurazione
Ora il mouse mi funziona,
X funziona, ma mi accorgo che la frequenza di aggiornamento dello schermo è 75Hz, quando
potrebbe arrivare a 100, torno allora in /etc/X11/XF86Config-4 e nella Section "Monitor"
cambio la VertRefresh da 50-75 a 50-160
già che siamo qui commentiamo la riga in Section "Files" con
FontPath "unix/:7100" che tanto non installerò alcun fontserver...
I piu' attenti si saranno accorti che ancora non ho installato alcun desktop enviroment, lo installo ora... la mia scelta ricade su KDE, riapro
aptitude e installo i pacchetti "kde-core" e "kde-i18n-it" (il secondo è la localizzazione in italiano. i18n sta per internationalization: i seguito da 18 caratteri e poi una n, sono proprio dei burloni!). Non installo quindi i singoli programmi che aggiungerò solo quando necessari (se volete tutto installatevi quindi il pacchetto "kde" e vi passa la paura!).
Dopo un lungo download, proviamo a dare
startx e andiamo in KDE (da utente normale, non da root).
All'avvio parte un wizard (Kandalf) che ci guida attraverso alcune scelte, tra cui la lingua... Poi, da me, appare un messaggio di errore: "Error while initializing the sound driver device /dev/dsp can't be opened". Chiarissimo no? :-) Beh, semplicemente il mio utente normale non puo' accedere a /dev/dsp... risolviamo andando a vedere i permessi di questo device
ls -l /dev/dsp
crw-rw---- root audio
vediamo che può scriverci l'utente root e gli utenti del gruppo audio. Aggiungiamo allora l'utente al gruppo audio:
addgroup utente audio
('utente' è l'utente da abilitare).
Rientriamo in KDE (ora va tutto bene), e vediamo un po' di mie preferenze sparse:
La prima cosa che faccio è ridurre a 2 il numero dei desktop e nascondere l'applet "pager" che non mi serve. Normalmente uso WIN+TAB per scorrere tra i desktop, ora però non mi funziona, vado allora in Control Center - Regionali ecc - Scorciatoie della tastiera e ci metto tutte le scorciatoie che mi passano per la mente. Tra questi i miei preferiti:
ALT + F2, F3 ( per massimizzare o mandare a tutto schermo la finestra); Win+D per "Mostra desktop"; Win+R per "Esegui comando". Nelle opzioni di Konqueror in "Aspetto" tolgo la sottolineatura ai nomi dei file. E abilito le anteprime per i protocolli locali.
Solitamente uso aptitude per gestire i pacchetti, mi piacerebbe che il mio utente avesse accesso ad apt senza dover diventare root ogni volta... questo è un lavoro per SUDO (da usare con cautela):
da console, come root, diamo
visudo e aggiungiamo la linea (in user privilege per la precisione)
utente ALL=(root) NOPASSWD: /sbin/halt,/sbin/shutdown
e [in una riga]
utente ALL=(root) NOPASSWD: /usr/bin/apt-get,/usr/bin/aptitude
in questo modo quando l'utente farà
sudo apt-get o
sudo aptitude, sarà come se fosse stato root in persona ad eseguirlo, lo stesso per lo spegnimento con shutdown o halt... E' una seccatura però dover ricordarsi quel "sudo", la sudorazione dovrebbe essere un processo naturale e quindi definiamo un alias per dire "quando io scrivo aptitude, tu sii abbastanza sveglio da capire: "sudo aptitude".
Per far questo modifichiamo nella nostra home il file .bashrc (con
vim ~/.bashrc per esempio). Il file .bashrc viene chiamato ogni volta che chiamiamo una "non-login shell" come un terminale in X, mentre le "login shell" chiamano il file ".bash_profile". Aggiungiamo queste dure righe a .bashrc:
alias aptitude='sudo aptitude'
alias apt-get='sudo apt-get'
Dovremmo però aggiungerle anche a .bash_profile, ma è scomodo avere
Ora tutto va bene, magnifico!
Ci sarà anche da modificare il file /etc/motd per cambiare il "messaggio del giorno" mostrato all'avvio da console... e il file /etc/issue, per una questione puramente estetica, e scrivere anche li che ora la nostra Debian è SID ...
Vedere le partizioni Windows sulla stessa macchina
La strada al completamento di queste impostazioni è lunga e tortuosa... ma ora veniamo finalmente a cose un po' piu' interessanti, i cui effetti sono un po' piu' che dettagli (ehm... ma FONDAMENTALI dettagli!). In particolare, come intuirete dal titolo, a questo punto vorrei poter accedere alle partizioni Windows che sono nei dischi fissi di questa macchinuzza... Se prima avevate smacchinato con l'fstab, dovreste già sapere a che device (in /dev/ ) corrispondono le partizioni che vi interessano, altrimenti andate in cerca con un bel
fdisk -l che magicamente vi mostra tutte le partizioni locali e pure il loro tipo.
Nel mio caso ho 3 partizioni(cosa cavolo ci faccio con tre partizioni? Mah!) su 2 dischi che vorrei vedere, tutte e tre le partizioni sono in NTFS. In Linux il supporto per NTFS è in sola lettura, quindi, ci leggete ma NON CI DOVETE scrivere (se mi seguite, monteremo le partizioni in sola lettura).
Cominciamo con la prima /dev/hda1, per le altre si farà allo stesso modo. Prima di tutto creiamo in Linux una cartella dentro la quale comparirà il contenuto della partizione Windows (questa cartella si chiama "mountpoint"). Io la creo in /mnt/hda1 perché è tardi e la mia fantasia è impegnata altrove :-).
mkdir -p /mnt/hda1 (il parametro -p serve per creare anche tutte le cartelle padri se dovesse servire: in questo caso, se non ci fosse la cartella /mnt).
A questo punto per montarla (se si hanno i permessi sufficenti) si usa il comando mount <device> <mountpoint> ovvero:
mount /dev/hda1 /mnt/hda1 (è qui che serve il modulo del kernel che legge la ntfs).
Se tutto è andato bene noi possiamo accedere al disco NTFS appena montato, ma se vogliamo che questo punto di mount sia ricordato al successivo riavvio dobbiamo cambiare l'fstab.
Aggiungiamo questa riga a /etc/fstab:
/dev/hda1 /mnt/hda1 ro,users,auto,umask=0 0 0
dove nella terza colonna abbiamo scelto "users" per consentire a tutti gli utenti di montare questa partizione, "ro" (che sta per read-only) per montare la partizione in sola lettura, e "auto" per far si che si monti automaticamente all'avvio, "umask=0" infine imposta la bitmask dei permessi visto che in NTFS non sono presenti.
Se volete provare se tutto funziona, smontate la partizione (se è ancora montata da prima) con
umount <mountpoint>, e date
mount <mountpoint> (non serve piu' specificare il device: mount gentilmente va a vederselo in fstab).
Usare l'accelerazione hardware della Nvidia
Il prossimo passo è utilizzare al meglio la scheda video (la mia è una Nvidia Geforce4 T4200): essendo una Nvidia, scarico i driver aggiornati dal sito www.nvidia.com (per la cronaca in Download Drivers - Graphic Drivers - Geforce - Linux IA32 (processori a 32bit) ).
Scarichiamo il file .run e, come facciamo come indicato dal sito nel file readme (ora sarò + sbrigativo):
- Chiudiamo la sessione di X: termina sessione non basta perché (usando KDM) KDM tiene aperto X.
Andiamo allora in una console vera (CTRL+ALT+F2 per esempio) e da root chiudiamo KDM con /etc/init.d/kdm stop
- Lanciamo da root il file scaricato con sh NVIDIA-Linux-...eccetera... ci installa il modulo nvidia (che è incompatibile con rivafb) e un comodo comando "nvidia-installer"
- Se tutto è andato (piu' o meno) bene, modifichiamo il file /etc/X11/XF86Config-4:
Cambiamo nella sezione Device della scheda video: il "Driver" da nv (o vesa, o quant'altro) a "nvidia". Poi nella sezione "Module" ci assicuriamo che ci sia il modulo "glx" mentre togliamo "dri" e "GLcore"...
- Fatto questo avviamo X.
Gli strumenti chiave per vedere se va tutto bene sono glxgears che mostra degli ingranaggi in OpenGL e misura i frame per secondo (con i driver nvidia, rispetto ai classici vesa gli fps sono aumentati di circa 10 volte). E glxinfo che da, appunto, informazioni sull'accelerazione video.
Qui ho avuto un problemuzzo di permessi, glxinfo andava in "segmentation fault" da utente comune... per rimediare ho abilitato tutti a scrivere nei nuovi device nvidia:
chmod 666 /dev/nvidia* dove 666 è la maschera che permette a proprietario, gruppo e resto del mondo di leggere e scrivere nei devices.
Bene, buone partite a tux-racer!!
Vedere anche in rete locale con Samba
Ora che vediamo le partizioni Windows sulla stessa macchina abbiamo fatto un passo in avanti, ma già ci siamo perché non andare oltre e vedere le unità condivise su altre macchine (Windows o Linux che siano) in rete locale? In Debian per poter usare la cosiddetta "condivisione file e stampanti" si usa il pacchetto
samba. Volendo, se dovete condividere cartelle con solo altri sistemi Linux potreste usare altri protocolli nativi, come nfs, ma Samba è abbastanza potente e soprattutto, come l'erba cattiva i sistemi Windows sono un po' in ogni rete (vedi xbill)!!
Installiamo quindi il pacchetto "samba" (ormai sapete come) ci viene chiesto il gruppo di lavoro, per il resto teniamo le impostazioni di default.
Installiamo anche il pacchetto
cupsys che serve per gestire le stampe in modo molto comodo... Beh, non resisto, quello che dovete fare è
apt-get install cupsys samba
Il file responsabile di tutti i settaggi di samba è /etc/samba/smb.conf ("man smb.conf" per i dettagli). Andiamo subito a modificarlo per mettere in condivisione qualcosa:
Mostrare il log in una virtual console inutilizzata
Una comodità che mi piace avere è poter vedere il log di sistema in una console inutilizzata... per esempio l'ottava:
Modifichiamo il file /etc/syslog.conf e togliamo i commenti alle righe:
daemon,mail.*;\
news.=crit;news.=err;\
*.=debug;*.=info;\
*.=notice;*.=warn /dev/tty8
Dove /dev/tty8 è proprio la console che mostrerà il log... Per la cronaca, ci si arriva con CTRL+ALT+F8...
Per applicare le modifiche, riavviamo il servizio syslog con
/etc/init.d/syslogd restart
Cambio bootloader: da Lilo a Grub
Il bootloader è un programma, generalmente di pochi kb, che viene richiamato dal bios all'avvio del sistema: il suo compito è principalmente quello di passare il testimone (dell'avvio della macchina) al sistema operativo.
In fase di installazione avevo scelto il collaudatissimo e vecchissimo LILO , ora però mi garbava di installare GRUB che dalla sua ha una comodissima console che ci permette di avviare da dove vogliamo se qualcosa non dovesse andare per il verso giusto.
Vediamo come installarlo:
- Siamo in Debian, quindi potremmo cominciare proprio scaricando il pacchetto "grub" con apt. Questo scaricherà i file di grub e li metterà nella cartella /boot/grub senza modificare comunque le vostre precedenti impostazioni di avvio.
- Ora dobbiamo mettere grub nel disco che viene avviato all'avvio del computer, questo è marcato come disco attivo. Se non sapete qual'è potete dare fdisk -l e guardate quale ha l'asterisco sulla colonna BOOT.
Nel mio caso /dev/hda1: installo grub con grub-install /dev/hda
ATTENZIONE: Mi raccomando di fare grub-install sul device (hda) e non sulla partizione (hda1) altrimenti seghereste il settore di boot della partizione che non è bene. Siccome mi è successo, se segate la partizione di Windows potete ripristinare il boot avviando dal cd di installazione di windows, andando in console di ripristino e dando il comando "fixboot".
Grub chiama i dischi a modo suo: anziche chiamare hda il primo disco e hda1 la prima partizione del primo disco, grub chiama i dischi per numero, cominciando dallo zero. Abbiamo così (hd0) il primo disco e (hd0,0) la prima partizione del primo disco.
grub-install ci mostra a schermo la mappatura correte per aiutarci.
-
Tutte le impostazioni di grub risiedono nel file /boot/grub/menu.lst. Nel pacchetto grub di Debian abbiamo anche una comoda utility che crea menu.lst per noi. Chiamiamo update-grub e lasciamo che questa crei il file.
-
Andiamo ora a vedere il file menu.lst: vim /boot/grub/menu.lst:
Il file è ben commentato quindi non mi dilungo, io ho cancellato le voci che non mi interessavano e ho aggiunto una voce per Windows che update-grub non mi aveva trovato. Sostanzialmente ogni voce appare così
title Titolo della voce di menu
root (hd0,2)
kernel /boot/vmlinuz root=/dev/hda3 ro
boot
Dove root nel mio caso corrisponde /dev/hda3 indicato come vuole Grub, mentre nel kernel, passiamo con l'opzione root il filesystem da montare.
Per avviare Windows, per esempio in /dev/hda1 dobbiamo inserire invece:
title Windows 2000
root (hd0,0)
makeactive
chainloader +1
A differenza di LILO, una volta modificato il file di configurazione non dobbiamo fare nient'altro per rendere attive le modifiche.
Buon Riavvio :-)
Masterizzare: K3B
Giungerà il momento di voler masterizzare (e di stampare, scandire, ... ok, ok! Una una cosa x volta!), proviamoci con K3B: installiamo il pacchetto "k3b" (ma anche "sox" è utile) ed è quasi fatta! Ehm, quasi perchè l'utente normale non ha accesso al device del masterizzatore. Gentilmente Debian, ci fa il piacere di identificare quali tra i device sono lettori o masterizzatori di CD (o DVD) e fa si che il loro gruppo proprietario sia "cdrom".
Identifichiamoli quindi con
ls -l /dev/hd* e vediamo quali hanno cdrom come gruppo.
Abbiamo ora due possibilità
-
Questa è quella consigliata: lasciamo i permessi così come sono e aggiungiamo l'utente che deve poter masterizzare al gruppo cdrom: (da root)
addgroup username cdrom
consentendogli quindi di masterizzare. Piccola parentesi: con il comando groups si vedono a che gruppi appartiene un utente.
-
Il secondo metodo (quasi quasi manco lo scrivo) è cambiare i permessi dei cdrom in modo che cani e porci possano scriverci (chmod 666 ...). Alcune distribuzioni lo fanno, ma siamo su Debian mica per nulla ;-)
A questo punto manca un piccolo dettaglio:
Per la masterizzazione è consigliato eseguire cdrdao e cdrecord da utente root... Si puo' attivare velocemente il bit suid ai due comandi con k3bsetup, mettendo la spunta su "Use burning group: cdrom" (per il motivo visto prima) e dando ok.
Altra piccola nota: attenzione al kernel 2.6.8.x perché non riconosce bene alcuni masterizzatori CD... per esempio il mio masterizzatore DVD avrebbe potuto masterizzare DVD ma non CD! Curioso... cmq, un upgrade a kernel piu' recenti ha risolto il problema.
Stampare: Cups
Per far funzionare la nostra stampante useremo, come detto prima, CUPS ("Common UNIX printing system") che ormai viene addottato da tutte le distribuzioni.
Per la configurazione possiamo usare il nostro browser preferito, andando all'indirizzo "http://localhost:631" (nel caso cups stia girando sulla stessa macchina). Cups infatti si mette in ascolto sulla porta 631.
Dobbiamo ora aggiungere la stampante: andiamo in "Do Administration tasks" - "Add printer", diamo un nome (senza spazi) e una descrizione eventualmente della stampante, scegliamo la porta alla quale è connessa la stampante, e infine il driver e il modello da usare (se ci fossero problemi potete cercare su
linuxprinting.org.
Quando avete finito, stampate una pagina di test incrociando le dita.
Se doveste condividere la stampante in rete, alla fine del file /etc/cups/cupsd.conf troverete gli host a cui è consentito l'accesso.
Infine, per abilitare la stampa da KDE e le sue applicazioni (Konqueror, Kuickshow e quant'altri) dovete semplicemente andare nel centro di controllo di KDE, andare su periferiche - stampanti, e scegliere (in basso a destra) CUPS come "sistema di stampa".
Un'altra piccola nota: per stampare da riga di comando, potete usare il comando lpr, per esempio per stampare un'immagine:
lpr -o scale=100 nomeimmagine.jpg
stamperà l'immagine in modo che stia nel foglio manentendone le proporzioni.
Che l'inchiostro sia con voi!
Centralizzare i download di apt-get
Se avete una rete locale con piu' sistemi Debian che aggiornate spesso (in questa guida abbiamo installato SID) puo' essere una seccatura ogni volta scaricarsi i nuovi pacchetti, specie se avete una connessione lenta!
Beh questo punto permette proprio di risolvere questa situazione.
Installeremo in uno dei computer, che farà da server, il pacchetto apt-proxy che permetterà di condividere i pacchetti scaricati con gli altri computer. Poi in tutti i computer (compreso il server) cambieremo la lista di fonti (sources.list) in modo da puntare al server. Cominciamo:
-
Indovinate un po! Per prima cosa dobbiamo installare il pacchetto apt-proxy.
-
Ora modifichiamo il file /etc/apt-proxy/apt-proxy-v2.conf per cambiare la lista delle fonti alle quali il nostro server si collegherà per scaricare i pacchetti:
aprimo il file da root con vim /etc/apt-proxy/apt-proxy-v2.conf e andiamo a cercare in fondo le righe dopo "backends = ", a queste aggiungiamo le nostre fonti (che prima erano le parti iniziali di sources.list):
Per esempio se in sources.list avevamo:
deb http://ftp2.it.debian.org/debian/ unstable main
metteremo in apt-proxy-v2 la riga:
http://ftp2.it.debian.org/debian/
-
Ora cambiamo sul client (e dopo su tutti i client che sfrutteranno il server) il file /etc/apt/sources.list in modo da aggiungere all'inizio la voce che indica il server (che ascolta alla porta 9999):
per esempio: deb http://192.168.1.2:9999 unstable
do
-
Facciamo ripartire apt-proxy con
/etc/init.d/apt-proxy force-reload
-
A questo punto possiamo fare un apt-get update e divertirci!
Installare Apache2
Installiamo ora un webserver locale, utile per provare le pagine web che create, se le create, altrimenti saltate pure :-)
Installiamo il pacchetto
apache2 e il pacchetto
libapache2-mod-php4...
Questo già ci crea un webserver funzionante e andando all'indirizzo
http://localhost/ ci verrà mostrato il contenuto della cartella /var/www.
Creiamo ora un nuovo sito, in modo che digitando sul browser "
http://prova.rete.locale" possiamo accedere alla cartella in
/prova, così possiamo avere tanti siti virtuali sulla nostra macchina:
Creiamo un file in /etc/apache2/sites-available (siti disponibili), lo chiamiamo prova e ci scriviamo:
<VirtualHost *>
Servername prova.rete.locale
DocumentRoot /prova
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Dove appunto in DocumentRoot abbiamo scelto la cartella che conterrà la root del sito, e in Servername abbiamo messo il nome del server virtuale.
Abilitiamo il sito inserendo un link simbolico nella cartella sites-enabled (siti abilitati) con
cd /etc/apache2/sites-available
ln -s /etc/apache2/sites-available/prova ../sites-enabled/
Riavviamo apache con
apache2ctl restart
Ecco ora apache è pronto, ma se proviamo ad accedere http://prova.rete.locale non riuscirà trovare alcun indirizzo con questo nome. Dobbiamo allora andare a modificare il file /etc/hosts e dirgli che prova.rete.locale lui ci deve mandare al computer locale (localhost)...
Nella prima riga che corrisponde a localhost, inseriamo alla fine "prova.rete.locale", così
127.0.0.1 localhost.localdomain localhost prova.rete.locale
Come ultima cosa, cambiamo nel file "apache2.conf"
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
in
DirectoryIndex index.html index.htm index.cgi index.pl index.php index.xhtml
in modo che legga automaticamente anche le pagine index.htm (e riavviamo apache)
Probabilmente vorrete anche installare il pacchetto
php4-gd, presente in molti webserver in giro, che fornisce una libreria molto comoda per manipolare le immagini da php. Una volta installato, modificate il file
/etc/php4/apache2/php.ini e togliete il commento alla riga:
extension=gd.so
Piccola nota per Ubuntu:
Il pacchetto apache2 di Ubuntu, ha un'impostazione che non mi spiego di default: apache imposta automaticamente la codifica delle pagine a UTF8 ignorando la codifica che impostate nell'html... comporamento assurdo, per tornare alla norma (di Debian) modificate il file /etc/apache2/conf.d/charset e commentate con un # la riga:
# AddDefaultCharset UTF-8