Anaconda è il programma di installazione usato da Fedora, Red Hat Enterprise Linux e da alcune altre distribuzioni.
Durante la fase di installazione, anaconda identifica e configura l'hardware del computer e crea i file system appropriati all'architettura del sistema e consente all'utente di installare il sistema operativo. anaconda può anche aggiornare installazioni esistenti di precedenti versioni della stessa distribuzione. Una volta completata l'installazione, al primo riavvio si procede con alcune impostazione usando il servizio di primo avvio, firstboot.
anaconda è uno script di installazione piuttosto sofisticato. Infatti si possono fare installazioni con sorgenti locali o remoti, usando CD, DVD, immagini ISO dei repository (o mirror), NSF, HTTP ed FTP. Inoltre quando si hanno gruppi di macchine su cui occorre effettuare delle identiche installazioni, si può creare uno script di installazione usando kickstart che provvede automaticamente a tutte le sue fasi. Può anche girare su VNC su macchine senza schermo. La fase di analisi ed eventuale partizionamento dischi, supporta una ampia varietà di dispositivi-di-massa/dischi, inclusi LVM, RAID, iSCSI e multipath. anaconda fornisce anche strumenti di debug avanzati come accesso remoto, accesso al debug interattivo e salvataggio in remoto delle eccezioni riscontrate.
Utenti
Se sei un utente che ha riscontrato problemi con anaconda, puoi usare il forum d'aiuto della tua distribuzione come Fedora Forum. Sono presenti anche alcuni documenti utili in UserTips, ma generalmente, questi documenti sono dedicati agli sviluppatori ed agli utenti avanzati di Anaconda.
Di tanto in tanto, si rendono disponibili gli aggiornamenti per anaconda che risolvono i problemi riscontrati nelle versioni Fedora. La pagina wiki updates spiega come usare questi aggiornamenti.
Hai bisogno di sapere cosa è cambiato da una versione all'altra di Fedora? Consulta la nostra guida alla migrazione che elenca in modo sintetico le modifiche per gli utenti, i rebuilder ed i contributori.
Usi avanzati di anaconda
Se sei un utente esperto di anaconda (o vorresti esserlo), dovresti consultare
- our reference to anaconda command line options
- our kickstart file format documentation
- our reference to logging capabilities of anaconda
Esiste anche una mailing-list dedicata all'uso di kickstart. Questo sembra essere il luogo migliore per scambiarsi trucchi e consigli su kickstart.
Realizzatori di distribuzione
Per informazioni su come personalizzare anaconda e gli alberi creati con esso, consultare BuildDocProject e Customization .
Sviluppatori
Anaconda è scritto principalmente in Python . L'interfaccia grafica di anaconda è scritta usando la libreria pyGtk ed i file descrizione interfaccia glade . Usando Python per la maggioranza del codice del programma di installazione consente una distribuzione degli aggiornamenti semplice ed il rapido sviluppo di nuove caratteristiche. Il programma di caricamento, che gestisce il caricamento di grandi porzioni di anaconda, del caricamento dei moduli e di altri compiti di avvio, è scritto in linguaggio C. Alcune altre piccole porzioni specifiche per hardware di anaconda sono anche scritte in C. In aggiunta, gli script bash e Python vengono usati per alcuni compiti amministrativi.
L'intero pacchetto Anaconda viene distribuito sotto la licenza GPLv2.
Mailing List
Ci sono due mailing list per Anaconda. La prima è la mailing list per lo sviluppo. Questa lista viene usata per discutere questioni riguardo lo sviluppo, sottomettere patch ed altre attività collegate all'estensione di Anaconda. La pagina per iscriversi a questa lista si trova sulla pagina della mailing list di sviluppo anaconda . Le vecchie discussioni sono presenti negli archivi di sviluppo anaconda .
La seconda lista è una lista dedicata agli utenti su come creare dei file kickstart. La lista kickstart è il posto dove discutere problemi di installazioni automatizzate. Per iscriversi a questa lista bisogna andare sul sito della lista kickstart di anaconda . Le discussioni precedenti vengono conservate negli archivi kickstart anaconda .
Esiste anche un canale IRC #anaconda su irc.freenode.org. Questa risorsa è dedicata alla discussione dello sviluppo di anaconda, non per problemi di personalizzazione della distribuzione.
Guida agli sviluppatori
Se si desidera lavorare su Anaconda, si potrebbe iniziare da Source Overview , che contiene una discussione ad alto livello dei file sorgenti e su cosa fanno. Quindi si potrebbe dare un occhiata alla stage1 development guide ed alla stage2 development guide per informazioni su come testare, effettuare il debug e sviluppare per queste due parti di Anaconda.
Familiarizzare con gli strumenti usati da anaconda. Controllare i seguenti documenti di riferimento esterni:
Una volta diventato attivo, devi controllare i punti di lavoro futuri per anaconda per vedere cosa ci piacerebbe che venisse fatto.
Sono anche presenti alcuni consigli sulla pagina realizzare anaconda che descrive come compilare e creare una nuova versione del pacchetto anaconda.
Il riferimento API anaconda rappresenta un impegno continuo che documenta il codice sorgente di anaconda. Questo documento è ancora lontano dall'essere completo, ma ogni volta diventa sempre migliore.
Ottenere il codice sorgente
Il metodo principale di distribuzione del codice di anaconda è rappresentato dagli RPM dell'Albero di sviluppo Fedora e git. Per accedere all'attuale codice sorgente in formato non rpm, devi installare git.
yum install git
Puoi notare verranno installati molti pacchetti collegati a git. Dopo che l'installazione dello strumento di gestione del codice sorgente sarà completata, allora potrai effettuare accesso git anonimo al repository Anaconda.
git clone git://git.fedorahosted.org/git/anaconda.git
L'uscita del comando dovrebbe essere qualcosa di simile a:
Initialized empty Git repository in /home/drkludge/anacondatest/anaconda/.git/ remote: Generating pack... remote: Counting objects: 10861 remote: Done counting 91222 objects. remote: Deltifying 91222 objects... remote: 100% (91222/91222) done Indexing 91222 objects... 100% (91222/91222) done remote: Total 91222 (delta 68785), reused 90187 (delta 68059) Resolving 68785 deltas... 100% (68785/68785) done Checking 543 files out... 100% (543/543) done
Se hai a disposizione un accesso differente per anaconda, allora potresti usare l'url di accesso git+ssh.
git clone git+ssh://git.fedorahosted.org/git/anaconda.git
Una volta che avrai effettuato le modifiche al codice in maniera locale, allora potrai inviarle
git push
Se invece vuoi solo guardare il repository git di anaconda tramite web, allora usa uno di questi Anaconda git URL .
http://git.fedorahosted.org/git/anaconda.git
http://git.fedorahosted.org/git/?p=anaconda.git;a=summary
Per contribuire, prima dovresti leggere la nostra Branching policy .
Riportare problemi
e stai riscontrando delle difficoltà durante l'installazione, inviaci il tuo problema includendo il tipo di distribuzione che utilizzi.
Prima di sollevare un bug, leggi How to debug installation problems, che spiega come inviare un bug in maniera da spiegare al meglio il problema e da aiutarci a risolverlo nel modo più rapido possibile. Inoltre puoi provare a cercare su bugzilla per altri bug che riportano il tuo stesso problema, che capita visto che molte persone inviano segnalazioni di bug.
CommonBugs è un elenco di bug comuni di anaconda da consultare per evitare di inviare un bug identico ad uno già presente.
AnacondaBugWorkflow rappresenta una linea guida su come i bug di Fedora vengono elaborati in bugzilla, e cosa significhino realmente i vari stati. Questo è valido solo per Fedora.
Il gruppo di Anaconda
Da sinistra a destra, le seguenti persone fanno parte del gruppo anaconda e sono i responsabili della maggior parte delle caratteristiche. Certamente otteniamo aiuto da altre persone, sia da Red Hat che dalla comunità volontaria.
- Chris Lumens (clumens): Kickstart, stà cercando nuove caratteristiche.
- Martin Gracik (mgracik): firstboot, elementi UI, lorax.
- Martin Sivak (msivak): FirstAidKit, dischi driver.
- Peter Jones (pjones): EFI.
- Brian Lane (bcl): LiveCD.
- David Cantrell (dcantrell): Manager, s390x.
- Will Woods (wwoods): Cose varie.
- Radek Vykydal (rvykydal): Networking.
- Dave Lehman (dlehman): Storage.
- (non nella foto) Jesse Keating (jlk): s390x, python-bugzilla, cose varie.
Gruppo Anaconda Emeritus
- Jeremy Katz (katzj)
- Joel Andres Granados (jgranado)
- Hans de Goede (hansg)
- Ales Kozumplik (akozumpl)