Ispirata dal sistema dei ports BSD [Luc], Gentoo ha progettato e realizzato Portage [Foub]. La sua funzione principale è quella di sfruttare gli ebuild (vedi sezione 2.1.2) per fungere da motore di eventuale compilazione e successiva installazione del software, sia esso costituito da un archivio di codice sorgente, o da un pacchetto precompilato tbz2.
Lo strumento principe di Portage è emerge. Esso permette
di compiere tutte le operazioni comuni ai vari Package Manager. Per
gli utenti più esperti è disponibile ebuild in grado di agire
direttamente sugli script nell'omonimo formato aumentando il dettaglio
delle operazioni di emerge. Molto interessante la sua capacità di
creare pacchetti software rpm. Entrambe le applicazioni possono produrre
pacchetti binari tbz2. Portage dispone
inoltre di altri utili strumenti
quali equery per reperire informazioni sui singoli pacchetti
o esearch per effettuare una ricerca nell'intero database
dei pacchetti.
Due caratteristiche avanzate del gestore pacchetti di Gentoo, sono la gestione condizionale delle dipendenze e l'utilizzo degli SLOT. Data la versatilità della compilazione da sorgente, è possibile impostare alcune variabili per decidere se attivare o meno particolari funzionalità in un'applicazione. Questa scelta può produrre una variazione delle dipendenze del software da installare e Portage gestisce questo cambiamento in modo totalmente automatico e trasparente all'utente. Inoltre si potrebbe desiderare la coesistenza nel sistema di più versioni dello stesso pacchetto. L'approccio delle distribuzioni tradizionali è di mettere a disposizione le varie versioni come pacchetti diversi con nome leggermente differente. Portage risolve questo problema permettendo di assegnare diversi SLOT allo stesso pacchetto e tenere così traccia separatamente degli aggiornamenti necessari per le varie versioni.
Da sottolineare che per la creazione degli script ebuild è sufficiente un editor di testo.