From f5418376c4f90316c3e426b7b5ec299f05e50870 Mon Sep 17 00:00:00 2001 From: Elena ``of Valhalla'' Grandi Date: Sun, 15 Jan 2012 22:27:57 +0100 Subject: Repository: versione iniziale --- guides/repository/00-info.rst | 9 ++++ guides/repository/01-intro.rst | 39 +++++++++++++++ guides/repository/02-funzionamento.rst | 86 ++++++++++++++++++++++++++++++++++ guides/repository/04-vantaggi.rst | 49 +++++++++++++++++++ guides/repository/05-difetti.rst | 49 +++++++++++++++++++ guides/repository/06-consigli_uso.rst | 35 ++++++++++++++ 6 files changed, 267 insertions(+) create mode 100644 guides/repository/00-info.rst create mode 100644 guides/repository/01-intro.rst create mode 100644 guides/repository/02-funzionamento.rst create mode 100644 guides/repository/04-vantaggi.rst create mode 100644 guides/repository/05-difetti.rst create mode 100644 guides/repository/06-consigli_uso.rst (limited to 'guides/repository') 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. + -- cgit v1.2.3