# Chakra (sistema operativo)

Chakra GNU/Linux è una distribuzione GNU/Linux libera, originariamente basata su Arch Linux e successivamente divenuta un progetto indipendente. Utilizza KDE Plasma come ambiente desktop predefinito.

## Storia

Il progetto nacque dall'idea di alcuni sviluppatori di KDEmod che decisero di creare un LiveCD basato su Arch Linux, con l'obiettivo di fornire un sistema operativo per desktop facile da usare ma che mantenesse tutte le funzioni, la chiarezza, la potenza e la reattività di un sistema operativo KISS.

## Caratteristiche

La distribuzione è basata sul modello di release semi-continua (half-rolling) e focalizzata su KDE. Lo sviluppo si prefigge di offrire la miglior esperienza con KDE. Chakra include sia software libero che proprietario. Fornisce un installer grafico, chiamato Calamares.
È disponibile solo per architetture x86-64 in quanto il team di sviluppo ha deciso nell'agosto del 2012 di abbandonare il supporto alle piattaforme x86.
Si basa esclusivamente su KDE Plasma come ambiente desktop e viene distribuita secondo il modello semi-continuo, cioè release continue affiancate da una base stabile. Questo comporta che i pacchetti core di Chakra (kernel, driver video, ecc) restano congelati e aggiornati solo per correggere eventuali problemi di sicurezza.
Tali pacchetti sono aggiornati dopo che le ultime versioni sono state profondamente verificate, prima di essere spostate in repository stabili (circa ogni sei mesi). Questa base permette di assicurare una stabilità al resto dei programmi. Le altre applicazioni (browser web, giochi, lettori multimediali, suite d'ufficio, ecc) sono aggiornate seguendo il modello a release continua e generalmente sono disponibili immediatamente dopo la loro distribuzione.

### Calamares

Calamares è il programma d'installazione (Installer) disponibile per Chakra dalla release "Fermi". Precedentemente era utilizzato il programma Tribe, sviluppato dallo stesso team di Chakra.

### Repository

I repository principali sono quattro:
* core,
* desktop,
* gtk,
* lib32.
Ci sono delle regole per l'immissione di pacchetti nei repository ufficiali. La più importante è che non è permesso caricare pacchetti che presentano come dipendenze delle librerie GTK+. Al momento, nei repository ufficiali, sono presenti circa 3500 pacchetti.
A questi si aggiunge il repository testing, dove i testers si assicurano che tutti i pacchetti funzionino prima di caricarli nei repository stabili e un repository unstable dove risiedono le versioni non stabili delle applicazioni.
Con la release 2013.05 "Benz" è stato introdotto un nuovo repository, extra, il quale contiene alcune applicazioni GTK+ ritenute indispensabili da molti utenti; tale repository, che ha rimpiazzato il sistema dei bundle, installava i pacchetti in esso contenuti nella directory /extra: recentemente l'uso di tale directory è stato abbandonato, a causa di problemi nella compilazione dei pacchetti, in favore delle directory standard definite dal FHS.
Dalla release 2015.11 "Fermi" viene attuata una ristrutturazione completa dei repository di chakra, scompaiono i repository games, platform e apps ed il repository extra cambia nome in gtk. Rimangono così soltanto 4 repository ufficiali: core, desktop, lib32 e gtk.

### CCR

Oltre ai repository ufficiali è disponibile anche un repository gestito dalla comunità degli utenti, detto Chakra Community Repository (abbreviato CCR), quindi non ufficialmente supportato. Esso può contenere qualsiasi pacchetto, compresi quelli che hanno come dipendenza delle librerie GTK+.
Quando un utente carica un pacchetto su CCR, non carica un eseguibile, ma uno speciale file .src.tar.xz e diventa il maintainer di questo pacchetto, che deve quindi "mantenere" per assicurare che sia sempre aggiornato e che funzioni correttamente su Chakra. Se un maintainer abbandona un pacchetto, questo diventa "orfano", e quindi non viene più aggiornato finché non trova un nuovo maintainer che lo "adotti". Chiunque sia registrato sul sito di CCR, può caricare o adottare un pacchetto.
L'utente che installa un CCR, non può semplicemente scaricare il pacchetto .pkg.tar.xz, come avviene nei repository normali, ma deve compilare il pacchetto. Ha quindi la possibilità di modificare uno speciale file chiamato PKGBUILD, che contiene le istruzioni per la compilazione.
Per installare i pacchetti contenuti nel CCR è disponibile un programma, eseguibile da riga di comando, chiamato ccr; si tratta di un software simile a yaourt di Arch Linux, che consente la ricerca e l'installazione sia dei pacchetti presenti sul CCR, sia di quelli presenti nei repository ufficiali.
I pacchetti presenti in CCR possono essere inseriti nei repository ufficiali nel caso in cui ricevano un alto numero di voti da parte degli utenti e presentino le caratteristiche necessarie.

### Il sistema dei bundle

Caratteristica della distribuzione è stata anche quella del sistema bundle: le applicazioni scritte con librerie GTK, non incluse nei repository ufficiali di Chakra, potevano ancora essere eseguite sul sistema attraverso i bundle.
I bundle di Chakra sono a metà strada tra il concetto di bundle di macOS e quello del pacchetto-dipendenza: un bundle è un filesystem compresso, come una immagine ISO, contenente tutti i file necessari per avviare l'applicazione. Esiste una interfaccia grafica per gestire facilmente i bundle dal desktop KDE: "Cinstall".
La versione 2013.03 è stata tuttavia l'ultima ad includere tale sistema, dopo l'inclusione del repository "extra" nel quale sono state inserite tutte le applicazioni basate sulle librerie GTK+, e l'abbandono dei bundle dopo l'aggiornamento toolchain della GNU C Library alla versione 2.17.

## Cronologia delle versioni

| Versione | Data di distribuzione | Note |
| Alpha 1 | 21 dicembre 2008 | |
| Alpha 2 | 17 febbraio 2009 | |
| Alpha 3 | 30 settembre 2009 | |
| Fuzzy | 22 ottobre 2009 | |
| Crush | 30 ottobre 2009 | |
| NewAge | 17 novembre 2009 | |
| Panora | 29 marzo 2010 | |
| Phoix | 22 maggio 2010 | |
| Jaz | 30 agosto 2010 | versione 0.2.0 |
| Jaz | 26 settembre 2010 | versione 0.2.2 |
| Ashoc | 18 ottobre 2010 | versione 0.3 Beta 1 |
| Jaz | 23 novembre 2010 | versione 0.2.4 |
| Cyrus | 29 novembre 2010 | versione 0.3.40 Alpha 1 |
| Ashoc | 10 dicembre 2010 | versione 0.3 RC 1 |
| Ashoc | 21 dicembre 2010 | versione 0.3 |
| Cyrus | 23 dicembre 2010 | versione 0.3.45 Alpha 2 |
| Ashoc | 3 gennaio 2011 | versione 0.3.1 pre1 |
| Ashoc | 9 gennaio 2011 | versione 0.3.1 |
| Cyrus | 9 gennaio 2011 | versione 0.4 Alpha 3 |
| Ashoc | 23 gennaio 2011 | versione 0.3.2 RC 2 |
| Cyrus | 30 gennaio 2011 | versione 0.4 Beta 1 |
| Ashoc | 5 febbraio 2011 | versione 0.3.2 |
| Cyrus | 17 febbraio 2011 | versione 0.4 Beta 2 |
| Aida | 20 marzo 2011 | versione 2011.04 Milestone 3 |
| Aida | 4 aprile 2011 | versione 2011.04 Milestone 4 |
| Aida | 13 aprile 2011 | versione 2011.04 Milestone 5 |
| Aida | 28 aprile 2011 | versione 2011.04 |
| Edn | 26 giugno 2011 | versione 2011.09 Milestone 1 |
| Edn | 28 agosto 2011 | versione 2011.9 |
| Edn | 5 novembre 2011 | versione 2011.11 |
| Edn | 18 dicembre 2011 | versione 2011.12 |
| Altre versioni | 19 dicembre 2011 - 15 aprile 2012 | versioni 2012.01-2012.03 |
| Archimedes | 16 aprile 2012 | versione 2012.04 |
| Archimedes | 14 maggio 2012 | versione 2012.05 |
| Archimedes | 2 luglio 2012 | versione 2012.07 |
| Claire | 24 agosto 2012 | versione 2012.08 |
| Claire | 5 settembre 2012 | versione 2012.09 |
| Claire | 28 ottobre 2012 | versione 2012.10 |
| Claire | 6 dicembre 2012 | versione 2012.12 |
| Claire | 7 gennaio 2013 | versione 2013.01 |
| Benz | 10 febbraio 2013 | versione 2013.02 |
| Benz | 9 marzo 2013 | versione 2013.03 |
| Benz | 30 maggio 2013 | versione 2013.05 |
| Fritz | 22 settembre 2013 | versione 2013.09 |
| Curie | 2 febbraio 2014 | versione 2014.02 |
| Descartes | 21 maggio 2014 | versione 2014.05 |
| Euler | 30 settembre 2014 | versione 2014.09 |
| Euler | 12 novembre 2014 | versione 2014.11 |
| Euler | 12 marzo 2015 | versione 2015.03 |
| Fermi | 8 novembre 2015 | versione 2015.11 |
| Ian | 29 febbraio 2016 | versione 2016.02 |
| Goedel | 14 marzo 2017 | versione 2017.03 |
| Goedel | 8 ottobre 2017 | versione 2017.10 |