System maintenance (Italiano)

From ArchWiki

La manutenzione regolare del sistema è necessaria per il corretto funzionamento di Arch nel tempo. La manutenzione periodica é una pratica alla quale molti utenti si abituano.

Ricerca degli errori

Servizi di systemd che hanno fallito

Controlla se qualche servizio di systemd ha fallito:

$ systemctl --failed

Vedere systemd#Using units per avere maggiori informazioni.

File di log

Cercare gli errori nei file di log situati in /var/log/, così come i messaggi registrati nel journal di systemd:

# journalctl -b

Vedere systemd/Journal per ulteriori informazioni e opzioni di filtraggio.

Vedere Xorg#Troubleshooting per informazioni su dove e come Xorg registra gli errori.

Backup

Avere dei backup dei dati importanti è una misura necessaria, poiché è molto probabile che gli errori umani e di elaborazione, con il passare del tempo, generino danni e anche il supporto fisico in cui i dati sono memorizzati è inevitabilmente destinato a guastarsi.

Vedere Synchronization and backup programs per un elenco di applicazioni alternative che possono fare al caso vostro. Vedere Category:System recovery per altri articoli di interesse.

È consigliabile automatizzare i backup, vedere Autostarting#On time events.

File di configurazione

Prima di modificare qualsiasi file di configurazione, createne una copia di backup in modo da poter tornare a una versione funzionante in caso di problemi. Editor come vim ed emacs possono farlo automaticamente. Su scala più ampia, si può prendere in considerazione l'utilizzo di un configuration manager.

Per i dotfiles (i file di configurazione nella home directory), vedere dotfiles#Tracking dotfiles directly with Git.

Elenco dei pacchetti installati

Mantenere un elenco di tutti i pacchetti installati, in modo che se una reinstallazione completa fosse inevitabile, sia più facile ricreare l'ambiente originale.

Vedere pacman tips#List of installed packages per i dettagli.

Database di Pacman

Vedere pacman/Tips and tricks#Back up the pacman database.

Metadati di crittografia

Vedere Data-at-rest encryption#Backup for disk encryption scenarios.

Dati del sistema e dell'utente

Vedere System backup.

Aggiornamento del sistema

Si raccomanda di eseguire regolarmente gli aggiornamenti completi del sistema tramite pacman#Upgrading packages, per godere delle ultime correzioni di bug e degli aggiornamenti di sicurezza, e anche per evitare di dover gestire, in una volta sola, troppi aggiornamenti di pacchetti che richiedono un intervento manuale. Quando si richiede supporto alla comunità, si presume che il sistema sia aggiornato.

Assicuratevi di avere a disposizione il supporto di installazione di Arch o un altro CD/USB “live” di Linux, in modo da poter facilmente ripristinare il sistema in caso di problemi dopo l'aggiornamento. Se si utilizza Arch in un ambiente di produzione o se non ci si può permettere tempi di inattività, testare prima le modifiche ai file di configurazione e gli aggiornamenti dei pacchetti software su un sistema duplicato non critico. Quindi, se non si verificano problemi, applicare le modifiche al sistema di produzione.

Se il sistema ha pacchetti provenienti da AUR, aggiornateli tutti con attenzione.

pacman è un potente strumento di gestione dei pacchetti, ma non cerca di gestire tutti i casi. Gli utenti devono essere vigili e assumersi la responsabilità della manutenzione del proprio sistema.

Leggere prima di aggiornare il sistema

Prima di effettuare l'aggiornamento, gli utenti devono visitare la home page di Arch Linux per controllare le ultime notizie, o in alternativa iscriversi al RSS feed o alla arch-announce mailing list. Quando gli aggiornamenti richiedono un intervento fuori dall'ordinario da parte dell'utente (più di quello che può essere gestito semplicemente seguendo le istruzioni fornite da pacman), verrà pubblicato un apposito post.

Prima di aggiornare software fondamentale (come il kernel, xorg, systemd o glibc) a una nuova versione, si consiglia di consultare l'apposito forum per vedere se sono stati segnalati problemi.

Gli utenti devono anche essere consapevoli che l'aggiornamento dei pacchetti può sollevare problemi inaspettati che potrebbero richiedere un intervento immediato; pertanto, è sconsigliato aggiornare un sistema stabile poco prima che sia necessario per svolgere un compito importante. Si consiglia invece di attendere, ad aggiornare, fino a quando non si avrà abbastanza tempo a disposizione per risolvere eventuali problemi successivi all'aggiornamento.

Suggerimento: Si può usare un hook di pacman come informantAUR che impedisce l'aggiornamento se ci sono notizie fresche, in Arch News, che non sono state lette da quando si é eseguito l'ultimo aggiornamento.

Evitate alcuni comandi di pacman

Evitare di eseguire aggiornamenti parziali. In altre parole, non eseguite mai pacman -Sy; usate invece sempre pacman -Syu.

In generale, evitare di usare l'opzione --overwrite con pacman. L'opzione --overwrite accetta un argomento contenente un glob. Quando viene usata, pacman bypassa i controlli sui conflitti di file per i file che corrispondono al glob. In un sistema correttamente mantenuto, dovrebbe essere usata solo se esplicitamente raccomandata dagli sviluppatori di Arch. Vedere la sezione #Leggere prima di aggiornare il sistema.

Evitare di usare l'opzione -d con pacman. pacman -Rdd pacchetto salta i controlli sulle dipendenze durante la rimozione dei pacchetti. Di conseguenza, un pacchetto che fornisce una dipendenza critica potrebbe essere rimosso, con conseguente rottura del sistema.

Gli aggiornamenti parziali non sono supportati

Arch Linux è una distribuzione rolling release. Ciò significa che quando nuove versioni delle librerie vengono inviate ai repository, gli [sviluppatori] e i Package Maintainers ricostruiscono tutti i pacchetti nei repository che devono essere ricostruiti rispetto alle librerie. Per esempio, se due pacchetti dipendono dalla stessa libreria, l'aggiornamento di uno solo dei due pacchetti potrebbe aggiornare anche la libreria (come dipendenza), il che potrebbe rompere l'altro pacchetto che continuerebbe a dipendere da una versione più vecchia della libreria.

Per questo motivo gli aggiornamenti parziali non sono supportati. Non usare:

  • pacman -Sy package
  • pacman -Sy seguito da pacman -S package (Notare l'assenza di -Su nell'aggiornamento del database.)
  • pacman -Syuw (Notare che pacman -Syuw implica gli stessi rischi di pacman -Sy, perché aggiorna il database di pacman senza installare i pacchetti nuovi.)

Quando si aggiorna il database dei pacchetti, si deve sempre eseguire un aggiornamento completo con pacman -Syu. Si noti che se pacman -Syu non esegue l'aggiornamento a causa di un errore, il risultato finale è lo stesso dell'esecuzione di pacman -Sy. Pertanto, è necessario risolvere l'errore e completare l'operazione di aggiornamento il prima possibile.

Fate molta attenzione quando usate IgnorePkg e IgnoreGroup per lo stesso motivo. Se il sistema ha pacchetti compilati localmente (come i pacchetti AUR), gli utenti dovranno ricompilarli quando le loro dipendenze riceveranno un soname.

Se è stato creato uno scenario di aggiornamento parziale e i binari sono interrotti perché non riescono a trovare le librerie a cui sono collegati, non “risolvete” il problema semplicemente con un collegamento simbolico. Le librerie ricevono soname quando non sono retrocompatibili. Un semplice pacman -Syu a un mirror correttamente sincronizzato risolverà il problema, a patto che pacman non sia rotto.

Lo script bash checkupdates, incluso nel pacchetto pacman-contrib, fornisce un modo sicuro per verificare la presenza di aggiornamenti ai pacchetti installati senza eseguire contemporaneamente un aggiornamento del sistema e fornisce un'opzione per scaricare gli aggiornamenti in attesa nella cache di pacman senza toccare il database di sincronizzazione.

Agire riguardo gli avvisi durante l'aggiornamento

Quando si aggiorna il sistema, è bene prestare attenzione agli avvisi forniti da pacman. Se l'utente deve compiere delle azioni aggiuntive, è bene che se ne occupi subito. Se un avviso di pacman vi confonde, cercate nei forum e nei post delle notizie recenti per avere istruzioni più dettagliate.

Gestire tempestivamente i nuovi file di configurazione

Quando viene invocato pacman, possono essere creati dei file pacnew e pacsave. Pacman fornisce un avviso quando ciò accade e gli utenti devono occuparsi di questi file tempestivamente. Per istruzioni dettagliate si rimanda alla pagina wiki pacman/Pacnew e Pacsave.

Pensate anche ad altri file di configurazione che potreste aver copiato o creato. Se un pacchetto aveva un esempio di configurazione che è stato copiato nella propria directory, si può verificare se ne è stato creato uno nuovo.

Riavviare il sistema dopo gli aggiornamenti

In genere gli aggiornamenti non vengono applicati ai processi esistenti. È necessario riavviare i processi per applicare completamente l'aggiornamento.

Il pacchetto archlinux-contrib fornisce uno script chiamato checkservices che esegue pacdiff per fare il merge dei file .pacnew, quindi controlla i processi in esecuzione con librerie non aggiornate e chiede all'utente se desidera riavviarli.

Il kernel è particolarmente difficile da patchare senza un riavvio. Il riavvio è sempre l'opzione più sicura, ma se questo è molto scomodo si può usare il kernel live patching per applicare gli aggiornamenti senza riavviare.

Fare il revert degli aggiornamenti non funzionanti

Se l'aggiornamento di un pacchetto è risaputo causare problemi, i pacchettizzatori faranno in modo che pacman visualizzi un messaggio appropriato quando il pacchetto viene aggiornato. Se si riscontrano problemi dopo un aggiornamento, controllare due volte l'output di pacman guardando /var/log/pacman.log.

Suggerimento: È possibile utilizzare un visualizzatore di log come wat-gitAUR per cercare i log di pacman.

A questo punto, solo dopo essersi assicurati che non ci siano informazioni disponibili attraverso pacman, che non ci siano notizie rilevanti sulla homepage e che non ci siano post sul forum riguardanti l'aggiornamento, si può considerare di cercare aiuto sul forum, su IRC o di fare downgrading del pacchetto incriminato.

Check for orphans and dropped packages

After upgrading you may now have packages that are no longer needed or that are no longer in the official repositories.

Use pacman -Qtd to check for packages that were installed as a dependency but now, no other packages depend on them. If an orphaned package is still needed, it is recommended to change the installation reason to explicit. Otherwise, if the package is no longer needed, it can be removed. See pacman/Tips and tricks#Removing unused packages (orphans) for details.

Additionally, some packages may no longer be in the remote repositories, but they still may be on your local system. To list all foreign packages use pacman -Qm. Note that this list will include packages that have been installed manually (e.g., from the AUR). To exclude packages that are (still) available on the AUR, use the script from BBS#288205 or try the ancient-packagesAUR tool.

Use the package manager to install software

Pacman does a much better job than you at keeping track of files. If you install things manually you will, sooner or later, forget what you did, forget where you installed to, install conflicting software, install to the wrong locations, etc.

  • Install packages from the official repositories using the method in the pacman#Installing packages section.
  • If the program you desire is not available, check to see if someone has created a package in the AUR. Follow the method in that article for installation.
  • Lastly, if the program you want is not in the official repositories or in the AUR, learn how to create a package for it.

To clean up improperly installed files, see pacman/Tips and tricks#Identify files not owned by any package.

Choose open-source drivers

Always try open source drivers before resorting to proprietary drivers. Most of the time, open source drivers are more stable and reliable than proprietary drivers. Open source driver bugs are fixed more easily and quickly. While proprietary drivers can offer more features and capabilities, this can come at the cost of stability. To avoid this dilemma, try to choose hardware components known to have mature open source driver support with full features. Information about hardware with open source Linux drivers is available at linux-drivers.org.

Be careful with unofficial packages

Use precaution when using packages from the AUR or an unofficial user repository. Most are supplied by regular users and thus may not have the same standards as those in the official repositories. Avoid AUR helpers which automate installation of AUR packages. Always check PKGBUILDs for sanity and signs of mistake or malicious code before building and/or installing the package.

To simplify maintenance, limit the amount of unofficial packages used. Make periodic checks on which are in actual use, and remove (or replace with their official counterparts) any others. See pacman/Tips and tricks#Maintenance for useful commands. Following system upgrade, use rebuild-detector to identify any unofficial packages that may need to be rebuilt.

Update the mirrorlist

Update pacman's mirrorlist, as the quality of mirrors can vary over time, and some might go offline or their download rate might degrade.

See mirrors for details.

Clean the filesystem

When looking for files to remove, it is important to find the files that take up the most disk space. Programs that help with this are found in:

Package cache

Remove unwanted .pkg files from /var/cache/pacman/pkg/ to free up disk space.

See pacman#Cleaning the package cache for more information.

Unused packages (orphans)

Remove unused packages from the system to free up disk space and simplify maintenance.

See pacman/Tips and tricks#Removing unused packages (orphans) for details.

Old configuration files

Old configuration files may conflict with newer software versions, or corrupt over time. Remove unneeded configurations periodically, particularly in your home directory and ~/.config. For similar reasons, be careful when sharing home directories between installations.

Look for the following directories:

  • ~/.config/ -- where applications stores their configuration
  • ~/.cache/ -- cache of some programs may grow in size
  • ~/.local/share/ -- old files may be lying there

See XDG Base Directory support for more information.

To keep the home directory clean from temporary files created at the wrong place, it is a good idea to manage a list of unwanted files and remove them regularly, for example with rmshit.py.

rmlint-gitAUR can be used to find and optionally remove duplicate files, empty files, recursive empty directories and broken symlinks.

Broken symlinks

Old, broken symbolic links might be sitting around your system; you should remove them. Examples on achieving this can be found here and here. However, you should not blindly delete all broken symbolic links, as some of them serve a purpose [1].

To quickly list all the broken symlinks of your system, use:

# find / -xtype l -print

Then inspect and remove unnecessary entries from this list.

Tips and tricks

The following tips are generally not required, but certain users may find them useful.

Use proven software packages

Arch's rolling releases can be a boon for users who want to try the latest features and get upstream updates as soon as possible, but they can also make system maintenance more difficult. To simplify maintenance and improve stability, try to avoid cutting edge software and install only mature and proven software. Such packages are less likely to receive difficult upgrades such as major configuration changes or feature removals. Prefer software that has a strong and active development community, as well as a high number of competent users, in order to simplify support in the event of a problem.

Avoid any use of the testing repository, even individual packages from testing. These packages are experimental and not suitable for a stable system. Similarly, avoid packages which are built directly from upstream development sources. These are usually found in the AUR, with names including things like: "dev", "devel", "svn", "cvs", "git", etc.

Install the linux-lts package

The linux-lts package is an alternative Arch kernel package, and is available in the core repository. This particular kernel version has long-term support (LTS) from upstream, including security and bug fixes. It is useful if you use out-of-tree kernel modules and want to ensure their compatibility or if you want a fallback kernel in case a new kernel version causes problems.

To make it available as a boot option, you will need to update your boot loader's configuration file to use the LTS kernel and ram disk: vmlinuz-linux-lts and initramfs-linux-lts.img.

See also