FAQ: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m (→‎Generale: aggiunta faq relativa alla rotella del mouse)
Riga 1: Riga 1:
La creazione di un repository Debian personale pu� essere utile nel caso si vogliano rendere disponibili per l' installazione tramite l' [[Introduzione all' Apt System|APT System]] i pacchetti *.deb creati da noi. Il repository cos� creato pu� essere utilizzato all' interno della nostra LAN, oppure reso accessibile a un gran numero di utenti tramite internet.
==Debian==


Esistono fondamentalmente due diversi approcci alla creazione di un repository:
===Installazione===
* '''Repository Automatico''': ha una struttura complessa, gestisce un pool di pacchetti e supporta architetture (i386, sparc, ecc...) multiple. A fronte di un maggior lavoro lato server permette un uso altamente automatizzato lato client;
==== È possibile installare, con apt-get, anche i pacchetti indicati come 'suggeriti' e/o 'raccomandati'?====
* '''Repository Semplice''': gestisce una sola architettura. E' il pi� indicato per i piccoli repository, specie quelli personali, perch� richiede un minor lavoro lato-server.
Apt-get non offre ancora questa opzione, ma sono presenti due soluzioni:
* installare aptitude ed utilizzarlo al posto di apt:<pre># aptitude install nomepacchetti</pre>
* uno script che fa quanto richiesto appoggiandosi ad apt-get: <br/>'''aag''' - advanced-apt-get apt-get install with support for recommends and suggested - http://www.formorer.de/code/aag/


In questa guida vedremo come realizzare il secondo tipo di repository.
===Release===
==== A cosa servono le release successive di una versione Stable di Debian (ad esempio Woody 3.0r4 o r6...)?====
Le varie release successive di una Debian Stable sono dovute a degli aggiornamenti di sicurezza, bugfix, rimozione di pacchetti non più usabili, ...


=Repository semplice=
Ecco alcuni esempi:
==La Struttura==
Woody 3.0R3
Per prima cosa dovremo scegliere dove risieder� fisicamente il nostro repository. Una buona scelta pu� essere una directory all' interno della nostra home, come anche una directory all' interno di /usr/share. In questa guida creeremo il repository nella nostra home, ma sentitevi liberi di posizionarlo dove pi� vi aggrada.
Woody 3.0r4
Woody 3.0r5
Woody 3.0r6
 
===Repository===
==== Cos'è un repository?====
Un repository è un archivio di pacchetti .deb (quelli tipici Debian), che presenta una sruttura ben definita, molto simile a quella che si trova all'interno di uno dei CD di installazione.
I pacchetti contenuti in un repository sono indicizzati in questi file:
* '''Packages.gz''' (se sono pacchetti contenenti binari)
* '''Sources.gz''' (se sono pacchetti contenenti codice sorgente)
 
Il comando
<pre>
<pre>
$ mkdir ~/debian
# apt-get update
</pre>
</pre>
Ora dobbiamo creare le due sottodirectory ''binary'' e ''source'' che conterranno rispettivamente le versioni binarie e sorgenti dei nostri pacchetti:
non fa altro che scaricare uno di questi file (a seconda che si sia scelto di avere la lista dei pacchetti binari o quella dei pacchetti sorgente) per ogni riga non commentata presente nel file <tt>/etc/apt/sources.list</tt>, così da avere disponibile sul proprio computer un elenco dei pacchetti contenuti nel repository indicato in quella riga.
Per approfondimenti vedere la sezione del wiki: [[Indice_Guide#Gestione_dei_Pacchetti | Gestione dei Pacchetti]].
 
E' dunque consigliabile avere nel proprio <tt>/etc/apt/sources.list</tt> diversi repository, in quanto potrebbero contenere pacchetti diversi.
 
Una lista completa dei repository ufficiali può essere trovata sul sito ufficiale Debian: http://www.debian.org/mirror/mirrors_full.
Diversamente esistono in internet moltissimi repository non ufficiali per le più disparate esigenze. Un punto di partenza per cercare repository non ufficiali potrebbe essere http://www.apt-get.org
 
====Come mai per Testing e Unstable non ci sono più i repository non-US?====
Come si può leggere in [http://lists.debian.org/debian-release/2005/05/msg01163.html questa email] apparsa il 18 maggio su debian-release, il ramo non-US è stato assimilato a quello principale, non essendoci più le motivazioni necessarie per l'esistenza di questa sezione.
 
===Security===
==== Come arrivano in testing gli aggiornamenti di sicurezza?====
Gli aggiornamenti di sicurezza giungono nella distribuzione testing tramite unstable. Essi sono solitamente inviati con una priorità impostata ad high, il che ridurrà il loro tempo di quarantena a due giorni. Dopo questo periodo, i pacchetti migreranno in testing automaticamente, se compilati per tutte le architetture e con tutte le dipendendenze soddisfatte in testing.
 
==== Come è gestita la sicurezza per contrib e non-free?====
La risposta breve è: non lo è. Contrib e non-free non sono parti ufficiali della distribuzione Debian e per questo non sono supportate dal team sicurezza. Alcuni pacchetti non-free sono distribuiti senza sorgenti o senza una licenza che permetta la distribuzione di versioni modificate. E in quei casi sono completamente impossibili i fix di sicurezza. Se c'è la possibilità di risolvere il problema e il manutentore del pacchetto o qualcun altro fornisce un pacchetto correttamente aggiornato, allora di solito il team sicurezza lo processa e rilascia un advisory.
 
====Per quanto tempo sono assicurati gli aggiornamenti di sicurezza?====
Il team sicurezza cerca di supportare una distribuzione stable per circa un anno dal rilascio della successiva distribuzione stable, a meno che un'ulteriore distribuzione stable sia rilasciata nell'anno stesso. Non è possibile supportare tre distribuzioni; supportarne due contemporaneamente è già abbastanza difficile.
 
 
==Java==
=== Come posso installare Java su Debian, senza 'sporcare' il sistema? ===
Le soluzioni sono due:
* scaricarlo da un repository non ufficiale
* Crearsi da soli il pacchetto seguendo [[Make-jpkg:_Pacchettiziamo_Java_Sun | Questa Guida]]
 
=== Come mai non è presente, in Debian, il Java di Sun? ===
Debian, come spesso ricordato, fornisce una Distribuzione Linux 100% FreeSoftware. Quindi Java (quello di Sun) non può venir incluso, visto che non è assolutamente considerabile FreeSoftware.
 
Vengono, quindi, inclusi dei 'cloni' o, meglio, delle nuove implementazioni del linguaggio (kaffe, ad esempio).
 
=== Come posso risolvere i problemi di dipendenze legati ai pacchetti dei programmi scritti in Java? ===
L'unico modo per risolvere questi 'fastidiosi' problemi è installare Java in formato .deb. Per fare questo ci sono due strade:
* pacchettizzarlo da soli (tramite il comodo tool java-package, una guida è reperibile [[Make-jpkg:_Pacchettiziamo_Java_Sun | Qui]])
* scaricandolo direttamente da un repository contenente Java.
 
=== Come posso abilitare il supporto a Java in Firefox? ===
Partiamo dal presupporto che java sia stato installato [[Make-jpkg:_Pacchettiziamo_Java_Sun | seguendo questo metodo]].
 
Localizziamo il file ''libjavaplugin_oji.so'' tramite il comando
<pre>
<pre>
$ mkdir ~/debian/binary
# dpkg -L sun-j2re1.5 | grep libjavaplugin_oji.so
$ mkdir ~/debian/source
</pre>
</pre>
In questo modo avremo una struttura di questo tipo:
(ovviamente sun-j2re2.5 rappresenta il pacchetto che è stato creato tramite il processo descritto nella guida alla pacchettizzazione di Java)
<pre>$ tree debian
 
debian
Una volta individuato, è sufficiente creare un link simbolico:
|-- binary
<pre>
`-- sources
# ln -s /usr/lib/j2re1.5-sun/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla-firefox/plugins/
</pre>
</pre>


==I file di indice==
Ultimata la creazione della struttura del repository e popolati binary e source (se abbiamo anche le versioni sorgenti) con i nostri pacchetti, dobbiamo creare i relativi file di indice. Questi file vengono scaricati da APT quando impartiamo il comando '''apt-get update''' e contengono la lista di tutti i pacchetti presenti in un repository. Quando effettuiamo la ricerca di un pacchetto o quando desideriamo installarlo, APT consulta questi file per stabilire in quale repository esso contenuto.


La creazione dei file di indice ottenuta tramite due utilities: '''dpkg-scanpackages''' e '''dpkg-scansources'''. Il funzionamento dei due programmi identico, ma il primo esamina i file binari ed il secondo quelli sorgenti.


Entrambi gli strumenti restituiscono i loro risultati sullo standard output (stdout): questo significa che di default vedremo l' output a schermo. Per questo motivo necessario reindirizzare il risultato di scanpackages e scansources su file appositi. Per convenzione questi file sono compressi in formato gzip e chiamati '''Packages.gz''' all' interno di ''binary'' e '''Sources.gz''' all' interno di ''source''.


Nell' esempio di questa guida il nostro repository contiene due pacchetti di tipo binario (apt e apt-best) ed un pacchetto di tipo sorgente (apt). Vedremo ora come creare i relativi file Packages.gz e Sources.gz


La struttura del repository di esempio � questa:
==Kernel==
==== Si può aggiornare il kernel a una versione successiva senza doverlo ricompilare? ====
Certamente!
con il comando
<pre>
<pre>
$ tree debian
# apt-cache search kernel-image
debian
|-- binary
|  |-- apt-best-0.3.deb
|  |-- apt-doc_0.5.28.6_all.deb
|  |-- apt-utils_0.5.28.6_i386.deb
|  |-- apt_0.5.28.6_i386.deb
|  |-- libapt-pkg-dev_0.5.28.6_i386.deb
|  `-- libapt-pkg-doc_0.5.28.6_all.deb
`-- source
    |-- apt_0.5.28.6.dsc
    `-- apt_0.5.28.6.tar.gz
</pre>
</pre>
Procediamo con la creazione del file Packages.gz:
si ottiene una lista dei kernel precompilati disponibili per il download.
Una volta individuata la versione voluta, è necessario scegliere quello adatto per il proprio processore (in caso di incertezze, scegliere quello generico i386) ed installarlo come se si trattasse di un normale pacchetto:
<pre>
<pre>
$ cd ~/debian
# apt-get install kernel-image.....
$ dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
  apt apt-best apt-doc apt-utils libapt-pkg-dev libapt-pkg-doc
Wrote 6 entries to output Packages file.
$ ls ~/debian/binary/ |grep Packages
Packages.gz
</pre>
</pre>
e del file Sources.gz
Per installare il kernel dalla versione 2.6.12 in poi, bisogna cercare i pacchetti che iniziano con linux-image anziché kernel-image.
 
 
 
 
==Linux==
==== Che cosa esprime il comando uptime? ====
Il comando Uptime, di cui viene riportato un classico output
<pre>
<pre>
$ cd ~/debian
$ uptime
$ dpkg-scansources source /dev/null | gzip -9c > source/Sources.gz
23:02:23 up 23 days, 23:25,  1 user,  load average: 0.57, 0.57, 0.83
$ ls ~/debian/source/ |grep Sources
Sources.gz
</pre>
</pre>
rappresenta (nell'ordine):
* Ora attuale (23:02:23)
* Per quanto la macchina è stata accesa (up 23 days, 23:25); cioè il tempo passato dall'avvio o dall'ultimo reboot della macchina espresso in giorni, ore, minuti.
* Il numero di utenti connessi (1 user)
* Il carico della Macchina (load average: 0.57, 0.57, 0.83)
Il carico della macchina rappresenta i punti di carico degli ultimi 1, 5, 15 minuti
Riporto una breve descrizione, tratta dal [http://autistici.org/loa/web/main.html Corso di Linux di LOA Hacklab MI ](reperibile nella sezione Docs del loro sito).


==I file di Release==
<blockquote>Un punto di carico equivale a dire che la CPU ha lavoro a sufficienza per riempire il suo naturale ciclo di calcolo della durata di un secondo. Per dirla in altro modo, nell’arco di un secondo la CPU non ha tempo di eseguire un NOP, ossia un’istruzione vuota, che non fa nulla, che viene abitualmente "eseguita” nelle pause di elaborazione.</blockquote>
Se volete poter usare il pinning (''cfr.: [[APT uso avanzato: mixare releases diverse]]'') o permetterne l' uso agli utenti del vostro repository, una volta creati i file Packages.gz e Sources.gz, dovete necessariamente creare un file apposito in ciascuna directory del vostro repository.


Questi file sono chiamati file '''Release''', sono normali file di testo ed hanno una struttura del tipo:
==== Il volume è al minimo a ogni riavvio. Come salvo le impostazioni? ====
Per configurare la scheda audio si usa il comando alsaconf:
<pre>
<pre>
Archive: archivio
# alsaconf
Component: componente
Origin: origine
Label: etichetta
Architecture: architettura
</pre>
</pre>
dove:
Se il comando non viene trovato, significa che dobbiamo installare le alsa-utils:
* archivio = ''� l' archivio Debian a cui i pacchetti appartengono (ad es.: stable, testing. ecc...);
* componente = ''indica il tipo di componente (ad es.: main, contrib, non-free);
* origine = ''specifica il proprietario del repository'';
* etichetta = ''identifica il repository: potete inserire descrizioni, ecc...;
* architettura = ''l' architettura dei pacchetti contenuti nel repository (ad es.: i386, sparc, source, ecc...).
Vediamo i file Release per i repository di questa guida.
 
Per l' archivio ''binary'' abbiamo:
<pre>
<pre>
$ cat ~/debian/binary/Release
# aptitude install alsa-utils
Archive: unstable
Component: main
Origin: keltik
Label: Repository di esempio
Architecture: i386
</pre>
</pre>
e per quello ''source'':
Il tool alsaconf rileva automaticamente la scheda audio e imposta il sistema per il suo utilizzo. Se al riavvio le impostazioni del volume vengono sempre riportate al minimo, dobbiamo forzare il salvataggio delle impostazioni:
<pre>
<pre>
$ cat ~/debian/source/Release
# alsaconf
Archive: unstable
# alsamixer
Component: main
# alsactl store
Origin: keltik
Label: Repository di esempio
Architecture: source
</pre>
</pre>
con alsamixer impostiamo i livelli del volume, con 'alsactl store' salviamo le impostazioni.


==Uso del repository==
== X ==
===Uso in locale===
=== Generale ===
Finalmente � venuto il momento di mettere alla prova il nostro repository.
==== Come posso modificare il login manager di default? ====
Per cambiare il proprio login manager di default, è necessario prima installare quello sostituivo.


Gi� fin d' ora possiamo utilizzarlo cos� com' � in locale sulla nostra macchina: tutto quello che dobbiamo fare consiste nell' aggiungere al nostro file /etc/apt/sources.list l' [[URI]] attraverso il quale reperire i pacchetti.
Facciamo un esempio con '''kdm''' (installato) e '''gdm''' (da installare).


In questo esempio abbiamo creato il repository nella directory ~/debian e cio� nella directory ''debian'' all' interno della nostra home. Dovremo quindi aggiungere al file sources.list due linee cos� composte:
1) Installiamo il nuovo Login Manager
<pre>
<pre>
deb file:///home/utente/debian binary/
# apt-get install gdm
deb-src file:///home/utente/debian source/
</pre>
</pre>
dove, alla parola ''utente'' dovete sostituire lo username dell' utente nella cui home risiede il repository.


Una volta fatto questo lanciate '''apt-get update''' per rigenerare la lista degli indici di APT.
2) Durante l'installazione verrà chiesto quale Login Manager settare come default. Scegliamo quello nuovo.


Ora vediamo se il nostro repository funziona. Iniziamo con il cercare il pacchetto '''apt'''. Il comando da impartire �:
Nel caso si fosse già scaricato il login manager, è necessario eseguire:
<pre>
<pre>
$ apt-cache show apt
# dpkg-reconfigure gdm
</pre>
</pre>
(ovviamente sostituendo a gdm il nome del pacchetto del login manager)


Se tutto ha funzionato dovremmo ottenere come risultato due diversi pacchetti: entrambi si chiamano apt, entrambi hanno numero di versione 0.5.28.6, ecc... Per capire se e quale proviene dal nostro repository dobbiamo andare a controllare la voce ''Filename:'''.
Questo comando farà apparire la stessa finestra apparsa durante l'installazione con apt-get. Da qui è possibile scegliere il login manager di default.


Nel caso del pacchetto proveniente dal repository ufficiale di Debian avremo:
==== Come posso riconfigurare il server X? ====
Debian offre un comodo comando per fare questo:
<pre>
<pre>
[ ... omissis ...]
# dpkg-reconfigure xserver-xfree86
Filename: pool/main/a/apt/apt_0.5.28.6_i386.deb
[ ... omissis ...]
</pre>
</pre>
mentre per il pacchetto proveniente dal nostro repository avremo:
Così facendo, si accederà alla stessa procedura guidata che viene mostrata durante l'installazione del pacchetto.
 
Altrimenti sono sempre disponibili i comandi standard:
<pre>
<pre>
[ ... omissis ...]
# xf86config
Filename: binary/apt_0.5.28.6_i386.deb
[ ... omissis ...]
</pre>
</pre>
per una configurazione testuale


Per fare in modo che il nostro repository sia usato come preferenziale rispetto agli altri possiamo inserire nel sources.list le linee ad esso relativo all' inizio del file, prima di tutti gli altri repositories.
In questo modo, quando impartire il comando '''apt-get install nome_pacchetto''', APT provveder ad installare quello fornito dal repository elencato per primo nel sources.list. Ecco l' esempio sempre relativo ad apt:
<pre>
<pre>
# apt-get install apt -s
# xf86cfg
Lettura della lista dei pacchetti in corso... Fatto
Generazione dell'albero delle dipendenze in corso... Fatto
Pacchetti suggeriti:
  aptitude apt-doc
I seguenti pacchetti saranno aggiornati:
  apt
1 aggiornati, 0 installati, 0 da rimuovere e 1 non aggiornati.
Inst apt [0.5.28.6] (0.5.28.6 Repository di esempio:unstable)
Conf apt (0.5.28.6 Repository di esempio:unstable)
</pre>
</pre>
Nelle ultime due linee possiamo notare come la provenienza del pacchetto sia '''Repository di esempio:unstable''' come indicato nel nostro file '''Release'''.
per una configurazione grafica con l'autorilevamento dell'hardware
 
 
====Aggiungere il supporto per la rotella del mouse====
Modificare il file /etc/X11/XF86Config (o /etc/X11/XF86Config-4 o /etc/X11/xorg.conf), nella sezione riguardante il mouse...


===Uso in rete (http)===
Pre prima cosa bisogna modificare il driver del mouse, che deve diventare:<pre>
rendere disponibile in rete il repository che abbiamo appena creato � un' operazione estremamente semplice. Non dovremo fare altro che copiare la root del repository in una directory accessibile al nostro server web ed indicare l' [[URI]] corretto nei sources.list delle macchine che dovranno accedere ad esso.
Option "Driver" "imPS/2"</pre>
questo permette di avere un driver supportante la rotella ;-)


Nel caso in cui stiamo usando Apache e la DocumentRoot sia /var/www sar� sufficiente impartire:
Per attivarla, si aggiunga nella sezione del mouse la seguente riga:
<pre>
<pre>
# cp -R /home/utente/debian/ /var/www/
Option "ZAxisMapping" "4 5"</pre>
</pre>
 
Ora dobbiamo modificare i sources.list in modo che puntino a questo repository.


Poniamo che il server che mette a disposizione il repositry abbia il [[FQDN]] debian.prova.net. La sintassi da utilizzare nel sources.list � la seguente:
=== kde ===
==== Come mai non riesco ad avviare kppp anche se è installato? ====
Kppp, accedendo ad una componente 'critica' come una porta seriale, per poter essere eseguito da un utente normale, richiede che questo utente appartenga a due gruppi: '''dialout''' e '''dip'''.
Per fare cio' e' sufficiente usare i seguenti comandi:
<pre>
<pre>
deb http://debian.prova.net/debian/ binary/
# adduser nomeutente dip
deb-src http://debian.prova.net/debian/ source/
# adduser nomeutente dialout
</pre>
</pre>
Dobbiamo fare '''estrema''' attenzione ai slash ("/") perch� hanno un uso preciso all' interno di sources.list. Nel nostro caso � '''necessario''' che sia l' URL (http://debian.prova.net/debian) sia l' archivio (binary o source) sia terminato con un "/", altrimenti otterremo un errore di questo tipo:
ed effettuare un ''logout - login'' per l'aggiornamento dei permessi.
 
==== Come posso abilitare in Kmail il supporto per le firme S/MIME? ====
dal 17 Marzo è sufficiente un normale:
<pre>
<pre>
# apt-get update
# apt-get install gpgsm gnupg-agent
E: La linea x in /etc/apt/sources.list (dist parse) non � corretta
</pre>
</pre>
Se abbiamo invece scritto correttamente, quando lanceremo apt-get update, vedremo APT dialogare con il nostro web server e reperire l' elenco dei nostri pacchetti:
(presenti anche in sarge)
così, inoltre, funzionerà anche il programma kleopatra
([http://lists.debian.org/debian-kde/2005/03/msg00134.html Link alla News])
 
==== L'avvio di kdm risulta essere lento, come fare per sistemarlo? ====
Normalmente sembra essere un fatto legato alla cache dei fonts...
con un
<pre>
<pre>
# apt-get update
# fc-cache
Get:1 http://debian.prova.net binary/ Packages [1377B]
Get:2 http://debian.prova.net binary/ Release [97B]
Get:3 http://debian.prova.net source/ Sources [412B]
Get:4 http://debian.prova.net source/ Release [100B]
</pre>
</pre>
Per il test e l' ordine con cui i pacchetti vengono installati da APT, vi rimando alla lettura del [[#Uso_in_locale|paragrafo precedente]]
dovrebbe tornare tutto a posto
 
 
----
--[[Utente:Keltik|Keltik]] 09:20, Giu 26, 2005 (EDT)
58

contributi

Menu di navigazione