Skip to content

Latest commit

 

History

History
1676 lines (992 loc) · 92.6 KB

installazione_archlinux.md

File metadata and controls

1676 lines (992 loc) · 92.6 KB

copertina

Guida Installazione Arch

versione 1.6: Talete by PsykeDady

first release : 2019-08

last release : 2020-12

NOTE:

*copertina presa in prestito dal web. purtroppo ho perso il link

Prefazione: a chi è indirizzata questa guida?

Questa guida si prefigge come scopo quello di essere, in generale, orientata a chiunque si avvicini, per la prima volta, al mondo di Archlinux. Tuttavia è stata scritta seguendo le mie esigenze e le mie esperienze acquisite nel campo. Al tempo in cui sto scrivendo questa prefazione (estate 2018) ho alle spalle solamente 3 anni di abilità su archlinux, acquisite installando più e più volte la distribuzione su vari calcolatori (pc fissi, portatili, macbook etc..)

Se c'è comunque una consapevolezza di cui il tempo, le mie e le esperienze altrui mi hanno fatto dono è che, inevitabilmente, ogni calcolatore gode di un'esperienza unica in termini di prestazioni, estetica e praticità della configurazione distribuzione/kernel/parametri installati da colui che si appresta ad utilizzarvi GNU/Linux sopra. Questa affermazione, se pur posso assicurare abbia un alto grado di verità, tende ad entrare difficilmente nella mentalità di chi da tempo, ormai, dimostra di ad avere atteggiamenti da stadio anche nei confronti della più assoluta libertà che dovrebbe, invece, professare la community di Linux.

Inoltre, consiglio a tutti coloro che si avventurano nella piccola impresa di installare Archlinux, di tenere sempre sottomano la guida ultima di tutti noi arch-user (e non solo), la wiki: un'enorme fonte di conoscenza sul mondo linux che risolve problemi in qualsiasi ambito, o quanto meno che vi aiuta a risolverli indirettamente. Tutto ciò che troverete in questa guida altro non è che un estratto di piccole sezioni della wiki che io uso sempre per installare archlinux. La guida è, inoltre, disponibile in moltissime lingue, tra cui l'italiano.

Ricordo, infine, che per chi volesse provare un Archlinux con installer user-friendly, esiste Manjaro, una distro su base arch completamente personalizzabile al momento dell'installazione, davvero molto user-friendly. Segnalo anche chakra.

Rimane comunque consigliato, a mio avviso, non scegliere Archlinux come distribuzione per approcciarsi la prima volta al mondo GNU/Linux, ma scegliere distro più "alla mano" come Ubuntu, Fedora, Linux Mint o Kde-Neon.

Finalmente, dopo un anno, posso dire di aver concluso una prima fase di maturità di questa guida, che è stata letta, usata, commentata, criticata e corretta da tantissimi utenti. Ringrazio chiunque abbia partecipato a quella che oggi, ad Agosto 2019, ritengo essere la guida di arch versione 1.0.

Detto questo: buon divertimento e benvenuti nel fantastico mondo di Archlinux.

...Linux è sinonimo di libertà e rispetto...

Copyright (C)  Davide Galati (aka PsykeDady).
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License". 

La versione completa della licenza si può trovare nella sezione: Licenza per intero

Sezione speciale per versione markdown

La versione per markdown è stata scritta con il software Typora, il tema usato per generare il pdf è Purple

Indice generale

[TOC]

Preparare il supporto di installazione

Prima di iniziare, se avete dubbi sulla simbologia del documento date un occhiata all’ultima sezione di questa guida, Template e legenda, che vi chiarirà cosa si intende con un determinato colore-simbolo o blocco di ciò che leggerete. Buon inizio!

ATTENZIONE:

Non mi prendo la responsabilità di alcun danno arrecato al vostro computer o di alcun dato perso dall’utilizzo scorretto dei comandi presenti di questa guida. I comandi sono da comprendere ed interpretare anche in base alla propria configurazione.

Metodo 1 da Linux : dd

Un primo semplice metodo consiste del preparare la pennina USB con il famoso tool dd :

sudo dd if=/percorso/iso of=/dev/sdX bs=4M status=progress

sostituire a X la lettera del mezzo di installazione, inserire la pennina e digitare fdisk -l e quindi leggere l’output fino ad arrivare a quella che sembra essere la vostra pennina, leggendone le coordinate.

In seguito all’installazione, per poterla nuovamente riutilizzare, dovrete azzerarla con lo stesso tool:

sudo dd if=/dev/zero of=/dev/sdXY bs=4M status=progress

ATTENZIONE:

Un utilizzo intensivo di dd potrebbe rovinare la pennina, in quanto ne sovrascrive il contenuto bit a bit. Fare quindi attenzione, meglio utilizzare pennine a basso costo e non molto capienti.

Metodo 2 da Linux : copia su fat32 (Consigliato UEFI)

Un altro metodo consiste nel copiare il contenuto della ISO in un file system FAT32, questo metodo presenta diversi vantaggi, ma funziona solo con macchine UEFI.

Creare, quindi, due directory dove montare la ISO e la USB di installazione:

mkdir {usb,iso}

montare la iso utilizzando:

sudo mount -o loop /percorso/iso iso

se non lo si è ancora fatto, formattare la pennetta in fat32 e supponendo che /dev/sdX sia il percorso della pennina, seguire queste istruzioni per formattarne il contenuto con fdisk (effettuare le operazioni con su o con sudo).

#da eseguire solo se si vuole completamente resettare la pennina
sudo dd if=/dev/zero of=/dev/sdX

#si entrerà in modalità fdisk, scrivere i prossimi comandi e premere invio
sudo fdisk /dev/sdX 
o
n
p
1
2048
#(invio senza scrivere nulla oppure scegliere una dimensione)
t
0b
w #si uscirà dalla modalità fdisk

sudo mkfs.fat /dev/sdX1
#sostituendo ad AAAA e MM le stesse date che trovate sulla iso
sudo dosfslabel /dev/sdX1 ARCH_AAAAMM 

sudo mount /dev/sdX1 usb

SUGGERIMENTO: È possibile, alternativamente a fdisk, usare cfdisk, che è più user-friendly.

In questo momento, nelle cartelle usb e iso, sono montati, rispettivamente, la usb e il contenuto della iso. Ci apprestiamo, dunque, a copiare il contenuto della iso nella usb cp -r iso/* usb Consiglio, a questo punto, di sincronizzare i buffer del disco e della pennetta e smontare le cartelle, per evitare che le modifiche non vengano effettuate correttamente:

sudo sync
sudo umount {usb,iso}

La pennina è pronta per i sistemi UEFI. Questo metodo è più sicuro di dd ma funziona su meno sistemi.

Syslinux per il boot

Eventualmente si può pensare di usare syslinux per ampliare ulteriormente il bacino di pc che vedranno la pennetta come avviabile. Si dovrà, quindi, scaricare dal proprio gestore di pacchetti l’ultima versione del software citato e di parted ed eseguire i prossimi comandi (prima di smontare la usb):

mkdir usb/boot/syslinux
extlinux --install usb/boot/syslinux
dd bs=440 conv=notrunc count=1 if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdX
parted /dev/sdX toggle 1 boot

ATTENZIONE:

==quest’ultimo passo non l’ho mai applicato personalmente, ma l’ho letto sulla wiki e l’ho voluto riportare. Se qualcosa non dovesse funzionare vi invito a documentarvene personalmente sulla guida ufficiale==

Metodo 3 da Linux : varie GUI

Se non amate molto sporcarvi le mani durante queste operazioni sono disponibili moltissimi programmi che lo fanno per voi. Personalmente (ma anche la guida ufficiale) sconsiglio fortemente l’utilizzo del noto programma uNETbootin, in quanto tende a funzionare solo con Ubuntu e derivate. Comunque sia elencherò una serie di software che ho usato io e che spesso funzionano:

  • etcher
  • suse image writer
  • deepin usb maker
  • Fedora media writer

Altri S.O.

Su sistemi operativi OSX consiglio di usare l’utility Disco di sistema.

Su sistemi operativi Windows invece consiglio l’uso di Rufus o LiLi USB (meno consigliato su sistemi UEFI comunque). Se vi doveste trovare male con i primi, altri utenti mi hanno consigliato i seguenti programmi:

  • Win32DiskImager
  • USBWriter

Hello world, I'm Archlinux. Nice to meet you!

Supponendo ora che siate riusciti da soli ad avviare il supporto attraverso le impostazioni del vostro BIOS oppure le impostazioni EFI del vostro sistema, o che ancora l’abbiate avviata attraverso virtualbox, possiamo passare alle prime fasi dell’installazione.

Avviando Arch, se tutto va bene, dovreste ritrovarvi davanti ad una schermata simile:

L’utente un po’ inesperto o pratico solo di installazioni Ubuntu/OSX/Windows sarà spaesato, ma nessuna paura, è tutto molto più semplice di ciò che si pensa.

Ma prima di tutto, se avete una tastiera italiana, digitate:

loadkeys it

se avete uno schermo hidpi digitate anche:

setfont /usr/share/kbd/consolefonts/sun12x22.psfu.gz

così vedrete meno madonnine volare in cielo …

NOTE:

Nella cartella /usr/share/kbd/consolefonts/ trovate molti altri font, scegliete solo quelli 12x22 per la massima leggibilità

Preparazione del disco di installazione

La prima cosa da fare è preparare il disco di installazione. Attraverso i comandi blkid o fdisk -l scopriamo, quindi, le coordinate del nostro disco ed eventualmente della partizione, se preparata precedentemente attraverso altri sistemi operativi (può essere utile spesso preparare tutto attraverso una live di ubuntu con gparted se si è alle prime armi e si hanno dati da preservare).

Ci vuole comunque un po' di organizzazione, bisogna sapere in anticipo in quante partizioni si vuole suddividere la propria installazione, se si è su un sistema UEFI, se si hanno più dischi e se si hanno altre installazioni da tenere.

La guida supporrà che il disco sia non inizializzato, che sia l'unico disco presente e che non si abbiano altri sistemi operativi installati. Inoltre, si è scelto di voler suddividere l'installazione in root, home e swap. Un'altra condizione supposta sarà di avere un sistema EFI, con tutto ciò che ne deriva.

Suggerimento:

Lo spazio di Swap è uno spazio utilizzato dal sistema per sopperire alla mancanza di memoria RAM sufficiente a far funzionare correttamente tutti i programmi. In genere si usa riservare dello spazio uguale alla RAM per usufruire anche della funzione di ibernazione, che consente di spegnere il computer senza perdere la sessione di lavoro corrente (diversamente dalla sospensione non consuma batteria). Per PC con RAM maggiore di 4Gb non consiglio di usare la swap, a meno di utilizzare anche l’ibernazione; un'alternativa può essere anche quella di usare il file di swap anziché la partizione. Maggiori informazioni si troveranno nella sezione che riguarda le configurazioni di sistema.

Si ha, quindi, il nostro disco su /dev/sda, vuoto e non inizializzato (un disco vergine per intenderci, come quello che potremmo trovarci in una macchina virtuale). Alternativamente, si può pensare di avere un disco di cui non ci interessa il contenuto, periò le seguenti operazioni lo formatteranno completamente:

gdisk /dev/sda

in questo modo si entrerà nella modalità gdisk, che installerà uno schema di partizioni di tipo GPT, se non si ha a che fare con UEFI è consigliato usare fdisk o cfdisk, ed avere a che fare con partizioni di tipo tradizionale, cioè MBR.

Esiste anche cgdisk, l'alternativa user-friendly di gdisk, prendetela in considerazioni se non volete seguire alla cieca le istruzioni qui sotto ma organizzare in maniera più pratica le partizioni secondo un'organizzazione personale. Dunque, procediamo con la supposizione di cui sopra:

o 
n
1
(invio senza scrivere niente)
+200M
ef00

n
2
(invio senza scrivere niente)
# (sostituendo a XXX il numero di giga che volete dare alla vostra root)
+XXXG
(invio senza scrivere niente)

n
3
(invio senza scrivere niente)
# sostituendo a YYY il numero di Giga che volete dare alla home, in genere vi si assegna la maggior parte dello spazio
+YYYG
(invio senza scrivere niente) 

n 
4
(invio senza scrivere niente)
#sostituendo a ZZ il numero di Giga da dare alla swap
+ZZG
8200

w

Dopo essere usciti dalla modalità gdisk, possiamo accertarci della situazione usando il comando gdisk -l oppure con blkid.

Se non avete un sistema UEFI e volete usare fdisk la lista di parametri da inserire potrebbe essere questa:

n
p
1
(invio senza scrivere niente)
# sostituire a XXX il numero di giga da dare alla root
+XXXG 

n
p
2
(invio senza scrivere niente)
# sostituire a YYY il numero di giga da dare alla home, qui mettere la maggiorparte dello spazio
+YYYG

n
p
3
(invio senza scrivere niente)
# sostituire a ZZ il numero di Giga da dare alla swap
+ZZG

t
3
82

Ricordate comunque di controllare il significato delle opzioni tramite gli appositi help interattivi. Per usare le partizioni è necessario, in ogni caso, formattarle, rimanendo sempre nella supposizione in cui siate UEFI:

mkfs.fat /dev/sda1
mkfs.ext4 -m 0 /dev/sda2
mkfs.ext4 -m 0 /dev/sda3
mkswap /dev/sda4

Altrimenti avrete una cosa simile:

mkfs.ext4 -m 0 /dev/sda1
mkfs.ext4 -m 0 /dev/sda2
mkswap /dev/sda3

SUGGERIMENTO: Potreste voler identificare i vostri hard disk con un'etichetta, tipo ‘Arch-Root’ o simili. In caso potreste utilizzare il comando e2label :

  • e2label /dev/sda1 ‘ArchRoot

Attenti perché ogni file system ha il suo software per creare label. Ad esempio la swap usa swaplabel.

Dunque possiamo iniziare a montare:

mount /dev/sda2 /mnt
mkdir -p /mnt/boot/efi
mkdir /mnt/home
mount /dev/sda1 /mnt/boot/efi
mount /dev/sda3 /mnt/home
swapon /dev/sda4

oppure (Non UEFI):

mount /dev/sda1 /mnt
mkdir /mnt/home
mount /dev/sda2 /mnt/home
swapon /dev/sda3

La sezione riguardante la configurazione dei dischi finisce qua.

Installazione dei pacchetti e connessione al mondo esterno

Stop. Senza internet non si va da nessuna parte.

Se siete connessi via cavo, basta dare dhcpcd, altrimenti la procedura richiede qualche passaggio in più. Innanzitutto apriamo l'interfaccia interattiva:

iwctl

Poi individuiamo l'interfaccia di rete wireless:

device list

Qui, sotto la voce name, dovrebbe apparire la vostra interfaccia di rete. Se non compare nulla potreste aver bisogno di driver particolari per connettervi, in tal caso usate trovate una connessione ethernet oppure utilizzate il tethering usb del telefono fino a fine installazione.

Supponiamo che la vostra interfaccia si chiami wlan0, procedete quindi con lo scan delle reti circostanti:

station wlan0 scan
station wlan0 get-networks

Dovremmo avere la lista delle reti visibili dal nostro pc, perciò connettiamoci a quella di nostra preferenza:

station wlan0 connect NOME-RETE

Ci sarà chiesto di inserire la password, dopo di che potrete utilizzare la scorciatoia Ctrl+d per uscire (oppure digitare exit quindi invio)

Date dhcpcd per forzare il router a rilasciarvi un indirizzo ip. Ben fatto, siete connessi! Sicuri? per accertarcene possiamo dare:

ping -c 3 www.google.com

Se tutto va bene, vi risponderà che sono stati trasmessi e ricevuti 3 pacchetti. Ora che siamo sicuri possiamo andare avanti.

Arch offre un modo davvero comodo per scaricare i pacchetti d'avvio sulla nostra nuova installazione, attraverso pacstrap:

pacstrap /mnt base base-devel linux linux-firmware net-tools dialog iwd netctl wpa_supplicant grub efibootmgr dhcpcd

Poi dobbiamo installare anche un editor di testo, per nano possiamo usare:

pacstrap /mnt nano

se tutto va per il meglio (spero per voi) il vostro /mnt sarà adesso abbastanza popolato.

Prime configurazioni

Creiamo quindi il vostro fstab che permetterà di montare le cartelle nel giusto ordine all'avvio:

genfstab -pU /mnt >> /mnt/etc/fstab

ed entriamo quindi in chroot attraverso un comodissimo script arch:

arch-chroot /mnt

settiamo la password di root con passwd e modifichiamo il file fstab (con nano, vi o qualunque altro editor ci piaccia usare) creato in precedenza sostituendo nella riga della swap il parametro none con la dicitura swap. Supponendo che stiate usando nano, potete digitare:

nano /etc/fstab

fare la modifica al file e poi ctrl-x per uscire (y e poi enter per salvare il file).

Configuriamo quindi il grub:

grub-install /dev/sda

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

si può quindi dare un nome alla macchina in rete:

echo "<NOMEPC>" > /etc/hostname

Si può ora impostare la lingua andando ad editare il file /etc/locale.gen decommentando (togliendo il carattere #) le tre linee che iniziano con it_IT, poi diamo il comando locale-gen per generare i file della lingua. Se volessimo altre lingue, basta decommentare la riga corrispondente al codice della lingua desiderata, ad esempio per l’inglese decommentiamo quelle con en

In seguito bisogna generare un buon /etc/locale.conf, usiamo il nostro editor preferito e scriviamo all'interno:

LANG=it_IT.UTF-8
LC_COLLATE="C"
LC_TIME="it_IT.UTF-8"
LANGUAGE="it_IT:en_EN:en"

impostiamo la lingua del tty con: echo "KEYMAP=it" > /etc/vconsole.conf

ed impostiamo il fuso orario di sistema con: ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime

Conclusione del programma di installazione

Il sistema è installato correttamente, adesso andiamo a smontare le partizioni:

exit
umount /mnt/boot/efi
umount /mnt/home
umount /mnt 
swapoff
sync
poweroff # o reboot se volete riavviare

possiamo quindi riavviare e continuare le configurazioni tramite l'utente root e non in ambiente di chroot.

Configurazioni di sistema

Dopo aver riavviato e tolto la chiavetta dovremmo essere davanti la schermata di selezione dei sistemi del grub, dove la prima opzione dovrebbe proprio corrispondere a quella di avviare archlinux. Se così non fosse, reinserite la chiavetta, rimontate le partizioni e rifate il chroot, cercando la soluzione al problema usando anche la wiki. Da qui in poi sarà supposto che voi abbiate il sistema funzionante e possiate effettuare il login tramite account di root. A questo punto inserite come nome utente proprio root e come password quella impostata precedentemente. È quindi tempo di fare un po' di configurazioni a sistema appena installato.

Connettiamoci al mondo esterno e alcuni consigli iniziali

Come sempre la prima cosa da fare è connettersi, esattamente come prima possiamo usare dhcpcd e nel caso della rete senza fili possiamo procedere come prima con iwctl oppure utilizzare il tool wifi-menu, che potreste preferire per l'immediatezza (è una comoda interfaccia grafica molto intuitiva). Nel caso di iwctl, ricordiamo di dare prima:
systemctl start iwd

Il primo consiglio è, innanzitutto, quello di eseguire subito un upgrade del sistema e dei repository:

pacman -Syyu

Consiglio poi di installare alcuni pacchetti che nel 90% dei casi vi saranno utili, con il comando:

pacman -S linux-headers os-prober git bash-completion man-db man-pages

Nello specifico:

  • linux-headers sono una serie di interfacce che servono a compilare alcuni pacchetti, capirete a cosa vi serve quando arriveremo ai repository AUR;
  • os-prober serve a rilevare altri sistemi operativi all'avvio, guardare la sezione Altri sistemi operativi;
  • git è un sistema di versioning di file e cartelle, usatissimo in ambito di programmazione e vi servirà per scaricare il codice da repository remoto;
  • bash-completion serve ad abilitare l'autocompletamento con tab nella famosissima shell bash;
  • man-db e man-pages si occuperanno di generare e farci consultare le documentazioni tramite il noto comando man <comando>. Il comando in questione deve essere provvisto comunque di documentazione;

Altri sistemi operativi

Se abbiamo altri sistemi operativi in dual boot, dobbiamo modificare alcune opzioni prima di rigenerarne il file di configurazione, oltre ad aver ovviamente installato os-prober come descritto in precedenza. Innanzitutto andiamo a modificare il file:

/etc/grub/default

E scriviamo, verso la fine del file, la seguente stringa:

GRUB_DISABLE_OS_PROBER=false

Potrebbe già esserci questa opzione, commentata o no, quindi sinceriamoci che non esista già e, nel caso, cambiamone solo il valore.

Ora possiamo rigenerare il grub:

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

Server e driver

In ambienti linux, senza motore grafico, si può usare il pc al più come server. Oggigiorno la produttività dipende strettamente da ciò che si vede e da come ci si può interagire. Per questo motivo verrà illustrato come installare il server grafico XORG. Esistono, oggi, delle valide alternative, tuttavia quest'ultimo rimane il server più stabile e consolidato nel mondo del pinguino. È quindi consigliabile installarlo a prescindere da ciò che vorrete provare in futuro.

Insieme al server grafico si consiglia di installare il suo sistema di init, che nel caso in cui un D.M. (la grafica di accesso al sistema) non funzioni a dovere sarà un ottimo sostituto. Quindi:

pacman -S xorg-server xorg-xinit

Potete impostare nel file ~/xinitrc il comando per utilizzare il vostro DE preferito (quando ne avrete uno).

Anche installare i driver video è abbastanza semplice. Infatti:

Su Virtualbox

pacman -S virtualbox-guest-utils

Su VMWare

pacman -Sy net-tools gtkmm3 open-vm-tools xf86-video-vmware xf86-input-vmmouse 

systemctl enable vmtoolssd.service

Altri casi

Andiamo ad identificare la scheda video con lspci:

lspci | grep VGA

l'output riporterà al suo interno: intel, ati o nvidia. In base al risultato ottenuto andremo ad installare i driver open relativi:

#per installare i driver intel o ati
pacman -S mesa

#per installare i driver nvidia
pacman -S xf86-video-nouveau

Per installare i driver proprietari, invece, vi invito a consultare la wiki relativa.

SUGGERIMENTO: Leggete la guida di arch e la sezione relativa alla vostra GPU, sempre, perchè contiene consigli utili. Ad esempio: per le Intel Graphics dal 2006 in poi è consigliato installare solo mesa, per quelle precedenti il pacchetto xf86-video-intel, anche per alcune vecchie radeon potrebbe essere necessario il pacchetto xf86-video-amdgpu. Inoltre, consiglia di abilitare i repo 32bit ed installare lib32-mesa e per le vulkan (intel gpu ivy bridges a seguire) il pacchetto vulkan-intel.

Per il touchpad installiamo il driver libinput:

pacman -S xf86-input-libinput

SUGGERIMENTO: Alcune volte può essere necessario installare i vecchi driver synaptics per il touchpad, nel caso in cui si riscontrino dei problemi con libinput: pacman -S xf86-input-synaptics

Dual boot con Windows

Se avete il dual boot con Windows è probabile ci sarà, tra un sistema e l’altro, uno scarto di tempo di due ore, questo perché Windows non usa il tempo universale ma quello locale. Se non volete, quindi, modificare il comportamento di windows (la wiki di arch spiega molto bene come fare nel caso) potete modificare invece il comportamento di Archlinux.

timedatectl set-local-rtc 1 --adjust-system-clock

NOTE:

La saggia wiki in realtà consiglia di cambiare il comportamento di windows e non di archlinux. Per farlo dovrebbe essere necessario dare questo da prompt di comandi (di Windows): Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1

Inoltre, sicuramente, si vuole essere in grado di leggere le partizioni create da windows. Allo scopo possiamo pensare di installare ntfs-3g tramite il comando seguente:

sudo pacman -S ntfs-3g

ATTENZIONE:

Il dual boot con windows è problematico se tenete attivo il fast boot. In particolare, potreste essere non più in grado di montare la sua partizione. A questo proposito sconsiglio fortemente di usare ntfs-fix per sbloccare manualmente il disco. Disattivate quindi il fast-boot se avete intenzione di leggere e scrivere sulla partizione di windows.

Aggiunta utente, creazione cartelle utente e cifratura home

È sempre bene utilizzare l'account root solo se strettamente necessario, altrimenti è meglio impostare un utente amministratore o semplice (ancora meglio).

Per aggiungere un utente amministratore basterà digitare:

useradd -m -g users -G wheel,video,audio,sys,lp,storage,scanner,games,network,disk,input -s /bin/bash <nome utente>

Per la creazione di un utente non amministratore sarà sufficiente eliminare il gruppo wheel dal comando precedente.

Impostiamo, quindi, una password per l'utente appena creato: passwd <nome utente>

ed indichiamo al programma sudo (che ci permette di effettuare operazioni in modalità amministratore) che il nostro utente fa parte del gruppo amministratore, questo tramite visudo:

#impostiamo prima un editor di testo a noi più amichevole, di default è vi
export EDITOR=<nome editor>
visudo

A questo punto esistono due modi di impostare i permessi di amministratore, ovvero: con richiesta della password (consigliato) e senza richiesta.

Nel primo caso si dovrà decommentare la riga:

wheel ALL=(ALL) ALL

Nel secondo caso, invece, basterà decommentare:

wheel ALL=(ALL) NOPASSWD: ALL

A questo punto configuriamo le cartelle utente ed installiamo pacman -S xdg-user-dirs.

Al nostro primo accesso con l'utente ricordiamoci di dare il comando xdg-user-dirs-update Se vogliamo possiamo accedere subito scrivendo su <nome utente>

NOTE:

Ricordati che puoi cambiare il nome delle cartelle di base (Immagini, Video ...etc) modificandone il corrispettivo in /home/<nome utente>/.config/user-dirs.dirs, inserendo ad uno ad uno i nomi che desideriamo sostituire.

I nomi predefiniti dovrebbero essere quelli della lingua impostata.


ATTENZIONE:

Il prossimo step è opzionale, fatto in fretta o male potrebbe farvi perdere dati, potreste dover riprendere la live per aggiustare le cose o reinstallare se non siete in grado. Quindi procedete con cautela, se lo ritenete un passo fondamentale da compiere. Inoltre vorrei portarvi a conoscenza del fatto che questo metodo renderà la vostra home incompatibile con il client dropbox se lo usate, quindi dovrete installare dropbox in una cartella diversa da quella proposta.

Potete decidere di cifrare il contenuto della vostra home, un po’ come succede nei telefoni che possiedono metodi di sblocco biometrici. Per farlo, la prima cosa è installare alcuni pacchetti:

pacman -S ecryptfs-utils keyutils rsync lsof

Quindi caricate l’apposito modulo del kernel

modprobe ecryptfs

Potrebbe essere necessario apportare una modifica al file /etc/mkinitcpio.conf e scrivere all’interno della sezione MODULES il nome del modulo per forzarne il caricamento ad ogni avvio del pc. Successivamente ricompilate il servizio di avvio scrivendo:

mkinitcpio -p linux

Usare, quindi, il tool per la migrazione della home. Si ricorda che, per avviare questa fase, è necessario che voi non abbiate alcun processo aperto con l’utente di cui cifrare la home:

ecryptfs-migrate-home -u <nome utente>

Seguire le istruzioni indicate: per completare la procedura, uscite dal vostro account root con exit ed entrate con quello dell’utente. Verificate, poi, con ls che siano state criptate tutte le cartelle ( dovrebbe apparire Access-your-data.desktop e un altro file di testo). Quindi, decriptate e ri-criptate voi stessi la home usando i due tool.

ecryptfs-mount-private #per decriptare
ecryptfs-umount-private #per criptare

Potete usare i due comandi ogni volta che volete cifrare o decifrare la cartella home manualmente. Alle volte, può accadere che la cifratura non avvenga in maniera corretta, a causa dei processi aperti su file all’interno della home, però si può quindi forzare il procedimento con questo comando:

umount.ecryptfs_private

uscite dall’account user (dopo aver smontato la cartella) e rientrate con root per maggiore comodità.

Ora è necessario (a meno che non vogliate fare l’accesso a mano ogni volta) impostare l’automounting della home già decriptata all’accesso. Facciamo un backup del file /etc/pam.d/system-auth:

cp /etc/pam.d/system-auth /etc/pam.d/system-auth.old

ed editiamo quindi il file system-auth con il nostro editor preferito:

<editor> /etc/pam.d/system-auth

Da adesso facciamo MOLTA attenzione, sbagliando qualunque cosa potremmo non essere più in grado di accedere a nessun account (dovremmo quindi aggiustare le cose in chroot dalla iso di arch).

Andiamo quindi ad aggiungere dopo la stringa che contiene auth [default=die] pam_faillock.so authfail la seguente linea:

auth required pam_ecryptfs.so unwrap

Prima della linea che contiene password required pam_unix.so aggiungiamo:

password optional pam_ecryptfs.so

E infine dopo la linea che contiene session required pam_unix.so aggiungiamo:

session required pam_ecryptfs.so unwrap

Usciamo dall’editor salvando. Per essere sicuri di aver fatto le cose a modo apriamo un altro tty ( ctrl-alt-f2 ) e facciamo l’accesso con l’utente. Se l’accesso avverrà in maniera idonea e se la cartella verrà correttamente decriptata, allora è tutto ok. Eliminate la cartella backup (ha il suffisso del vostro nome, ed un numero accanto), cercatela con ls /home/ Rimuovetela con: sudo rm -rf nomeutente.NUMERO

Altrimenti ritornate immediatamente nel primo tty ( ctrl-alt-f1 ) e correggete l’errore nel file oppure, nel caso in cui non ci riusciste, eliminate le modifiche e riprendete il file di backup:

mv -f /etc/pam.d/system-auth.old /etc/pam.d/system-auth

E ricopiate anche la cartella di backup, fornita da ecryptfs:

sudo rm /home/nomeutente
sudo mv /home/nomeutente.numero /home/nomeutente
sudo rm -rf /home/.ecryptfs

Se è andato tutto a buon fine ricordate di disconnettere l'utente con exit. Se la cartella non viene ricriptata potreste avere problemi di accesso, d’ora in poi. Se così dovesse essere entrate con un tty diverso e ricriptatela da virtual console con i comandi di umount, ripassate quindi al tty principale per continuare l’accesso.

Configurare pacman

Perché archlinux? Perchè complicarsi la vita con questa tortura che ti porta a perdere una giornata per l'installazione di un sistema operativo? Le risposte sono tante, ma la prima in assoluto è il gestore di pacchetti pacman e tutto ciò che ne deriva, compreso il famoso AUR: Arch User Repository.

Prima di tutto abbelliamo il nostro gestore! Sempre con il nostro editor preferito (a proposito, il mio è nano, vi insegnerò anche a renderlo carino) modifichiamo il file /etc/pacman.conf: andiamo a decommentare la riga con scritto Color e aggiungiamo sotto ILoveCandy. Infine, decommentiamo dove c’è scritto [multilib] e la riga di sotto se vogliamo abilitare il supporto alle librerie a 32 bit (necessario per alcuni programmi). Ogni volta che aggiungete un repository ricordate di dare per aggiornare l'elenco:

pacman -Sy

Se volessimo aggiungere un nuovo repository lo possiamo fare seguendo il template alla fine del file, anche se difficilmente ne avrete bisogno, dopo aver installato un aur-helper

Un AUR-che?

Un AUR-helper cerca per voi ed aggiorna (o segnala aggiornamenti) di pacchetti su AUR. Ne esistono diversi tipi, da quelli più semplici, che si occupano soltanto della ricerca, a quelli più complessi, che cercano, gestiscono ed aggiornano i pacchetti ed anche il sistema, al posto di pacman. Quest’ultimi sono detti anche pacman-wrapper ed usano la stessa sintassi di pacman in genere.

Supponiamo di volerne installare uno di nome <nomeaurhelper> e di cui abbiamo il link del repository (che si può facilmente trovare con una ricerca su internet). Generalmente, si installa così:

git clone https://aur.archlinux.org/<nomeaurhelper>.git
cd <nomeaurhelper>
makepkg -si

Consigli ed esempi

Attualmente, le alternative che mi sento di consigliare sono:

  • yay (scritto in go, ad oggi non più supportato);
  • paru (scritto in rust, un'evoluzione di yay);
  • pakku (scritto in nim);

Ne si può trovare una tabella descrittiva a questa pagina

Installiamone, quindi, uno: paru! Per lo step successivo è fortemente consigliato l'accesso con l'utente e non con root.

git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si

NOTE: Per installare pakku, scriverlo quindi al posto di paru.

D'ora in poi potrete sostituirlo in tutto e per tutto al package manager, l'unica differenza sta nel fatto che cerca i pacchetti anche su AUR, questo immenso repository di pacchetti offerti dalla comunità di Archlinux, su cui troverete davvero di tutto (perciò prestate comunque attenzione).

NOTE:

paru, così come la maggior parte degli AUR-helper, non va utilizzato come utente privilegiato (con sudo o l’account root per intenderci).

Tramite paru potete visualizzare la differenza tra la versione presente e quella aggiornata del software, oppure visionare e modificare il PKGBUILD (una sorta di file che contiene le istruzioni di compilazione del pacchetto, con dipendenze, siti da dove scaricare i binari ed eventualmente potete anche selezionare delle opzioni), quindi è proprio questo che lo rende uno strumento molto potente!

NOTE:

Altri AUR-helper interessanti li trovate nella guida, perciò se per un motivo o per l’altro quello segnalato in guida non dovesse funzionare, vi invito a visitarne la pagina contenente la relativa lista.

tmp file system

Nel nostro file system si trova una cartella speciale, denominata /tmp, che contiene file e cartelle che sono stati temporaneamente creati dai programmi per il loro corretto funzionamento. Questa cartella viene montata da systemd automaticamente in memoria RAM, in modo da essere svuotata ogni qual volta che il calcolatore verrà spento.

È comunque possibile, per quei pc che non hanno un gran quantitativo di memoria disponibile, montare la cartella nello spazio di archiviazione, piuttosto che nella RAM.

SUGGERIMENTO: Se installate frequentemente programmi da AUR, con un AUR-helper, è possibile che quest’ultimo, facendo tante scritture su /tmp, saturi facilmente la memoria. A questo proposito consiglio di seguire il procedimento seguente, soprattutto nel caso di pc con meno di 8GB di RAM.

Per disabilitare il montaggio automatico basta dare:

sudo systemctl mask tmp.mount

Bisogna comunque tener conto che, disabilitando questo comportamento, il contenuto della cartella dei file temporanei non verrà più cancellato allo spegnimento del dispositivo, ma andrà, invece, eliminato manualmente. Si può ritornare al comportamento di default specificando il montaggio in /etc/fstab, aggiungendo questa riga al file:

tmpfs /tmp tmpfs nodev,nosuid 0 0

Inoltre, si può specificare una size massima per evitare che la RAM venga monopolizzata dalla sola partizione di file temporanei. Ad esempio, considerando un limite di 2GB, si avrà:

tmpfs /tmp tmpfs nodev,nosuid,size=2G 0 0

Altre interessanti informazioni su tmpfs si trovano sulla guida di Arch.

Swappiness

Se avete installato un'area di swap la vostra maggior paura sarà quella che il vostro pc possa usarla senza che ce ne sia la reale necessità; non è infatti detto che il sistema operativo debba aspettare di riempire la RAM prima di usare la SWAP.

In ogni caso, questo aspetto del sistema si può benissimo controllare atraverso la swappiness, impostandola in modo permanente o temporaneo.

Per farlo in maniera definitiva possiamo modificare il file /etc/sysctl.d/99-sysctl.conf

vm.swappiness=1

Come funziona questo valore però? Perché 1 e non 0?

Il valore di swappiness va da 0 a 100 ed indica il valore della memoria RAM, in termini di percentuale, che si desidera tenere libero prima di attivare la zona di swap. Ad esempio, se, normalmente, il valore di swappiness è pari a 60, questo significa che oltre il 40% di ram occupata, la swap si attiva (non finisce tutto in swap ovviamente, ma il sistema tende ad assestarsi su quel valore di RAM libera). Nelle versioni antecedenti a linux 3.5, un valore di swappiness 0 significava “usa la swap solo in caso di stretta necessità”, oggi disattiva, invece, questa funzionalità. Si possono trovare mMaggiori informazioni sull'argomento qui e qui.

La fase iniziale di configurazione è finita, perciò, è consigliato effettuare, prima di proseguire, un riavvio del sistema.

Swap file

Potrebbe essere più comodo, in alcuni casi, avere un file di swap, anzichè la partizione, un po’ come fanno Windows e MAC OS.

In tal caso, si deve, per prima cosa, creare il file in questione:

sudo dd if=/dev/zero of=/swapfile bs=1M count=XXX status=progress

Dopo di che, al posto di XXX, bisogna inserire il quantitativo di megabyte che volete impostare. Ad esempio, per una ram di 2G potete specificare count=2000.

Rendiamola a tutti gli effetti una swap tramite il comando:

sudo mkswap /swapfile

Impostiamo i permessi giusti al file scrivendo: sudo chmod 600 /swapfile

E vediamo se va tutto bene attivandola nel modo seguente: sudo swapon /swapfile

Se avete abilitato la partizione di swap potete disattivarla così: sudo swapoff /dev/sdXY # sostituendo le coordinate

Se tutto è ok, possiamo anche pensare di abilitare il file di swap all’avvio del sistema, insieme al montaggio dei dischi. Per farlo, apriamo, con un editor di testo, il seguente file: sudo nano /etc/fstab

e scriviamo una riga di questo tipo: /swapfile swap swap defaults 0 0

Ora possiamo testare se abbiamo scritto bene il file. Prima di tutto, disattiviamo la swap con swapoff se è attiva.

Per testare se la configurazione è corretta, scolleghiamo con swapoff lo swapfile e poi digitiamo:

sudo swapon -a

Questo comando abiliterà tutte le swap presenti in /etc/fstab. Si, se vi state chiedendo perché io abbia detto “le swap”, la risposta è che potete tenere anche più file di swap o più partizioni.

Quando Tux congela: ibernazione

Innanzitutto bisogna capire cosa sia l’ibernazione, nel caso in cui, magari, molti non lo sappiano. Quando un sistema operativo entra in questo stato, lo stato della memoria, con tanto di processi attivi, viene salvato nell’area di swap ed il pc si spegne. Al riavvio, sarà come se avessimo sospeso il pc, senza, però, aver consumato batteria (potete anche staccare l’alimentatore).

I prerequisiti per un'ibernazione corretta sono, quindi, legati alla swap: dovete averla attiva e funzionante, inoltre, la parte di swap libera, deve quantomeno eguagliare la memoria RAM utilizzata, in modo da poter effettuare l'ibernare senza complicazioni. Consiglio, quindi, di utilizzare una swappiness molto bassa, così da avere la swap tendenzialmente vuota.

Avendo soddisfatto questi prerequisiti, come si fa ad ibernare su Arch? I passi da effettuare sono principalmente questi:

Segnamoci, innanzitutto, l’UUID della partizione, tramite il comando blkid. Se usiamo un file di ibernazione, segnamoci l’UUID del disco che contiene tale file, tenendoci da parte anche il suo offset sul tale disco, con il comando seguente:

sudo filefrag -v /swapfile | head -n 4

Dopo di che, andiamo a prendere il valore sotto il physical_offset, prima dei tre puntini:

Ora dobbiamo modificare il file di configurazione del grub:

sudo nano /etc/default/grub

Andiamo sulla riga GRUB_CMD_LINUX_DEFAULT="..." ed aggiungiamo, tra le virgolette, questa stringa:

resume=UUID=<mettiamo qui l’UUID segnato prima>

Se abbiamo scelto il file, si deve inserire l’UUID del disco che contiene il file di swap. Accanto aggiungiamo questa ulteriore parte:

resume_offset=<valore offset segnato prima>

Ancora, se usiamo l’ibernazione su file, potrebbe essere necessario dare lsblk e segnarsi i numero MAJ:MIN della partizione in cui si trova proprio il relativo file. Una volta fatto, date questi due comandi:

echo <MAJ>:<MIN> > /sys/power/resume
echo <valore offset> > /sys/power/resume_offset

Andiamo ora a modificare l’avvio dei moduli di sistema scrivendo:

sudo nano /etc/mkinitcpio.conf

Nella riga HOOKS=(base udev....fsck) andiamo ad aggiugere, dopo filesystems, il parametro resume (separato da spazi).

Ora aggiorniamo grub e sistemi di avvio:

sudo mkinitcpio -p linux
sudo grub-mkconfig -o /boot/grub/grub.cfg

Dopo aver riavviato il sistema, teoricamente, la configurazione dell'ibernazione è completata. Per testare questa funzionalità consiglio, una volta sistemato tutto l'ambiente, di aprire un paio di finestre a sistema appena avviato e richiedere, poi, di ibernarlo. Se il vostro DE non dispone di un'opzione per farlo potrete usare systemd da terminale.

systemctl hibernate

Se, al riavvio, si riapre tutto come avete lasciato, l'esperimento ha avuto successo. Altrimenti consultate la wiki per capire cosa potrebbe essere andato storto.

Desktop Environment, Display Manager, Network Manager e servizi systemd

Premessa, diceva il mio maestro di basso: ad ognuno la sua pistola. Su linux chiunque ha piena libertà di scegliere l’ambiente grafico (o di non sceglierlo proprio) che più gli aggrada, sia per leggerezza, per bellezza, per complessità d’uso o per la sua malleabilità. Ce n’è per tutti i gusti! La wiki, al riguardo, può essere molto più completa di qualunque cosa io possa scrivere qui sotto, però vi elencherò, comunque, i DE più conosciuti e le loro peculiarità, anche se la mia guida illustrerà solamente il processo di installazione di quello che preferisco: plasma.

Per sistemi poco prestanti consiglio XFCE, LXDE o (per chi ha la pazienza di configurarlo) I3WM, ossia tre validissime alternative che, con qualche tocco di eleganza, hanno fatto la storia delle configurazioni e dei temi più belli ed apprezzati del mondo Linux.

Per chi ha uno schermo HIDPI consiglio plasma, Cinnamon, Mate, DDE o GNOME. Andiamo con ordine:

  • Plasma è, secondo la mia opinione, l’ambiente più avanzato dal punto di vista delle animazioni, delle personalizzazioni e dei servizi automatici, inoltre, nel suo approccio minimale, occupa, in memoria, meno delle sue alternative (intorno ai 300Mb, per esperienza personale);
  • Cinnamon è un ambiente molto conosciuto dagli utenti di LinuxMint, infatti è la scelta predefinita ed è sviluppata e mantenuta dal team che sostiene la distribuzione. Lo considero l’alternativa più avanzata ma anche più tra le più pesanti, in termini di memoria;
  • Mate, invece, è una buona via di mezzo, non molto avanzato con i tempi, poichè soltanto da poco ha introdotto il supporto all’hidpi e comunque ho riscontrato qualche problema nell’utilizzarlo, ma è leggero ed è altamente modulare, infatti permette, senza alcuna difficoltà, di usare componenti di altri WM o DE;
  • Deepin Desktop Environment deriva dalla famosa deepin linux e fino a qualche anno fa è stato il mio Desktop Environment preferito in assoluto, poichè è molto elegante, dispone di effetti nella media e porta pochi problemi. Da qualche tempo, tuttavia, perde colpi, perchè hanno abbandonato lo sviluppo del wm, appoggiandosi a kwin (quello di plasma) ed in questa fase di transizione non nascondo che ci sono parecchi problemi fastidiosi;
  • Gnome è un ambiente conosciuto per la sua pesantezza, in termini sia di memoria occupata che di animazioni, poichè, anche se nella versione di Fedora Linux risulta straordinariamente leggero e funzionante, si trasforma totalmente su altre distribuzioni. In ogni caso, resta uno degli ambienti più apprezzati per via delle estensioni (che comunque lo appesantiscono) e dell' “omogeneità” dei suoi temi.

Ci sarebbe infine Enlightment, un DE con tiling manager che ho trovato difettoso in alcune applicazioni (come il noto I.M. Telegram). È comunque un'alternativa che cito poiché gestisce nativamente l’HIDPI. In ogni caso, consultate la guida ufficiale per ogni chiarimento sugli altri DE che non sono stati trattati.

NOTE:

D’ora in poi potrete operare tranquillamente con l’account root, così come con quello utente (consigliato). Quando agirete come root non sarà necessario specificare sudo all’inizio dei comandi.

Durante, però, l’esecuzione di un aur-helper ricordo che il root potrebbe dare problemi.

Plasma D.E.

In realtà, installare un DE si riduce, spesso, al tempo di digitazione di uno o due comandi, infatti, il più è quello di configurarlo a proprio piacere.

Potete installare plasma nella sua versione completa, con tanto di intero parco applicazioni kde, così:

sudo pacman -S plasma kde-applications

Quando digiterete questo comando, vi verrà chiesto di selezionare quali software del gruppo volete. Per avere tutto basta premere invio, mentre per chi conosce già i software e li riconosce dal nome basterà inserire i numeri corrispondenti, divisi da spazio, per selezionare soltanto quelli di iteresse.

Alternativamente, potete effettuare un'installazione minimale scrivendo:

sudo pacman -S plasma-desktop

Questo comando installerà solamente l’ambiente, poichè sarete voi a dover installare, uno ad uno, i software che userete (file manager, browser, pdf reader... etc). Consiglio fortemente, se avete uno smartphone Android, di installare kde-connect e di associarlo all’omonima applicazione disponibile sul Play Store:

sudo pacman -S kdeconnect

Questo fantastico software vi permetterà di controllare alcune funzioni del pc a distanza, di leggere le notifiche e la messaggistica da pc e molto altro ancora.

Consiglio anche di installare l’integrazione di plasma con i browser, perchè consente di ricevere una notifica al completamento di un download, ma anche di integrare il pannello di sistema con l’avanzamento dei download e della musica da internet, un must-have insomma!

Se come me, poi, siete amanti delle dock, potete installare e personalizzare latte-dock, appositamente sviluppata per plasma:

sudo pacman -S latte-dock

NOTE:

Su molti Desktop Environment (plasma incluso) la tastiera è impostata di default con layout USA. Non è, quindi, un problema di lingua, ma va proprio risolto dalle impostazioni della tastiera, togliendo la spunta al layout predefinito e selezionando manualmente la tastiera italiana.

Se avete problemi con plasma, ma non volete riavviare il pc, potete tentare il riavvio del D.E. e del suo W.M.

Premete, quindi, alt-f2 e digitate quanto segue:

killall plasma && kstart plasmashell && kwin_11 --replace

Infine premete quindi invio.

Display Manager

Insieme a plasma, nella sua versione completa, viene installato il suo Display Manager, o D.M., SDDM. Questo genere di software è, banalmente, quello che vi si presenta alla schermata di avvio, chiedendovi la password per farvi accedere all’ambiente desktop, avviando, per altro, il server X (o qualunque server grafico in uso). In genere, è possibile selezionare anche un utente ed un desktop diverso, nel caso in cui ne abbiate più di uno installato.

Per utilizzare un DM dovrete abilitarlo come servizio di systemd. Ad esempio, nel caso di sddm si avrà:

sudo systemctl enable sddm

Al riavvio, dunque, potrete godere della vostra interfaccia d’accesso.

Normalmente, se l’avete installato, anche xinit può avviare il vostro ambiente grafico. Questa soluzione, infatti, potrebbe accontentare quell’utenza che vuole fare del proprio portatile una vera freccia ad avviarsi. Per usufruire di xinit dobbiamo, prima di tutto, scrivere il comando di avvio del nostro DE all’interno del file ~/.xinitrc , che si trova nella home, che varierà, quindi, per ogni utente. Abbiamo dunque:

  • per kde :

    exec startplasma-x11

  • per GNOME con X Server:

    export GDK_BACKEND=x11

    exec gnome-session

  • per xfce

    exec startxfce4

  • per mate

    exec mate-session

  • per dde

    exec startdde

  • per cinnamon

    exec cinnamon-session

Per altri DE consulare le relative wiki!

NetworkManager e servizi di rete

Dietro le quinte, quando nella guida si è fatto uso di wifi-menu, il servizio che permetteva di accedere ad internet, si stava richiamando nient’altro che netctl. Se avete seguito la guida dall’inizio, sia netctl che wifi-menu continueranno a funzionare egregiamente. Tuttavia, spesso è utile avere a che fare con servizi più user-friendly, che vi notifichino, ad esempio, quando cade la connessione, che vi mostrino la potenza di segnale continuamente oppure che facilitino l’inserimento di ogni tipo di credenziali, proteggendone anche il contenuto se siete in pubblico.

Il servizio di connessione per eccellenza, sui sistemi linux, è NetworkManager.

NOTE:

Usando NetworkManager disabiliterai netctl. Tentando di usare netctl quando NM è attivo causerai errori. Utilizza systemd per gestire il passaggio da un servizio all’altro, se dovessi preferire l'uno all'altro, in base alle varie situazioni da gestire.

Quindi, per installare networkmanager:

sudo pacman -S networkmanager

Se, eventualmente, vi dovessero servire particolari tipi di connessione, come vpn o point-to-point protocol, potrebbero essere necessari dei pacchetti aggiuntivi:

sudo pacman -S networkmanager-pptp networkmanager-vpnc

Alcuni DE dispongono, nell’installazione completa, di un applet che interagisce con NetworkManager, tuttavia, se non fosse così, la wiki spiega quali pacchetti installare per connettersi comodamente con un click. Nel più comune dei casi, comunque, viene usato quello di gnome:

sudo pacman -S network-manager-applet

Per utilizzarlo, è necessario abilitare NetworkManager con systemd, altrimenti sarà necessario, ad ogni riavvio, richiamare manualmente il servizio. Quindi si dovrà digitare:

sudo systemctl enable NetworkManager

netct ed eduroam

Spesso si è demoralizzati dall’usare netctl poiché i file di configurazioni più complessi vanno scritti a mano.

Per mie esigenze personali ho dovuto cercare un modo di connettermi alla linea universitaria eduroam, perciò ho pensato di condividere la procedura che mi ha permesso di collegarmi.

Innanzitutto, tentate una connessione con wifi-menu, inserendo anche una password a caso, non importa quale. Quando vi dirà che la connessione è fallita e vi chiederà se volete comunque tenere il file di configurazione rispondete affermativamente.

Andate quindi a modificare manualmente il file generato. Si supporrà, adesso, che la scheda di rete si chiami per il sistema wlp3s0 e che il nome della linea semplicemente eduroam, come nelle specifiche internazionali. Il nome del file dovrebbe essere, quindi, <nome interfaccia>-<nome rete> e dovrebbe trovarsi nella cartella /etc/netctl/.

Si digiti il seguente comando per modificarlo:

sudo nano /etc/netctl/wlp3s0-eduroam

NOTE:

Per scoprire il nome dell’interfaccia potete usare ip link oppure ifconfig

A questo punto scrivete all’interno del file quanto segue:

Description='Automatically generated profile by wifi-menu'
Interface=wlp3s0
Connection=wireless
Security=wpa-configsection
ESSID=eduroam
IP=dhcp
WPAConfigSection=(
	'ssid="eduroam"'
	'proto=RSN'
	'key_mgmt=WPA-EAP'
	'eap=PEAP'
	'identity="SCRIVERE QUI IL PROPRIO NOME UTENTE DI EDUROAM"'
	'password="SCRIVERE QUI LA PASSWORD DEL PROPRIO EDUROAM"'
	'phase2="auth=MSCHAPV2"'
)

Eduroam ormai è una realtà abbastanza consolidata, con direttive precise, motivo per cui non dovrebbero esserci differenze tra le configurazioni scritte qui e la vostra. Tuttavia, siccome la struttura del file non è difficile da comprendere, posso anche supporre che sarete in grado di modificarla e quindi di metterci mano, laddove cambi qualcosa.

Systemd: la bestia nera

Systemd è un insieme di tools che gestiscono i servizi e l'avvio del vostro sistema su base Linux. Non entrerò nel dettaglio spiegando perché molti lo odiano, perché altri lo amano e perché altri ancora, come il sottoscritto, se ne fregano altamente, basta che funzioni.

Vi spiegherò, invece, come interfacciarvi al gestore facilmente, elencano una serie di comandi e spiegandone l’uso.

sudo? comando spiegazione
systemctl enable <servizio> abilita il servizio all’avvio, che viene quindi attivato ogni qualvolta effettuate l'accesso
systemctl start <servizio> avvia immediatamente il servizio
systemctl restart <servizio> spegne e riavvia il servizio
systemctl stop <servizio> spegne il servizio, contrario di start
systemctl disable <servizio> disabilita il servizio, contrario di enable
systemctl status <servizio> controlla lo stato del servizio, se è attivo, in errore o spento
--------------------------------------------- --------------------------------------------------------------------------------------------
systemctl poweroff spegne il sistema
systemctl reboot riavvia il sistema
systemctl hibernate iberna il sistema, da usare solo se avete attivato l’ibernazione in modo corretto
systemctl suspend sospende il sistema
systemctl suspend-then-hibernate sospende il sistema per un certo periodo di tempo e poi lo iberna
systemctl hybrid-sleep Sospende ed iberna il sistema, cosicchè, se la batteria si scarica, il pc è comunque ibernato

Ad esempio, supponiamo che vogliate usare nuovamente netctl anzichè NetworkManager, allora la procedura corretta sarebbe:

sudo systemctl stop NetworkManager
sudo systemctl start netctl
wifi-menu
sudo dhcpcd

Al contrario, invece, per abilitare nuovamente NetworkManager, si dovrà digitare:

sudo dhcpcd -x
sudo systemctl stop netctl
sudo systemctl start NetworkManager

NOTE:

Spesso NetworkManager, anche a servizio spento, prende il sopravvento, perchè il plugin resta attivo (in background, tramite il DE). In tal caso, se si vuole usare netctl, bisognerà ripetere la procedura più volte .

Post-personalizzazioni di sistema by PsykeDady

Seguiranno alcune personalizzazioni tipiche dei miei sistemi. Questo capitolo è assolutamente opzionale e non necessario al funzionamento del sistema.

I sette 'nano'

Da linea di comando, l’avrete capito, il mio editor preferito è nano. Premesso che io penso che la linea di comando serva giusto per piccole modifiche, proprio per questo motivo non uso editor che consentano, anche da terminale, di progettare, sviluppare e scrivere documenti complessi, come potrebbe essere VIM.

Detto ciò, piccole modifiche non significa che non si debba stare comodi no? Quindi vediamo come fare a rendere più piacevole l'utilizzo di nano.

Creiamo, con il nostro editor preferito, il file ~/.nanorc :

set softwrap
set autoindent
set linenumbers
	
include "/usr/share/nano/*.nanorc"

Nello specifico:

  • softwrap fa andare a capo le righe che superano la lunghezza del terminale, senza però generare un nuovo fine linea nel testo, così non vi dovrete spostare per vedere cosa contengono quelle lunghe ed infinite linee che scrivete;

  • autoindent, se programmate con nano, può essere davvero un aiuto importante. Infatti, abilitare questa opzione vi permette, una volta indentata una linea di codice, di mantenere sulle righe di sotto la stessa tabulazione precedente. Se programmate e non indentate, o siete figli di satana o vi volete davvero male o ancora siete alle prime armi (in questo caso vi perdono, ma rimediate);

  • linenumbers, è un'opzione che mostra il numero di riga, in termini di numeri cardinali, in modo da ovviare al fatto che, dopo aver abilitato softwrap, non capirete più quando inizia una riga e quando invece sta continuando quella precedente;

  • include /bla/bla/bla, che permette l’evidenziamento della sintassi dei linguaggi di programmazione supportati da nano, secondo i relativi template, che descrivono proprio come evidenziare la sintassi di un linguaggio specifico, salvati al percorso indicato; si precisa che, su sistemi diversi da arch, il path potrebbe non essere lo stesso.

Personalizzare GRUB

Il GRUB è quel componente che ci consente di avviare il nostro sistema e/o altri sistemi installati, è perfettamente “modellabile” secondo diverse necessità, consente di aumentare i tempi di selezione del sistema operativo da eseguire, di diminuirli, di aggiungere ulteriori menu e di scegliere anche dei bei temi (consiglio quello di breeze).

Il file di configurazione principale del grub si trova in /etc/default/grub. Seguiranno ora una serie di spiegazioni per le variabili che modifico più spesso:

  • GRUB_TIMEOUT ``-> in questa variabile ci andrà il tempo di selezione dell’OS di grub;
  • GRUB_THEME -> in questa variabile ci andrà il percorso del tema che vogliamo usare, bisogna indicare il percorso fino al file theme.txt;

Inoltre, possiamo aggiungere delle nuove voci al menu inserendole nel file /etc/grub.d/40_custom. Ad esempio, vediamo come aggiungere il riavvio, la chiusura ed eventualmente, se siamo su EFI, l’accesso alle impostazioni EFI:

menuentry "EFI Setup" {
	fwsetup
}

menuentry "Riavvio" {
	echo "Sistema in riavvio..."
	reboot
}
menuentry "Spegni il pc" {
	echo "spegnimento in corso…"
	halt
}

Oh zsh, mio amore ❤️

Il terminale è vita, il terminale è amore.

Spesso, per l’utilizzatore linux, il terminale è davvero tutto. Ecco perchè abbellirlo e renderlo funzionante dovrebbe essere una priorità.

Allora entrano in gioco le ‘alternative’ alla shell per eccellenza, sua maestà bash.

La proposta più popolare è sicuramente zsh. In realtà l’avete già usata e non lo sapete (?), infatti la live di archlinux ne è equipaggiata.

Quindi installiamo zsh ed anche il suo famoso gestore di plugin: oh-my-zsh. Per farlo, utilizzeremo il famoso AUR, con l’aur helper scelto, perciò non eseguite il prossimo comando da un account root.

yay -S zsh oh-my-zsh-git zsh-theme-powerlevel10k

Il terzo pacchetto è uno dei temi più famosi di zsh e la configurazione che vi propongo è proprio quella che si basa su questo pacchetto.

In realtà solo oh-my-zsh si trova su AUR, in quanto gli altri si dovrebbero trovare sui repository standard, ma paru come già detto, installerà anche i pacchetti normali (come se fosse un'estensione di pacman).

Innanzitutto, copiamoci, nella home, il file rc di oh-my-zsh:

cp /usr/share/oh-my-zsh/zshrc ~/.zshrc

Modifichiamo, quindi, il file appena creato con il nostro editor preferito, andando alla linea ZSH_THEME e scrivendo poi:

ZSH_THEME="powerlevel10k/powerlevel10k"

NOTE:

Il tema 10K porta con sè anche il tema 9k, basta indicare powerlevel10k/powerlevel9k per poterlo usare.

Comunque, per funzionare, bisogna anche copiare il tema nella cartella temi di zsh:

sudo ln -sf /usr/share/zsh-theme-powerlevel10k /usr/share/oh-my-zsh/themes/powerlevel10k

Il nostro zsh dovrebbe essere pronto, dunque possiamo testarlo digitando zsh ed eventualmente impostarlo come shell predefinita tramite chsh:

chsh -s /usr/bin/zsh

NOTE:

La powerline (ovvero la barra che utilizza il tema powerlevel) potrebbe necessitare di un font in grado di visualizzare alcuni caratteri particolari. Consiglio di installare il pacchetto font: ttf-fira-code

fstab montare la panna partizioni all'avvio

È possibile, volendo, montare altre partizioni all’avvio.

Innanzitutto, individuiamo le partizioni interessate con il comando:

sudo blkid

Ci apparirà, a questo punto, una lista di file del tipo /dev/sdXY, dove X è una lettera (che, in genere, parte da "a" ed indica il disco) ed Y è un numero (indica la partizione e parte da 1). Individuiamo (basandoci sulla Label, se ne abbiamo impostata una, oppure sul tipo di partizione) la riga corrispondente al disco che ci interessa ed annotiamoci il corrispettivo UUID.

Dopo di che creiamo la cartella in cui vogliamo trovare il nostro disco ad ogni avvio, ad esempio /media/SharingVolume, dove il nome ed il percorso possono essere di pura fantasia, ricordando che potreste avere la necessità di usare i permessi di amministratore per il comando:

sudo mkdir -p /media/Sharing Volume

Poi, assicurandoci che la partizione non sia montata (digitare sudo umount /dev/sdXY nel caso contrario) scriviamo questa riga nel nostro /etc/fstab:

UUID=<uuid annotato> /percorso/creato/prima tipo_partizione defaults 0 0

Ad esempio, supponiamo di voler montare /dev/sdc3 con UUID=123-123-123-123 sotto il nome di Sharing****Volume, considerando che è una partizione di tipo ntfs. Allora scriveremo:

UUID=123-123-123-123 /media/SharingVolume ntfs-3g defaults 0 0

Salviamo e chiudiamo il file. Poi proviamo:

sudo mount -a

Se tutto va bene, la partizione risulta montata e ciò significa che verrà montata con successo ad ogni riavvio. Altrimenti, cancellate immediatamente la riga inserita e documentatevi sulla wiki per capire cosa avete sbagliato.

ATTENZIONE:

La pena per un fstab malfatto è l’impossibilità di eseguire l'avvio del sistema, quindi assicuriamoci che sia tutto apposto prima di riavviare.

fish, un'ulteriore avanzatissima shell

Ancora più avanzata è la shell fish, che possiede, per altro, un proprio linguaggio di scripting, diverso da quello di bash.

La possiamo installare digitando:

sudo pacman -S fish

Fish è un po’ particolare da tutti i punti di vista, ad esempio il suo file rc lo trovate in ~/.config/config.fish.

Per personalizzare la shell dovrete usare fish_config, che aprirà un server web sul vostro browser, dove potrete scegliere facilmente il tema, il prompt ed altre funzionalità.

Un'altra particolare funzione di fish è il suo saluto di benvenuto, che può piacere o meno. A questo proposito, per ridefinirlo, si può procedere scrivendo nell’ rc queste righe:

function fish_greeting
	#...scrivere qui il codice o lasciare vuoto se si vuole disattivare
end

Per usarlo come shell predefinita si può digitare:

chsh -s /usr/bin/fish

neofetch

Agli utenti linux piace avere tutto sotto controllo e soprattutto piace che questo continuo monitorare sia esteticamente appagante.

Ecco perché, chi per noi, ha creato dei tool che mostrano in modo sgargiante tutte le informazioni di cui si potrebbe avere bisogno. Uno di questi è neofetch, che possiamo semplicemente installare con:

sudo pacman -S neofetch

Possiamo abilitare varie funzionalità installando i pacchetti aggiunti:

pacman -S catimg feh imagemagick jp2a libcaca nitrogen pacman-contrib w3m

Avviamolo, almeno una volta, scrivendo neofetch in modo da fargli creare i file di configurazione e poi andiamo a modificarli con:

nano ~/.config/neofetch/config.conf

Ecco la mia semplicissima configurazione della sezione info, che è quella che poi determina cosa verrà stampato sul terminale:

print_info() {
    info title
    info underline

    info "OS" distro
    info "Host" model
    info "Kernel" kernel
    info "Uptime" uptime
    info "Packages" packages
    info "Shell" shell
    info "Resolution" resolution
    info "DE" de
    info "WM" wm
    info "WM Theme" wm_theme
    info "Theme" theme
    info "Icons" icons
    info "Terminal" term
    info "Terminal Font" term_font
    info "CPU" cpu
    info "GPU" gpu
    info "Memory" memory
    info underline
    # info "GPU Driver" gpu_driver  # Linux/macOS only
    # info "CPU Usage" cpu_usage
    info "Disk" disk
    info "Battery" battery
    # info "Font" font
    info "Song" song
    # info "Local IP" local_ip
    # info "Public IP" public_ip
    # info "Users" users
    # info "Install Date" install_date
    # info "Locale" locale  # This only works on glibc systems.

    info line_break
    info cols
    info line_break
}

Se studiate bene la wiki e le documentazioni sul web potrete sfruttare al meglio il vostro neofetch.

Poniamo di voler far partire neofetch con l’apertura del terminale (altra cosa che piace molto in genere), allora potete inserire neofetch nel file rc del vostro interprete preferito ( ~/.bashrc per bash, ~/.zshrc per zsh, etc...).

Se avete installato Su VirtualBox

Se avete installato il tutto su virtual box, dopo aver installato le guest addiction (sezione Server e driver della guida) ed il pacchetto estensione sul sistema operativo ospitante, potreste volere condividere delle cartelle tra sistema host e guest.

Supponiamo che la cartella si chiami Shared (nome dato nelle impostazioni di Virtual Box) e che la si voglia montare nel percorso /media/vboxshare, allora le operazioni da eseguire saranno queste:

# creiamo la cartella in cui montare i dati condivisi
sudo mkdir -p /media/vboxshare
	
#quindi montiamola in Shared
sudo mount -t vboxsf Shared /media/vboxshare

Ricordo che, in genere, è possibile, attraverso la modifica del file /etc/fstab (vedere la sezione: fstab, montare la panna partizioni all’avvio), aggiungere un nuovo punto di montaggio, da caricare all’avvio del sistema. In particolare possiamo farlo anche con la cartella di virtual box, modificando, quindi, il file in questione con:

sudo nano /etc/fstab

Ed agigungendo una linea siffatta:

<NOME PUNTO DI MONTAGGIO> <PERCORSO PUNTO DI MONTAGGIO> vboxsf defaults 0 0

Nel caso dell’esempio di cui sopra basterà scrivere:

Shared /media/vboxshared vboxsf defaults 0 0

Infine salviamo e, assicurandoci che non sia ancora montata la cartella, diamo un sudo mount -a .

Se la cartella risulterà montata, allora possiamo stare certi che lo sarà ogni riavvio, altrimenti tentiamo di capire cosa c’è di sbagliato attraverso i messaggi di errore oppure cancelliamo la modifica.

Sotto effetto di LSD

Se avete aperto questa sezione sperando che si parli di erbe, sarete abbastanza delusi. Nonostante questo, vi assicuro che lsd è un piccolo software che merita di essere approfondito.

Grazie ad esso, quando vorrete vedere la lista dei file da terminale, saranno visualizzate anche delle icone simbolo (tipo quella della cartella, oppure la nota per i file musicali..etc).

Per installarlo basterà dare:

sudo pacman -S lsd

Potete anche decidere di sostituirlo al normale ls (solito strumento che, da terminale, fa vedere i file nella cartella) scrivendo, nel file rc della shell, questa riga:

alias "ls=lsd"

NOTE:

Anche in questo caso si potrebbe avere la necessità di un font in grado di visualizzare alcuni caratteri particolari. Consiglio sempre di installare il pacchetto font: ttf-fira-code

Il COMANDONE

Seguirà un elenco di comandi che include software o trick che normalmente applico io ad ogni installazione di archlinux. A voi il compito, se siete curiosi, di informarvi su cosa servono e perché dovreste o non dovreste installarli!

NOTE:

Verrà indicato paru come p.m. per aur, ma potete, ovviamente, usare il package manager da voi installato.

#media tool
paru -S clementine audacity vlc gimp gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-plugins-base gst-libav gvfs alsa-firmware alsa-lib alsa-oss alsa-utils pulseaudio-alsa pavucontrol 

#work tool
paru -S visual-studio-code-bin jdk8-openjdk jdk-openjdk jre-openjdk jre8-openjdk openjdk-doc openjdk-src openjdk8-doc openjdk8-src terminator octave xterm libreoffice-fresh libreoffice-fresh-it hyphen-it mythes-it hunspell-it python-pip mariadb 

#net tool
paru -S mailspring firefox firefox-i18n-it thunderbird thunderbird-i18n-it deluge google-chrome

#misc tool
paru -S ponysay lolcat redshift wine wine-mono winetricks wine_gecko playonlinux  steam steam-native-runtime ntfs-3g nitrogen xdotool rar zip unzip p7zip sane hplip cups cups-pdf bluez-cups

#altre istruzioni	
sudo pip install youtube-dl 
echo "export EDITOR=nano" >> .zshrc

Licenza per intero

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. https://fsf.org/

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

0. PREAMBLE

The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

1. APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.

A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.

A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.

The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.

The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.

A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque".

Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.

The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.

The "publisher" means any person or entity that distributes copies of the Document to the public.

A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition.

The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

2. VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and you may publicly display copies.

3. COPYING IN QUANTITY

If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

​ • A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.

​ • B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.

​ • C. State on the Title page the name of the publisher of the Modified Version, as the publisher.

​ • D. Preserve all the copyright notices of the Document.

​ • E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.

​ • F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.

​ • G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.

​ • H. Include an unaltered copy of this License.

​ • I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.

​ • J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.

​ • K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.

​ • L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.

​ • M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version.

​ • N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section.

​ • O. Preserve any Warranty Disclaimers.

If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.

You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

5. COMBINING DOCUMENTS

You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.

The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".

6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.

You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.

If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

8. TRANSLATION

Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.

If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

9. TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.

However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.

\10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See https://www.gnu.org/licenses/.

Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document.

11. RELICENSING

"Massive Multiauthor Collaboration Site" (or "MMC Site") means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A "Massive Multiauthor Collaboration" (or "MMC") contained in the site means any set of copyrightable works thus published on the MMC site.

"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.

"Incorporate" means to publish or republish a Document, in whole or in part, as part of another Document.

An MMC is "eligible for relicensing" if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.

The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

​ Copyright (C) YEAR YOUR NAME.

​ Permission is granted to copy, distribute and/or modify this document

​ under the terms of the GNU Free Documentation License, Version 1.3

​ or any later version published by the Free Software Foundation;

​ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

​ A copy of the license is included in the section entitled "GNU

​ Free Documentation License".

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with … Texts." line with this:

​ with the Invariant Sections being LIST THEIR TITLES, with the

​ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.

If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

Template e legenda

Seguono i template utilizzati per il file Markdown:

codice inline o singola linea di codice

# codice bash 
a blocchi o con sintassi da evidenziare

Nei blocchi di codice l'introduzione di un cancelletto (#) è da intendersi come un commento.

Tra parentesi angolate (<>) trovate il nome dei valori che dovreste sostituire voi (ad esempio <nomeutente> se il vostro nome è Mario, è da sostituire con Mario, eliminando le parentesi).

Tutti i comandi dati con sudo è da sottintendere che necessitino dei permessi di amministratore, perciò se li eseguite da account root si può evitare il sudo.

NOTE:

Note

ATTENZIONE:

Un avvertimento. Il tratto appena spiegato non è stato testato oppure può fallire in alcuni casi ed è quindi sconsigliato da usare se non si sa esattamente quello che si fa. L’autore declina ogni responsabilità per danni che si possano verificare sul proprio sistema o dispositivo.

SUGGERIMENTO: Un suggerimento rivolto soprattutto ai meno esperti.