aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElena ``of Valhalla'' Grandi <elena.valhalla@gmail.com>2012-01-15 22:27:57 +0100
committerElena ``of Valhalla'' Grandi <valhalla@trueelena.org>2012-07-30 10:04:19 +0200
commitf5418376c4f90316c3e426b7b5ec299f05e50870 (patch)
treef4838723dd6a701fd94b2420a4f8d3088ddf1815
parent4f5bf70319904b75f54ed9bb32aedbb5463f31ee (diff)
Repository: versione iniziale
-rw-r--r--guides/repository/00-info.rst9
-rw-r--r--guides/repository/01-intro.rst39
-rw-r--r--guides/repository/02-funzionamento.rst86
-rw-r--r--guides/repository/04-vantaggi.rst49
-rw-r--r--guides/repository/05-difetti.rst49
-rw-r--r--guides/repository/06-consigli_uso.rst35
6 files changed, 267 insertions, 0 deletions
diff --git a/guides/repository/00-info.rst b/guides/repository/00-info.rst
new file mode 100644
index 0000000..091e493
--- /dev/null
+++ b/guides/repository/00-info.rst
@@ -0,0 +1,9 @@
+============
+I repository
+============
+
+:Author: Elena \`\`of Valhalla'' Grandi
+:Copyright: Copyright (c) 2011 Elena Grandi
+:Abstract: Questa miniguida introduce il metodo principale per la
+ distribuzione ed installazione di programmi nei sistemi
+ GNU/Linux.
diff --git a/guides/repository/01-intro.rst b/guides/repository/01-intro.rst
new file mode 100644
index 0000000..c2a3835
--- /dev/null
+++ b/guides/repository/01-intro.rst
@@ -0,0 +1,39 @@
+Una caratteristica peculiare dei sistemi basati sul software libero
+è l'esistenza dei repository, archivi di software gestiti da una
+comunità ed ai quali si può accedere con strumenti integrati
+nel sistema operativo.
+
+Reperire i programmi direttamente dai loro produttori, come è
+pratica comune per il software proprietario, comporta svantaggi
+significativi dal punto di vista della compatibilità e
+dell'integrazione al resto del sistema, dando luogo ad esempio
+al cosiddetto *dll hell*.
+
+Un approccio in parte più vicino a quello dei sistemi liberi è stato
+assunto ad esempio dall'Apple Store e dall'Android Market:
+i programmi sono scaricabili da una singola fonte tramite
+un apposito programma, ed è garantita la loro compatibilità
+ed uniformità con il resto dell'ambiente.
+Per raggiungere questo risultato, però, gli sviluppatori sono
+obbligati a rispettare vincoli rigidi sulle librerie usate, e
+perfino sul tipo di programmi ammessi.
+
+Grazie al permesso di migliorare e distribuire le migliorie
+garantito dalle licenze libere, è invece possibile ribaltare
+l'approccio: sono gli sviluppatori di una distribuzione a
+scegliere i programmi che ritengono validi, compilarli
+integrarli eventualmente al resto del sistema ed
+infine proporli all'utente finale in modo tale che con un
+comando o con due click possa installarli assieme a tutte
+le librerie di cui hanno bisogno.
+In questo modo si offre massima comodità all'utente senza
+imporre obblighi gravosi al programmatore.
+
+Un modello così centralizzato rischierebbe di introdurre
+vincoli arbitrari sui programmi permessi, così come avviene nel
+caso dell'Apple Store: questo non avviene da un lato per l'esistenza
+di numerose distribuzioni in amichevole concorrenza tra di loro,
+dall'altro perché è comunque possibile installare programmi
+provenienti da fonti diverse, anche se si perdono molti vantaggi
+del sistema centralizzato.
+
diff --git a/guides/repository/02-funzionamento.rst b/guides/repository/02-funzionamento.rst
new file mode 100644
index 0000000..9d60961
--- /dev/null
+++ b/guides/repository/02-funzionamento.rst
@@ -0,0 +1,86 @@
+Repository e distribuzioni
+==========================
+
+Quando si "installa Linux", si sta generalmente installando una
+distribuzione, ovvero l'insieme di un sistema operativo GNU/Linux,
+un'interfaccia utente e dei programmi applicativi che girano sullo
+stesso.
+
+Parte integrante di una distribuzione sono i cosidetti repository,
+ovvero delle raccolte di software in pacchetti di formato specifico
+e pronti per l'installazione, come ad esempio .deb per Debian
+ed Ubuntu, o .rpm per Fedora.
+
+L'accesso principale a questi repository avviene generalmente
+tramite un gestore di pacchetti, ovvero un insieme di programmi
+in grado di gestire ricerca, download, installazione e
+rimozione di tali programmi; alcuni esempi sono apt-get e i
+suoi *front-end* per i .deb o yum per i .rpm.
+
+Le distribuzioni offrono generalmente diversi repository a cui
+accedere tramite gestore di pacchetti; generalmente viene fatta
+una distinzione tra programmi di base, sui quali si effettua
+la maggior parte dei test, e programmi aggiuntivi, meno controllati.
+Ad esempio ubuntu suddivide i programmi in main ed universe.
+Un altro repository potrebbe poi contenere programmi scaricabili
+e distribuibili, ma con restrizioni di licenza che li rendono
+non liberi, ad esempio restricted e multiverse di ubuntu,
+o non-free di debian.
+
+È poi possibile installare programmi di terze parti, sia tramite
+repository non ufficiali che tramite download diretto del pacchetto;
+questo può però comportare rischi maggiori, e richiede accortezza
+nel verificare l'origine del programma e la sua compatibilità
+con il resto del sistema.
+
+Versioni ed aggiornamenti
+-------------------------
+
+La gestione delle versioni dei programmi e librerie presenti nei
+repository è poi uno dei punti nei quali si
+notano maggiori differenze tra una distribuzione e l'altra.
+
+Innanzitutto si ha la distinzione tra *rolling release* e
+*versioned release*: la prima consiste nell'aggiornare continuamente
+i pacchetti indipendentemente gli uni dagli altri, la seconda
+nel rilasciare periodicamente nuove versioni nelle quali si aggiorna
+tutto il sistema e limitarsi a bugfix ed aggiornamenti di sicurezza
+tra una release e l'altra.
+
+Il sistema a versioni offre in generale maggiore stabilità,
+dato che gli aggiornamenti vengono testati prima di essere rilasciati
+al pubblico, ed è usato dalle distribuzioni più diffuse come
+Debian, Fedora ed Ubuntu; il suo principale svantaggio è il ritardo
+con cui si hanno a disposizione le nuove versioni dei pacchetti, soprattutto
+per quello che riguarda programmi dallo sviluppo molto rapido.
+
+Il sistema delle *rolling release*, al contrario, permette di avere
+un sistema sempre aggiornato, al prezzo di tollerare eventuali
+problemi in fase di installazione delle nuove versioni: per
+questo motivo viene usato praticamente solo in distribuzioni
+per smanettoni come Gentoo o Arch, i cui utenti non hanno problemi
+ad incontrare e risolvere malfunzionamenti anche gravi.
+
+Un ulteriore distinzione sta nella frequenza e nella gestione dei rilasci
+di nuove versioni: distribuzioni come Ubuntu e Fedora stabiliscono
+un calendario abbastanza rigido nei quali i sei mesi di intervallo
+tra una versione e l'altra sono suddivisi in una fase di sviluppo in
+cui cercare di aggiungere nuove funzionalità ed una fase di testing
+nella quale risolvere i problemi, eventualmente rinunciando a
+quanto non è stato possibile far funzionare in tempo.
+Distribuzioni come Debian, al contrario, basano la suddivisione tra
+le fasi in base alle funzionalità: quando lo sviluppo ha raggiunto gli
+obiettivi che ci si era prefissi lo si blocca e si passa alla fase
+di testing e risoluzione dei problemi, quando infine tutti i bug
+importanti sono stati chiusi si procede con il rilascio.
+Anche qui si ha un compromesso tra maggiore regolarità ed aggiornamento
+nel primo caso e maggiore stabilità nel secondo.
+
+Un ultima distinzione si ha infine nella durata del supporto per le versioni
+rilasciate in passato: se ad esempio Fedora fornisce aggiornamenti
+di sicurezza solo per l'ultima versione, Ubuntu le mantiene
+da 9 mesi a 5 anni, a seconda delle versioni e Debian offre supporto
+fino ad un anno dopo l'uscita della versione stabile successiva,
+in modo da venire incontro anche alle esigenze di sistemi server,
+dove gli aggiornamenti possono causare problemi maggiori.
+
diff --git a/guides/repository/04-vantaggi.rst b/guides/repository/04-vantaggi.rst
new file mode 100644
index 0000000..47075dc
--- /dev/null
+++ b/guides/repository/04-vantaggi.rst
@@ -0,0 +1,49 @@
+Vantaggi dei repository
+=======================
+
+Comodità
+--------
+
+Il vantaggio più evidente del sistema di repository è la comodità
+per l'utente: l'installazione di un programma supportato richiede
+solo un comando o un paio di click, e si è sicuri del suo corretto
+funzionamento, senza problemi di incompatibilità con il resto del sistema.
+
+Questo è particolarmente pratico nel momento in cui si personalizza
+un nuovo computer: non c'e` bisogno di perdere tempo a scaricare
+programmi uno ad uno, o peggio ancora cercare dischi di installazione,
+basta selezionare rapidamente ciò di cui si ha bisogno
+e lasciare che il computer lavori per noi.
+
+Per un amministratore di sistemi, poi, la cosa è ancora più utile:
+la maggior parte delle distribuzioni offre strumenti che permettono
+l'installazione di uno stesso elenco di programmi in modo totalmente
+automatizzato, ad esempio per installare ambienti omogenei anche su
+hardware tanto diverso da non permettere l'uso di cloni del sistema.
+
+Sicurezza
+---------
+
+Un vantaggio meno evidente ma molto importante è quello relativo
+alla sicurezza: i programmi presenti sui repository vengono controllati
+da abbastanza persone da far sì che difficilmente possano contenere
+codice malevolo volutamente aggiunto: un bel passo avanti rispetto
+ai programmi gratuiti o peggio craccati con annesso troyan che capita
+di trovare nei circuiti di p2p.
+
+
+Spazio occupato
+---------------
+
+Un sistema di repository permette anche di ridurre lo spazio occupato
+su disco e fare un uso più efficiente delle librerie di terze parti:
+distribuendo un programma in formato eseguibile in modo indipendente
+si è spesso costretti ad inserire nel pacchetto gran parte delle
+librerie di cui fa uso, che verranno quindi installate una volta
+per ogni programma che ne ha bisogno.
+
+Il fatto di avere invece un'unica versione ufficiale delle librerie
+usabile da tutti i programmi nel repository, evita inoltre
+che programmi diversi cerchino di installare versioni leggermente
+diverse delle stesse, causando problemi di malfunzionamento.
+
diff --git a/guides/repository/05-difetti.rst b/guides/repository/05-difetti.rst
new file mode 100644
index 0000000..93bdc0a
--- /dev/null
+++ b/guides/repository/05-difetti.rst
@@ -0,0 +1,49 @@
+Difetti e limiti
+================
+
+Il sistema dei repository non è ovviamente la soluzione a tutti i
+mali del mondo, ma presenta alcuni limiti.
+
+Software proprietario
+---------------------
+
+In particolare, il sistema a repository gestiti dalla distribuzione
+è poco adatto alla distribuzione di software proprietario,
+dato che in tal caso gli sviluppatori della distribuzione non hanno
+l'autorizzazione a compiere il loro lavoro di compilazione e distribuzione.
+
+In alcuni casi, la cosa è vista come caratteristica positiva:
+distribuzioni come Debian non distribuirebbero software proprietario
+neanche se potessero, e dunque non si sono mai poste il problema
+di come integrarlo nel sistema dei repository.
+
+Altri gestori di pacchetti, come quello usato da Red Hat, prevedono
+la possibilità di dare accesso a determinati repository solo a clienti
+paganti; questo può funzionare a patto di avere una collaborazione
+tra distribuzione e produttori del software in questione, e può
+porre problemi di controllo da parte di aziende del software installabile
+in modo simile ai negozi Apple o Android.
+
+Un caso più facile è quello di programmi proprietari ma distribuibili:
+in questo caso la realizzazione di pacchetti per l'inclusione in appositi
+repository è possibile, ma spesso si tratta di pacchetti che male
+si integrano con il resto del sistema.
+
+Disponibilità del software
+--------------------------
+
+Il fatto che gli sviluppatori di una distribuzione debbano lavorare
+attivamente per l'inserimento di un programma nei repository
+fa sì che in certi casi programmi molto recenti o particolarmente
+di nicchia non siano disponibili.
+
+Esistono distribuzioni che rendono pressoché ininfluente almeno uno
+di questi due problemi: distribuzioni come Debian e la sua derivata
+Ubuntu, ad esempio, comprendono una quantità sterminata di programmi;
+d'altro canto distribuzioni come Fedora e Arch sono molto attive
+nell'aggiunta di nuovi programmi, anche se ancora sperimentali.
+
+Distribuzioni minori potrebbero risentire maggiormente del problema,
+rendendo meno pratica la loro installazione, a meno che non si tratti
+di distribuzione specializzate in compiti specifici.
+
diff --git a/guides/repository/06-consigli_uso.rst b/guides/repository/06-consigli_uso.rst
new file mode 100644
index 0000000..3c112c2
--- /dev/null
+++ b/guides/repository/06-consigli_uso.rst
@@ -0,0 +1,35 @@
+Consigli per l'uso
+==================
+
+In generale, le distribuzioni principali compiono delle buone scelte
+per quanto riguarda i repository, adatte alle esigenze della
+maggior parte del loro pubblico.
+A seconda del modo in cui è stata effettuata l'installazione, potrebbe
+essere necessario un intervento manuale per arrivare ad una situazione
+ottimale.
+
+Scelta dei repository
+---------------------
+
+Innanzitutto, la maggior parte delle distribuzioni fornisce dei *mirror*
+dei loro repository, e vale la pena selezionarne uno nella propria
+nazione, evitando quello principale, affollato, e quelli troppo lontani
+geograficamente.
+
+Per quello che riguarda la scelta dei repository, in generale conviene
+attivare tutti quelli ufficiali della distribuzione, ovvero ad esempio
+in Ubuntu sia main che universe, e in Debian main, security ed updates.
+
+Eventuali repository (semi-)ufficiali dedicati a software non libero
+possono essere attivati senza timore nel caso in cui ci sia effettivamente
+bisogno di programmi in essi contenuti e non si possano usare
+alternative libere.
+In particolare potrebbero essere necessari anche per installare
+programmi liberi per il supporto a formati multimediali per il quali
+in alcuni paesi esistono brevetti che ostacolano la libera implementazione.
+
+È invece sconsigliato l'uso di repository di terze parti fino a quando
+non si ha una buona dimestichezza con il sistema e non si è in grado
+di valutarne correttamente i rischi e di rimediare ad eventuali
+problemi da essi causati.
+