Guida Cosa è Gentoo? Tutte le informazioni su questa distribuzione Linux

Stato
Discussione chiusa ad ulteriori risposte.

oscarandrea

Utente Emerald
7 Dicembre 2014
1,727
41
268
523
Ultima modifica:
Gentoo
gentoo-3d-small.png

Introduzione:

Gentoo è una distribuzione GNU/Linux creata da Daniel Robbins (che attualmente sviluppa però Funtoo), è una distribuzione source-based, ovvero non offre pacchetti pre-compilati -binari- (se non per qualche eccezione), utilizza come package manager Portage (che si ispira appunto ai ports di FreeBSD)

Installazione:

L’installazione è da sempre considerata da molti neofiti complicata e lunga, in parte è vero, Gentoo potrebbe non essere la distribuzione ideale per dei neofiti del mondo Unix/Unix-like, mentre un utente con delle conoscenze basilari di questi sistemi grazie alla completa wiki può tranquillamente installare Gentoo senza troppe problematiche.

Gentoo è disponibile per molte architetture.

Ci sono vari metodi per installare Gentoo, uno dei più usati è quello che sfrutta lo Stage3 (esistono anche stage 1, 2, 3 e 4, ma viene consigliata l’installazione dallo stage 3), che non è altro che un archivio contenete dei componenti essenziali di sistema che servono per compilare il sistema stesso.

La maggior parte di queste operazioni viene effettuata in chroot, quindi questo metodo di installazione richiede o una live GNU/Linux che permetta di fare il chroot oppure un sistema già installato. Il tempo che richiede l’installazione è influenzato molto dall’hardware, sopratutto dalla CPU che deve appunto compilare i pacchetti (anche se esistono tool come distcc che permettono di “suddividere” la compilazione su più macchine). Con Gentoo si può ottenere un sistema altamente performante ed adatto alle proprie esigenze.

Package Manager:

Il Package Manager di default su Gentoo è Portage, Portage è un complesso package manager scritto in python, Gentoo è una distro rolling, quindi non ci sono avanzamenti di versione ed il rilascio di aggiornamenti è continuo, di seguito elenco le funzionalità ed i file di configurazione più importanti:

  • USE FLAG: le USE FLAG non sono altro che parole chiave che un utente può settare (temporaneamente, singolarmente per pacchetto e globalmente nel file make.conf) per gestire le proprie preferenze durante la compilazione del pacchetto, per fare un esempio si potrebbe definire globalmente -qt3 e qt4 in questo modo saremo certi che tutti i software che andremo a compilare (che fanno uso delle Qt) verranno compilati con qt4 invece che con qt3. Una lista completa delle use flag è disponibile qui

  • Profili: I profili non sono altro che pre-configurazioni di sistema che vanno a definire variabili (anche e sopratutto use flag, licenze etc) per una configurazione specifica di sistema, sono disponibili di default molti profili (si possono anche combinare più profili).
Ad esempio esiste il profilo default/linux/amd64/13.0/desktop/gnome/systemd che appunto è specifico per systemd e gnome, quindi tra le tante cose verrà rimosso openrc, installato systemd abilitato dbus etc. Ovviamente se non è la prima installazione molti software andranno ricompilati al cambiamento del profilo​
qwTDtOY.png


  • Possibilità di usare repository git come repository di sistema (quindi si può creare facilmente il proprio overlay/repository)

  • CFLAGS, LDFLAGS etc: Uno di punti di forza di forza di Gentoo sono le perfomance, Gentoo permette di definire direttive per il compilatore, tra le più “comuni” possiamo citare nelle CFLAGS:
-march: in questa variabile è possibile definire la famiglia della propria CPU, ciò fa si che il compilatore generi eseguibili altamente performanti specifici per la propria CPU.​
-Ox: la variabile -O definisce il livello di ottimizzazione del codice, generalmente la scelta​
più sensata per avere un buon compromesso tra stabilità e perfomance è -O2. Livelli oltre​
-O3 (ed anch’esso compreso a volte) possono comportare fallite compilazioni ed eseguibili​
addirittura più lenti, questo perché il compilatore nel tentativo di condensare il codice assembly il più possibile potrebbe modificare il funzionamento stesso del programma.​
Ovviamente questi sono solo una manciata di esempi delle impostazioni che possono ottimizzare le perfomance dei pacchetti compilati, per una panoramica completa potete​
riferirvi alla wiki di Gentoo


  • testing & stable: Con portage è possibile scegliere di avere un sistema completamente basato sul ramo testing che si definisce con ~$architettura o stable con $architettura, è anche possibile definire singolarmente quali pacchetti prelevare al ramo stabile e quali dal ramo testing.

  • Ebuild: gli ebuild sono i file che servono per l’installazione di un software tramite portage (come ad esempio i .deb per debian), su gentoo usano le EAPI e sono di facile scrittura.
ebuild di aqemu
e6PILdN.png
questo è il mio make.conf:
m0ZixG9.png

Community e Documentazione:

Gentoo, insieme ad arch linux possiede una delle wiki più complete di tutto il panorama GNU/Linux, essendo anche molto popolare il forum è sempre popolato così come il canale irc.

Init system:

Gentoo sviluppa OpenRC un init system (che necessita comunque di /sbin/init, che di default è sysvinit) compatibili sia con sistemi GNU/Linux che *BSD (per esempio TrueOS basata su FreeBSD usa proprio OpenRC), a differenza della maggioranza delle distribuzioni che invece usano systemd. Systemd è comunque ufficialmente supportato, ma il profilo selezionato di default viene fornito con OpenRC.
j7E3BUo.png

Repository:

I repository sono mediamente ricchi di software, inoltre possono essere facilmente aggiunti overlay per software addizionali.

Compatibilità hardware:

Nei repository di Gentoo vengono anche inseriti driver proprietari che quindi possono essere facilmente installati, ovviamente bisogna fare particolare attenzione durante la compilazione del kernel per avere una completa compatibilità di tutto l’hardware.

Gentoo è disponibile per le seguenti architetture: IA-32, x86-64, IA-64, PA-RISC; PowerPC 32/64, SPARC 64-bit, DEC Alpha, ARM, Motorola 68K.

Sicurezza:

Gentoo mette a disposizione più profili hardened, che vanno a preimpostare (tra le altre cose) variabili per la compilazione di sorgenti hardened, da infatti la possibilità di compilare sorgenti con PIE e SSP, abilita il sistema all’uso di PaX, all’uso di moduli MAC (SeLinux, tomoyo apparmor etc) etc.
P̶e̶r̶ ̶q̶u̶e̶s̶t̶o̶ ̶è̶ ̶a̶n̶c̶h̶e̶ ̶d̶i̶s̶p̶o̶n̶i̶b̶i̶l̶e̶ ̶u̶n̶ ̶k̶e̶r̶n̶e̶l̶ ̶a̶p̶p̶o̶s̶i̶t̶o̶ ̶n̶e̶i̶ ̶r̶e̶p̶o̶s̶i̶t̶o̶r̶y̶ ̶d̶i̶ ̶G̶e̶n̶t̶o̶o̶.̶


LlWWfUz.png

FAQ:

  • Perché installare Gentoo?
    • Si può desiderare di installare Gentoo se si vuole un sistema altamente perfomante.

    • Se si vuole avere un sistema completamente no-systemd

    • Se si desidera un sistema adatto alle proprie esigenze

    • Se si vuole avere un sistema che rispetti la filosofia KISS.

    • Per aver una distribuzione sempre aggiornata.
  • Perché non dovrei installare Gentoo?
    • Se sei un utente alle prime armi e con pochissima esperienza con GNU/Linux

    • Se hai una macchina particolarmente datata

    • Se vuoi un sistema pronto all’uso senza configurazioni aggiuntive
  • Esiste una derivata più semplice?
    • Si, esiste Sabayon Linux, una derivata Italiana pronta all’uso, però l’esperienza d’uso è totalmente diversa da quella di Gentoo, inoltre utilizza due package manager.
 
Stato
Discussione chiusa ad ulteriori risposte.