Gentoo Cheat Sheet

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Gentoo Cheat Sheet and the translation is 100% complete.

Questo è un manuale di comandi utili per amministrare sistemi Gentoo. Nuovi e vecchi arrivi sono incoraggiati ad aggiungere le proprie.

See also
Vedere anche FAQ e Portage FAQ.

Gestione dei pacchetti

Metodi di sincronizzazione

Importante
È importante leggere e seguire ciascuna notizia che si presenti dopo una sincronizzazione di repository. Vedere le istruzioni in dettaglio riguardo gli aggiornamenti.

Portage

Per sincronizzare tutte le repository targate auto-sync, inclusa la ebuild Gentoo:

root #emaint --auto sync

Oppure, in breve:

root #emaint -a sync

Per sincronizzare tutte le ebuild repository di Gentoo tramite mirror, usando uno snapshot vecchio (al massimo) di un giorno:

root #emerge-webrsync

emerge --sync esegue il modulo di sincronizzazione emaint con aggiunta l'opzione --auto. Vedere operazioni di sincronizzazione di Portage per informazioni al riguardo.

eix

Sincronizzazione di repository di pacchetti e della ebuild repository di Gentoo usando eix:

root #eix-sync

Questo non solo sincronizza le repository, aggiorna anche la cache usata da eix per eseguire le query. Potrebbe essere preferibile configurare portage per aggiornare la cache automaticamente.

Elencare pacchetti

qlist

Per elencare i paccetti installati con numero di versione e nome dell'overlay utilizzato:

root #qlist -IRv

qlist è fornito da app-portage/portage-utils.

eix

Per visionare la lista di pacchetti nel world set, insieme alle versioni disponibili, può essere usato eix:

root #eix --world | less

Per conservare il colore in output a terminale, usare l'opzione--color:

root #eix --color -c --world | less -R

Installare pacchetti

Negli esempi seguenti il pacchetto www-client/firefox verrà utilizzato, ma gli utenti possono rimpiazzarlo con il pacchetto che vogliono installare.

Per elencare quali pacchetti verrebbero installati, senza installarli:

user $emerge --pretend --verbose www-client/firefox

Oppure, in breve:

user $emerge -pv www-client/firefox

Per elencare quali pacchetti verrebero installati, chiedendo conferma prima di installarli:

root #emerge --ask --verbose www-client/firefox

Oppure, in breve:

root #emerge -av www-client/firefox

Installare una versione specifica

Per installare una versione specifica di un pacchetto (usando "\=" (backslash e equal sign) per shell che legano significato speciale al carattere "="):

root #emerge --ask =www-client/firefox-96.0.1
Attenzione
Questo funzionerà solo temporaneamente, finché il sistema non verrà aggiornato. Durante un aggiornamento, Portage proverà a installare la versione stabile più recente del pacchetto, qualunque sia la versione installata correntemente; che sia stato utilizzato l'operatore = o meno.

Per prevenire che Portage aggiorni automaticamente un pacchetto, da aggiungersi è una linea di testo al file /etc/portage/package.mask/package.mask (creandolo se non esistente). Da specificare tramite l'operatore prefisso (>) se il pacchetto è più vecchio della versione stabile, o più recente (<):

FILE /etc/portage/package.mask
<www-client/firefox-96.0.1

Vedere /etc/portage/package.mask per più dettagli.

Installare senza aggiungere al world file

Per installare un pacchetto senza aggiungerlo al world file:

root #emerge --ask --oneshot www-client/firefox

Oppure, in breve:

root #emerge -a1 www-client/firefox

Rimuovere pacchetti

See also
Vedere la documentazione emerge per rimuovere pacchetti per informazioni complete.

--deselect

Usare emerge --deselect (oppure l'opzione -W in breve) per rimuovere il pacchetto specificato dal @world set (e.g. il pacchetto non è più desiderato):

root #emerge --deselect www-client/firefox

Ora eseguire emerge --depclean (oppure -c in breve). L'opzione --pretend (-p) farà sì che emerge mostri le azioni che intraprenderebbe, permettendoci di verificare che nessun pacchetto sia rimosso inaspettatamente:

user $emerge --pretend --depclean

Se emerge --depclean non è stato eseguito da tempo, questo potrebbe provare a rimuovere diversi pacchetti - procedere con cautela. Una volta assicuratosi che emerge --depclean non rimorrà pacchetti indesiderati, eseguire:

root #emerge --ask --depclean

L'opzione --ask non serve veramente dopo un check con --pretend, tuttavia incluso nel precedente esempio per aiutare a evitare pasticci "copia incolla".

Suggerimento
Da non confondere l'opzione in minuscolo -c abbreviazione di --depclean (sicura), con l'opzione in maiuscolo -C che rischia di danneggiare il sistema e dovrebbe essere utilizzata soltanto quando strettamente richiesto (vedere l'avviso alla sezione successiva).

--depclean

Per rimuovere direttamente un pacchetto sul quale nessun altro vi dipende:

root #emerge --ask --verbose --depclean www-client/firefox
Calculating dependencies... done!
>>> Calculating removal order...
 
>>> These are the packages that would be unmerged:
 
 www-client/firefox
    selected: 68.5.0 
   protected: none 
     omitted: none 
 
All selected packages: =www-client/firefox-68.5.0
 
>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.
 
Would you like to unmerge these packages? [Yes/No]

Per misura di sicurezza, depclean non rimorrà alcun pacchetto almeno che tutte le dipendenze richieste non vengano risolte. Come conseguenza di ciò, a volte si rende necessario eseguire prima:

root #emerge --ask --verbose --update --newuse --deep @world

Usare l'opzione --changed-use (-U) al posto di --newuse (-N) per evitare rebuilds quando gli unici cambiamenti sono alle USE flag aggiunte o eliminate dalla repository. Usare l'opzione --quiet (-q) per un'esecuzione più succinta:

root #emerge --ask --quiet --update --changed-use --deep @world
Attenzione
C'è un'opzione --unmerge (-C), ma non è consigliata e potrebbe rompere il sistema se non usata con cautela. Questa dovrebbe solamente essere usata se necessario, una volta informatosi di cosa esattamente faccia. Questa romperà il sistema o altri programmi, se usata su alcuni pacchetti. Il modo corretto di rimuovere pacchetti in Gentoo è virtualmente con l'opzione --depclean, come descritto sopra. Potrebbe essere comunque utile per eliminare un blocco.

Aggiornare pacchetti

Per aggiornare tutti i pacchetti del world set, le dipendenze (--deep) e i pacchetti che hanno subito variazioni alle USE flag (evitando rebuilds non necessarie se le USE flag non hanno ricevuto impatto):

root #emerge --ask --verbose --update --deep --changed-use @world

L'opzione --newuse potrebbe essere utilizzata al posto di --changed-use per assicurarsi che tutte le USE flag rispecchino lo stato corrente della Gentoo repository, causando però più rebuild. Il codice --with-bdeps=y può essere utilizzato per aggiornare anche dipendenze a tempo di build.

See also
Vedere Upgrading Gentoo per più informazioni in dettaglio.

Risolvere problemi di pacchetto

Per un controllo e rebuild di librerie mancanti (non dovuto normalmente):

root #revdep-rebuild -v

equery è parte del pacchetto app-portage/gentoolkit. Installarlo tramite il comando:

root #emerge -a gentoolkit

Per mostrare quale pacchetto fornisce un comando usando equery:

user $equery b `which vim`
Suggerimento
qfile può provvedere un'alternativa più veloce a equery, se necessario.

Per mostrare quale pacchetto (non installato) fornisce un comando usando e-file:

user $e-file vim

Installare e-file con:

root #emerge -a app-portage/pfl

Per mostrare quali pacchetti dipendono su uno specifico pacchetto (cat/pkg in esempio) usando equery:

user $equery d www-client/firefox

Per acquisire informazioni riguardo a un pacchetto usando eix:

root #eix www-client/firefox
Attenzione
Non eseguire unmerge sys-libs/glibc. È necessario per quasi tutti gli altri pacchetti. Se viene inavvertitamente rimosso, un drive esterno di salvataggio potrebbe essere richiesto. Potrebbe essere possibile ricavare glibc dopo avere impostato PORTAGE_BINHOST="http://packages.gentooexperimental.org/packages/amd64-stable/" dentro /etc/portage/make.conf.

Ricostruzioni

A volte è necessario "ricostruire" alcuni pacchetti perché questi funzionino. Quì alcuni dei rebuild più comuni:

Dopo l'installazione di un nuovo kernel:

root #emerge @module-rebuild

Dopo avere aggiornato a una nuova versione di Go:

root #emerge @golang-rebuild

Per usare nuove librerie:

root #emerge @preserved-rebuild

Migliorie a Portage

Per gestire cambiamenti alla configurazione dopo emerge:

root #dispatch-conf

Post-installazioni o aggiornamenti

Dopo aver aggiornato pacchetti perl-core:

root #perl-cleaner --all

Oppure, se il precedente non aiuta:

root #perl-cleaner --reallyall -- -av

Per pacchetti haskell:

root #haskell-updater

USE flags

Per ottenere descrizione e uso di una certa USE flag X usando euse:

user $euse -i X

Per acquisire informazioni riguardo euse usando le pagine di manuale:

user $man euse

Per mostrare quali pacchetti hanno la USE flag mysql:

user $equery hasuse mysql

Per mostrare quali pacchetti sono correntemente costruiti con la USE flag mysql:

user $eix --installed-with-use mysql

Per mostrare quali USE flag sono disponibili per un certo pacchetto:

user $equery uses <package-name>

Per aggiungere rapidamente una USE flag per un pacchetto installato:

root #echo 'dev-util/cmake -qt5' >> /etc/portage/package.use

File Portage importanti

Gestire i log

genlop

genlop è un processore di log di Portage, capace anche di stimare i tempi di build all'emerge di pacchetti.

Installare app-portage/genlop usando:

root #emerge -a app-portage/genlop

Per acquisire informazioni riguardo genlop usando le pagine di manuale:

root #man genlop

Per visionare gli ultimi 10 emerge (installazioni):

root #genlop -l | tail -n 10

Per vedere quanto ha impiegato LibreOffice per fare emerge:

root #genlop -t libreoffice

Per stimare quanto emerge -uND --with-bdeps=y @world impiegherebbe:

root #emerge -pU @world | genlop --pretend

Per controllare la merge ebuild più recente durante un aggiornamento di sistema:

root #watch genlop -unc

Overlays

eselect repository

app-eselect/eselect-repository può essere installato eseguendo:

root #emerge -a app-eselect/eselect-repository

Per mostrare tutti gli overlay esistenti:

user $eselect repository list

Per elencare tutti gli overlay installati:

user $eselect repository list -i
See also
Vedere Eselect/Repository per più informazioni.

Servizi

Per ottenere la shell di amministratore (a patto l'utente corrente sia nella lista dei sudoers):

user $sudo -i

OpenRC

Per eseguire il daemon ssh a livello di esecuzione di default all'avvio di sistema:

root #rc-update add sshd default

Per avviare il servizio sshd ora:

root #rc-service sshd start

Per controllare se il servizio sshd è in esecuzione:

root #rc-service sshd status

Per riavviare il servizio sshd:

root #rc-service sshd restart

Per fermare il servizio sshd:

root #rc-service sshd stop

Per elencare i servizi, il loro stato e i livelli di esecuzione a cui appartengono:

root #rc-status --all

Per mostrare i servizi abilitati e i livelli di esecuzione a cui appartengono (non se sono in esecuzione, solo se abilitati):

root #rc-update show

systemd

Per avviare il daemon ssh all'avvio:

root #systemctl enable sshd

Per avviare il servizio sshd ora:

root #systemctl start sshd

Per controllare se il servizio sshd è in esecuzione:

root #systemctl status sshd

Consigli

Cercare pacchetti in Portage usando espressioni regolari

Per cercare pacchetti in Portage con espressioni regolari:

root #emerge -s "%^python$"

Generare cache di metadati

Repository ebuild variano da molto piccole a molto larghe in grandezza. Come risultato di ciò, questi rallentano le operazioni di Portage. Questo succede perché gli overlay non contengono cache di metadati. La cache viene utilizzata per velocizzare ricerche e la costruzione di alberi di dipendenza. Un trabocchetto è quello di generare metadati locali di cache dopo aver sincronizzato gli overlay.

root #emerge --regen

Questo funziona anche in congiunzione con eix. eix-update può usare metadati generati da emerge --regen per velocizzare le cose. Per abilitarlo, da aggiungere è la seguente variabile a /etc/eixrc/00-eixrc:

FILE /etc/eixrc/00-eixrc
OVERLAY_CACHE_METHOD="assign"

qcheck

Per verificare i pacchetti installati usando qcheck:

root #qcheck vim-core

qcheck è contenuto in app-portage/portage-utils e può essere installato eseguendo il comando:

root #emerge -a app-portage/portage-utils

Per conoscere meglio qcheck leggendo le pagine di manuale:

user $man qcheck

Fonti esterne