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.

Aggiornare il pacchetto kernel in modo appropriato per garantire un sistema avviabile

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

Per installare un nuovo pacchetto del kernel, digitare:

# yum install kernel.rpm

o

# rpm -ivh kernel.rpm

Nota: non utilizzare l’opzione -U che sostituisce il kernel corrente invece di aggiungerlo al menu di avvio.