Monthly Archives: Agosto 2018

Impara a usare il comando yum

Presentazione di yum

yum è un sofisticato software in grado di gestire i pacchetti e le loro dipendenze.
yum sarà deprecato nelle versioni future di RHEL. Ma il suo successore, dnf, riutilizzerà la stessa sintassi.

Caratteristiche di base

Per installare un nuovo pacchetto (qui httpd), digitare:

# yum install httpd

Per rimuovere un pacchetto esistente (qui httpd), digitare:

# yum remove httpd

Per ottenere alcuni dettagli su un pacchetto (qui httpd), digitare:

# yum info httpd

Per installare un gruppo di pacchetti (qui “Web Server“), digitare:

# yum groupinstall "Web Server"

Per rimuovere un gruppo di pacchetti (qui “Web Server“), digitare:

# yum groupremove "Web Server"

Per ottenere l’elenco dei gruppi di pacchetti installati, digitare:

# yum grouplist

Per ottenere alcuni dettagli su un gruppo di pacchetti (qui “Web Server”), digitare:

# yum groupinfo "Web Server"

Per definire quale pacchetto fornisce un file specificato (qui semanage), digitare:

# yum whatprovides */semanage

Per cercare una stringa particolare (qui seinfo), digitare:

# yum search seinfo

Per aggiornare la base corrente dei pacchetti installati, digitare:

# yum update

Nota: per ottenere l’elenco dei pacchetti da riavviare dopo l’aggiornamento, digitare: # needs-restarting

Per ottenere l’elenco di tutti i pacchetti disponibili, digitare:

# yum list

Per ottenere l’elenco di tutti i pacchetti installati, digitare:

# yum list installed

Per visualizzare l’elenco di tutti i pacchetti disponibili ma non installati alerady, digitare:

# yum list available

Per ottenere l’elenco del repository disponibile, digitare:

# yum repolist

Per pulire la cache yum, digitare:

# yum clean all

Per ottenere l’elenco delle dipendenze associate a un pacchetto (qui httpd), digitare:

# yum deplist httpd

Impara a usare il comando rpm

Per installare (-i) un nuovo pacchetto (qui httpd-2.2.15-29.el6.x86_64.rpm), digitare:

# rpm -ivh httpd-2.2.15-29.el6.x86_64.rpm

Per aggiornare (-U) un pacchetto esistente (qui httpd-2.2.15-29.el6.x86_64.rpm), digitare:

# rpm -Uvh httpd-2.2.15-29.el6.x86_64.rpm

Per cancellare (-e) un pacchetto esistente (qui httpd-2.2.15-29.el6.x86_64), digitare:

# rpm -evh httpd-2.2.15-29.el6.x86_64

Per ottenere l’elenco di tutti i pacchetti installati, digitare:

# rpm -qa

Per ottenere alcuni dettagli su un pacchetto (qui httpd-2.2.15-29.el6.x86_64), digitare:

# rpm -qi httpd-2.2.15-29.el6.x86_64

Per ottenere l’elenco dei file del pacchetto (qui httpd-2.2.15-29.el6.x86_64), digitare:

# rpm -ql httpd-2.2.15-29.el6.x86_64

Per ottenere l’elenco di tutti i file modificati nel sistema, digitare:

# rpm -qVa

Per ottenere la cronologia delle modifiche di un pacchetto (qui openssl), digitare:

# rpm -q --changelog openssl
* Thu Oct 16 2014 Tomáš Mráz <tmraz@redhat.com> 1.0.1e-30.4
- use FIPS approved method for computation of d in RSA
...
* Tue Oct 26 1999 Bernhard Rosenkrdnzer <bero@redhat.de>
- inital packaging
- changes from base:
  - Move /usr/local/ssl to /usr/share/ssl for FHS compliance
  - handle RPM_OPT_FLAGS

Per ottenere l’elenco dei pacchetti provenienti da un determinato repository (qui remi), digitare:

#  rpm -qa --qf '%{VENDOR} \t %{NAME}\n' | grep -i remi
Remi Collet      libzip-last
Remi Collet      remi-release
Remi Collet      php-xml
Remi Collet      php-pecl-zip
...

Attenzione: se è molto utile conoscere il comando rpm per interrogare il sistema, è meglio non usarlo per installare un pacchetto:

Questo comando non tratta le dipendenze del pacchetto: dovrai farlo tu stesso con ogni sorta di difficoltà aggiuntiva.
Rompe la cronologia delle transazioni yum (=>Warning: RPMDB altered outside of yum).

Usa invece il comando yum.

Modificare boot loader del sistema

Nota: questo è un obiettivo d’esame RHCSA 7.

Presentazione di GRUB2

GRUB2 è il nuovo bootloader Linux. GRUB2 è l’acronimo di GRand Unified Bootloader version 2.

Dato che GRUB non è stato mantenuto per un po ‘di tempo e non aveva alcune funzionalità critiche come la gestione GPT necessaria per gestire dischi di dimensioni superiori a 2,4TB, è stato deciso di iniziare una nuova versione da zero con in mente la modularità.

GRUB2 offre le seguenti nuove funzionalità:

possibilità di avviarsi su vari file system (xfs, ext4, ntfs, hfs +, raid, ecc.),
decomprimere file gzip al volo,
gestire tutte le geometrie del disco,
supporto per GPT (GUID Partition Tables) e MBR (Master Boot Record),
portabilità con diverse architetture (BIOS, EFI, Coreboot, ecc.),
possibilità di caricare moduli al momento dell’esecuzione.

Processo di avvio di Linux

Organizzazione GRUB2

La configurazione di GRUB2 è distribuita su diversi file:

/boot/grub2/grub.cfg: questo file contiene la configurazione finale di GRUB2 (non modificarla direttamente!),
/etc/grub2.cfg: questo è un collegamento simbolico al file /boot/grub2/grub.cfg,
/etc/default/grub: questo file contiene l’elenco delle variabili GRUB2 (i valori delle variabili d’ambiente possono essere modificati),
/etc/sysconfig/grub: questo è un collegamento simbolico al file /etc/default/grub,
/etc/grub.d: questa directory contiene tutti i singoli file utilizzati internamente da GRUB2.

Questo tutorial esplorerà solo le conoscenze richieste per l’esame RHCSA.
Fare riferimento alla sezione Risorse aggiuntive per ulteriori dettagli.

Gestione di base

Per ottenere i dettagli sul kernel attivo corrente, digitare:

# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-229.11.1.el7.x86_64) 7 (Core)

Nota: questa informazione è memorizzata nel file /boot/grub2/grubenv.

Per ottenere l’elenco dei kernel visualizzati all’avvio, digitare:

# grep ^menuentry /boot/grub2/grub.cfg
menuentry 'CentOS Linux (3.10.0-229.20.1.el7.x86_64) 7 (Core)' ...
menuentry 'CentOS Linux (3.10.0-229.14.1.el7.x86_64) 7 (Core)' ...
menuentry 'CentOS Linux 7 (Core), with Linux 0-rescue-f19b719117b44bf3a3fb777bd4127' ...caf

Per definire in modo definitivo il kernel da eseguire al momento dell’avvio (qui 0 per la prima voce), digitare:

# grub2-set-default 0

Per visualizzare le variabili GRUB2, digitare:

# cat /etc/default/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200"
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root console=ttyS0,115200"
GRUB_DISABLE_RECOVERY="true"

Dove

GRUB_TIMEOUT definisce il ritardo di attesa all’avvio (qui 5 secondi),
GRUB_DISTRIBUTOR contiene il nome della distribuzione (qui CentOS Linux),
GRUB_DEFAULT specifica la voce di menu predefinita; può essere un numero, un nome di voce o una stringa saved che significa la voce salvata durante l’ultimo riavvio o l’esecuzione del comando grub2-set-default,
GRUB_DISABLE_SUBMENU consente (false) o meno (true) la visualizzazione di un sottomenu (vedi sotto),
GRUB_TERMINAL definisce il terminale di input e output device (qui console e seriale),
GRUB_SERIAL_COMMAND configura la porta seriale,
GRUB_CMDLINE_LINUX specifica gli argomenti della riga di comando aggiunti alle voci di menu per il kernel Linux,
GRUB_DISABLE_RECOVERY definisce se tutte le voci possono essere selezionate in modalità di ripristino tramite una riga separata (false) o solo la voce predefinita (true).

Se si desidera modificare il contenuto di qualsiasi variabile nel file precedente, è necessario digitare:

# grub2-mkconfig -o /boot/grub2/grub.cfg

Nota: questo è il comando principale da memorizzare per l’esame. Puoi anche sostituire /boot/grub2/grub.cfg con /etc/grub2.cfg

Per capire meglio alcune variabili d’ambiente, ecco la visualizzazione standard con GRUB_DISABLE_RECOVERY=”true” e GRUB_DISABLE_SUBMENU=true:

     CentOS Linux 7 (Core), with Linux 3.10.0-229.20.1.el7.x86_64
      CentOS Linux 7 (Core), with Linux 3.10.0-229.14.1.el7.x86_64
      CentOS Linux 7 (Core), with Linux 0-rescue-f19b719117b44bf3a3fb777bd4127>

      Use the ^ and v keys to change the selection.                       
      Press 'e' to edit the selected item, or 'c' for a command prompt.

Se GRUB_DISABLE_RECOVERY è impostato su “false”, ecco il nuovo display:

     CentOS Linux 7 (Core), with Linux 3.10.0-229.20.1.el7.x86_64              
      CentOS Linux 7 (Core), with Linux 3.10.0-229.20.1.el7.x86_64 (recovery m>
      CentOS Linux 7 (Core), with Linux 3.10.0-229.14.1.el7.x86_64             
      CentOS Linux 7 (Core), with Linux 3.10.0-229.14.1.el7.x86_64 (recovery m>
      CentOS Linux 7 (Core), with Linux 0-rescue-f19b719117b44bf3a3fb777bd4127>
      CentOS Linux 7 (Core), with Linux 0-rescue-f19b719117b44bf3a3fb777bd4127>

      Use the ^ and v keys to change the selection.                       
      Press 'e' to edit the selected item, or 'c' for a command prompt.

Ogni linea del kernel ottiene una linea associata in modalità di ripristino.

Se GRUB_DISABLE_RECOVERY è ora impostato su “true” (come nel display standard iniziale) e GRUB_DISABLE_SUBMENU è impostato su false, ecco il nuovo display:

      CentOS Linux 7 (Core)                                                     
      Advanced options for CentOS Linux 7 (Core)                               
                                                                             
      Use the ^ and v keys to change the selection.                       
      Press 'e' to edit the selected item, or 'c' for a command prompt.

Se viene selezionata la prima voce (“CentOS Linux 7 (Core)”), il sistema si avvia. Se viene selezionata la seconda opzione, il menu standard viene visualizzato con una riga aggiuntiva in basso per tornare al primo menu con il tasto Esc:

      CentOS Linux 7 (Core), with Linux 3.10.0-229.20.1.el7.x86_64              
      CentOS Linux 7 (Core), with Linux 3.10.0-229.14.1.el7.x86_64             
      CentOS Linux 7 (Core), with Linux 0-rescue-f19b719117b44bf3a3fb777bd4127>

      Use the ^ and v keys to change the selection.                       
      Press 'e' to edit the selected item, or 'c' for a command prompt.   
      Press Escape to return to the previous menu.

Risorse addizionali

Per esplorare meglio GRUB2, puoi:

leggi l’articolo di Brendan Swigart,
esplorare il manuale di configurazione di GRUB2,
leggi questo articolo che descrive il processo di avvio di RHEL 7.