diff --git a/docs/books/admin_guide/16-about-sytemd.it.md b/docs/books/admin_guide/16-about-sytemd.it.md new file mode 100644 index 0000000000..f6e2c3d6dc --- /dev/null +++ b/docs/books/admin_guide/16-about-sytemd.it.md @@ -0,0 +1,602 @@ +--- +title: Informazioni su systemd +author: tianci li +contributors: Spencer Steven +tags: + - init software + - systemd + - Upstart + - System V +--- + +# Panoramica di base + +**`systemd`**, noto anche come **daemon di sistema**, è un software di inizializzazione del sistema operativo GNU/Linux. + +Obiettivo dello sviluppo: + +- per fornire un quadro migliore di rappresentazione delle dipendenze tra i servizi +- implementare l'avvio parallelo dei servizi all'inizializzazione del sistema +- ridurre il carico di lavoro della shell e sostituire l'init in stile SysV + +**`systemd`** fornisce una serie di componenti di sistema per il sistema operativo GNU/Linux per unificare la configurazione e il comportamento dei servizi tra le varie distribuzioni GNU/Linux ed eliminare le differenze nel loro utilizzo. + +Dal 2015, la maggior parte delle distribuzioni GNU/Linux ha adottato `systemd` per sostituire i programmi di inizializzazione tradizionali come SysV. Vale la pena notare che molti dei concetti e del design di \`systemd' sono ispirati a **launchd** di Apple Mac OS. + +![init-compare](./images/16-init-compare.jpg) + +La comparsa di `systemd` ha causato un'enorme controversia nella comunità open source. + +Voci di elogio: + +- Sviluppatori e utenti hanno lodato `systemd` per aver eliminato le differenze d'uso tra GNU/Linux e per aver fornito una soluzione più stabile e veloce. + +Voci critiche: + +- `systemd` si occupa di troppi componenti del sistema operativo, violando il principio KISS (**K**eep **I**t **S**imple, **S**tupid) di UNIX. +- Dal punto di vista del codice, `systemd` è troppo complesso e ingombrante, con oltre un milione di righe di codice, riducendo così la manutenibilità e aumentando la possibilità di attacco. + +Sito ufficiale - [https://systemd.io/](https://systemd.io/)\ +Il repository GitHub - [https://github.com/systemd/systemd](https://github.com/systemd/systemd) + +## Storia dello sviluppo + +Nel 2010, due ingegneri software di Red Hat, Lennart Poettering e Kay Sievers, hanno sviluppato la prima versione di `systemd` per sostituire il tradizionale SysV. + +![Lennart Poettering](./images/16-Lennart-Poettering.jpg) + +![Kay Sievers](./images/16-Kay-Sievers.jpg) + +Nel maggio 2011, Fedora 15 è stata la prima distribuzione GNU/Linux ad abilitare `systemd` per impostazione predefinita, con la motivazione fornita all'epoca: + +> systemd fornisce capacità di parallelizzazione aggressive, utilizza l'attivazione di socket e D-Bus per l'avvio dei servizi, offre l'avvio on-demand dei demoni, tiene traccia dei processi utilizzando i cgroup di Linux, supporta lo snapshotting e il ripristino dello stato del sistema, mantiene i punti di mount e automount e implementa una potente logica di controllo dei servizi basata sulle dipendenze transazionali. Può funzionare come sostituto di sysvinit. + +Nell'ottobre 2012, Arch Linux è stato avviato con `systemd` per impostazione predefinita. + +Da ottobre 2013 a febbraio 2014, il Comitato Tecnico Debian ha discusso a lungo sulla mailing list Debian, concentrandosi su "quale init dovrebbe essere usato da Debian 8 Jessie come sistema predefinito" e alla fine ha deciso di usare `systemd`. + +Nel febbraio 2014, Ubuntu ha adottato `systemd` come init e ha abbandonato il proprio Upstart. + +Nell'agosto 2015, `systemd` ha iniziato a fornire shell di login richiamabili tramite `machinectl`. + +Nel 2016, `systemd` ha scoperto una vulnerabilità di sicurezza che consente a qualsiasi utente non privilegiato di eseguire un "denial of service attack" su `systemd`. + +Nel 2017, `systemd` ha scoperto un'altra vulnerabilità di sicurezza - **CVE-2017-9445**. Gli aggressori remoti possono attivare una vulnerabilità di overflow del buffer ed eseguire codice dannoso attraverso risposte DNS malevole. + +!!! info "Informazione" + +``` +**Buffer overflow**: È un difetto di progettazione del programma che scrive nel buffer di input di un programma fino a farlo esaurire (di solito più dati della quantità massima di dati che possono essere memorizzati nel buffer), interrompendo così il funzionamento del programma, sfruttando l'occasione dell'interruzione per ottenere il controllo del programma o addirittura del sistema. +``` + +## Progettazione dell'architettura + +In questo caso, l'autore ha scelto come esempio di `systemd` quello usato da Tizen di Samsung per illustrare la sua architettura. + +![Tizen-systemd](./images/16-tizen-systemd.png) + +!!! info "Informazione" + +``` +**Tizen** - Sistema operativo mobile basato sul kernel Linux, supportato dalla Linux Foundation, sviluppato e utilizzato principalmente da Samsung. +``` + +!!! info "Informazione" + +``` +Alcuni "target" di `systemd` non appartengono ai componenti di `systemd`, come `telephony`, `bootmode`, `dlog`, `tizen service`, ma appartengono a Tizen. +``` + +`systemd` utilizza un design modulare. In fase di compilazione esistono molte opzioni di configurazione che determinano cosa verrà costruito o meno, in modo simile alla struttura modulare del kernel Linux. Una volta compilato, `systemd` può avere fino a 69 eseguibili binari che eseguono i seguenti compiti, inclusi: + +- `systemd` viene eseguito con PID 1 e provvede all'avvio del maggior numero possibile di servizi in parallelo. Questo gestisce anche la sequenza di arresto. +- Il programma `systemctl` fornisce un'interfaccia utente per la gestione dei servizi. +- Per garantire la compatibilità, viene fornito anche il supporto per gli script SysV e LSB. +- Rispetto a SysV, la gestione dei servizi e la reportistica di `systemd` possono fornire informazioni più dettagliate. +- Montando e smontando i file system a strati, `systemd` può montare i file system a cascata in modo più sicuro. +- `systemd` fornisce la gestione della configurazione di base dei componenti, tra cui il nome dell'host, la data e l'ora, il locale, il registro e così via. +- Fornisce la gestione dei socket. +- I timer di `systemd` forniscono funzioni simili alle attività programmate di cron. +- Supporto per la creazione e la gestione dei file temporanei, compresa l'eliminazione. +- L'interfaccia D-Bus consente di eseguire script quando un dispositivo viene inserito o rimosso. In questo modo, tutti i dispositivi, collegabili o meno, possono essere considerati come dispositivi plug-and-play, semplificando notevolmente la gestione dei dispositivi. +- Lo strumento di analisi della sequenza di avvio può essere utilizzato per individuare il servizio che richiede più tempo. +- La gestione dei log e dei log di servizio. + +**`systemd` non è solo un programma di inizializzazione, ma una vasta suite di software che si occupa di molti componenti del sistema.** + +## `systemd` come PID 1 + +Il mount di `systemd` viene determinato utilizzando il contenuto del file **/etc/fstab**, includendo la partizione di swap. + +La configurazione predefinita del "target" è determinata da **/etc/systemd/system/default.target**. + +In precedenza, con l'inizializzazione di SysV, esisteva il concetto di **runlevel**. Con `systemd`, c'è anche una tabella di confronto di compatibilità come mostrato di seguito (Elenco in ordine decrescente per numero di dipendenze): + +| systemd targets | SystemV runlevel | target alias (soft link) | descrizione | +| :-------------------------------- | :--------------- | :------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| default.target | | | Questo "target" è sempre un collegamento soft a "multi-user.target" o "graphical.target". `systemd` usa sempre "default.target" per avviare il sistema. Attenzione prego! Non può essere un collegamento soft a "halt.target", "poweroff.target" o "reboot.target". | +| graphical.target | 5 | runlevel5.target | Ambiente GUI. | +| | 4 | runlevel4.target | Riservato e non utilizzato. Nel programma di inizializzazione di SysV, il runlevel4 è uguale al runlevel3. Nel programma di inizializzazione `systemd`, gli utenti possono creare e personalizzare questo "target" per avviare i servizi locali senza modificare il "multi-user.target" predefinito. | +| multi-user.target | 3 | runlevel3.target | Modalità completa multiutente da riga di comando. | +| | 2 | | In SystemV, si riferisce alla modalità multiutente a riga di comando che non include il servizio NFS. | +| rescue.target | 1 | runlevel1.target | In SystemV è chiamata **single-user mode**, una modalità che avvia i servizi minimi e non avvia altri programmi o driver aggiuntivi. Viene utilizzato principalmente per riparare il sistema operativo. È simile alla modalità di sicurezza del sistema operativo Windows. | +| emergency.target | | | Sostanzialmente equivalente a "rescue.target". | +| reboot.target | 6 | runlevel6.target | riavvio. | +| poweroff.target | 0 | runlevel0.target | Arrestare il sistema operativo e spegnerlo. | + +```bash +Shell > find / -iname runlevel?\.target -a -type l -exec ls -l {} \; +lrwxrwxrwx 1 root root 17 8月 23 03:05 /usr/lib/systemd/system/runlevel4.target -> multi-user.target +lrwxrwxrwx 1 root root 17 8月 23 03:05 /usr/lib/systemd/system/runlevel3.target -> multi-user.target +lrwxrwxrwx 1 root root 13 8月 23 03:05 /usr/lib/systemd/system/runlevel6.target -> reboot.target +lrwxrwxrwx 1 root root 13 8月 23 03:05 /usr/lib/systemd/system/runlevel1.target -> rescue.target +lrwxrwxrwx 1 root root 16 8月 23 03:05 /usr/lib/systemd/system/runlevel5.target -> graphical.target +lrwxrwxrwx 1 root root 15 8月 23 03:05 /usr/lib/systemd/system/runlevel0.target -> poweroff.target +lrwxrwxrwx 1 root root 17 8月 23 03:05 /usr/lib/systemd/system/runlevel2.target -> multi-user.target + +Shell > ls -l /etc/systemd/system/default.target +lrwxrwxrwx. 1 root root 41 12月 23 2022 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target +``` + +Ogni "target" ha un insieme di dipendenze descritte nel suo file di configurazione, che sono i servizi necessari per eseguire l'host GNU/Linux a uno specifico livello di esecuzione. Più funzioni si hanno, più dipendenze richiede il "target". Ad esempio, l'ambiente GUI richiede più servizi rispetto alla modalità a riga di comando. + +Dalla pagina man (`man 7 bootup`), possiamo consultare il diagramma di avvio di `systemd`: + +```text + local-fs-pre.target + | + v + (various mounts and (various swap (various cryptsetup + fsck services...) devices...) devices...) (various low-level (various low-level + | | | services: udevd, API VFS mounts: + v v v tmpfiles, random mqueue, configfs, + local-fs.target swap.target cryptsetup.target seed, sysctl, ...) debugfs, ...) + | | | | | + \__________________|_________________ | ___________________|____________________/ + \|/ + v + sysinit.target + | + ____________________________________/|\________________________________________ + / | | | \ + | | | | | + v v | v v + (various (various | (various rescue.service + timers...) paths...) | sockets...) | + | | | | v + v v | v rescue.target + timers.target paths.target | sockets.target + | | | | + v \_________________ | ___________________/ + \|/ + v + basic.target + | + ____________________________________/| emergency.service + / | | | + | | | v + v v v emergency.target + display- (various system (various system + manager.service services services) + | required for | + | graphical UIs) v + | | multi-user.target + | | | + \_________________ | _________________/ + \|/ + v + graphical.target +``` + +- "sysinit.target" e "basic.target" sono punti di controllo durante il processo di avvio. Sebbene uno degli obiettivi di `systemd` sia quello di avviare i servizi di sistema in parallelo, è necessario avviare i "target" di alcuni servizi e funzionalità prima di avviare altri servizi e "target" +- Una volta completate le "units" da cui dipende "sysinit.target", l'avvio passerà alla fase "sysinit.target". Queste "units" possono essere avviate in parallelo, tra cui: + - Montare il file system + - Impostare il file di swap + - Avviare udev + - Impostare il seme del generatore casuale + - Avviare i servizi di basso livello + - Impostare i servizi di crittografia +- "sysinit.target" avvierà tutti i servizi di basso livello e le "units" necessarie per le funzioni essenziali del sistema operativo, che sono necessarie prima di entrare nella fase "basic.target". +- Dopo aver completato la fase "sysinit.target", `systemd` avvia tutte le "units" necessarie per completare il "target" successivo (cioè "basic.target"). Il target offre ulteriori funzioni, tra cui: + - Impostare i percorsi delle directory per i vari file eseguibili. + - socket di comunicazione + - timers +- Infine, viene eseguita l'inizializzazione per il "target" a livello di utente ("multiuser.target" o "graphical.target"). `systemd` deve arrivare a "multi-user.target" prima di accedere a "graphical.target". + +È possibile eseguire il seguente comando per visualizzare le dipendenze necessarie per l'avvio completo: + +```bash +Shell > systemctl list-dependencies multi-user.target +multi-user.target +● ├─auditd.service +● ├─chronyd.service +● ├─crond.service +● ├─dbus.service +● ├─irqbalance.service +● ├─kdump.service +● ├─NetworkManager.service +● ├─sshd.service +● ├─sssd.service +● ├─systemd-ask-password-wall.path +● ├─systemd-logind.service +● ├─systemd-update-utmp-runlevel.service +● ├─systemd-user-sessions.service +● ├─tuned.service +● ├─basic.target +● │ ├─-.mount +● │ ├─microcode.service +● │ ├─paths.target +● │ ├─slices.target +● │ │ ├─-.slice +● │ │ └─system.slice +● │ ├─sockets.target +● │ │ ├─dbus.socket +● │ │ ├─sssd-kcm.socket +● │ │ ├─systemd-coredump.socket +● │ │ ├─systemd-initctl.socket +● │ │ ├─systemd-journald-dev-log.socket +● │ │ ├─systemd-journald.socket +● │ │ ├─systemd-udevd-control.socket +● │ │ └─systemd-udevd-kernel.socket +● │ ├─sysinit.target +● │ │ ├─dev-hugepages.mount +● │ │ ├─dev-mqueue.mount +● │ │ ├─dracut-shutdown.service +● │ │ ├─import-state.service +● │ │ ├─kmod-static-nodes.service +● │ │ ├─ldconfig.service +● │ │ ├─loadmodules.service +● │ │ ├─nis-domainname.service +● │ │ ├─proc-sys-fs-binfmt_misc.automount +● │ │ ├─selinux-autorelabel-mark.service +● │ │ ├─sys-fs-fuse-connections.mount +● │ │ ├─sys-kernel-config.mount +● │ │ ├─sys-kernel-debug.mount +● │ │ ├─systemd-ask-password-console.path +● │ │ ├─systemd-binfmt.service +● │ │ ├─systemd-firstboot.service +● │ │ ├─systemd-hwdb-update.service +● │ │ ├─systemd-journal-catalog-update.service +● │ │ ├─systemd-journal-flush.service +● │ │ ├─systemd-journald.service +● │ │ ├─systemd-machine-id-commit.service +● │ │ ├─systemd-modules-load.service +● │ │ ├─systemd-random-seed.service +● │ │ ├─systemd-sysctl.service +● │ │ ├─systemd-sysusers.service +● │ │ ├─systemd-tmpfiles-setup-dev.service +● │ │ ├─systemd-tmpfiles-setup.service +● │ │ ├─systemd-udev-trigger.service +● │ │ ├─systemd-udevd.service +● │ │ ├─systemd-update-done.service +● │ │ ├─systemd-update-utmp.service +● │ │ ├─cryptsetup.target +● │ │ ├─local-fs.target +● │ │ │ ├─-.mount +● │ │ │ ├─boot.mount +● │ │ │ ├─systemd-fsck-root.service +● │ │ │ └─systemd-remount-fs.service +● │ │ └─swap.target +● │ │ └─dev-disk-by\x2duuid-76e2324e\x2dccdc\x2d4b75\x2dbc71\x2d64cd0edb2ebc.swap +● │ └─timers.target +● │ ├─dnf-makecache.timer +● │ ├─mlocate-updatedb.timer +● │ ├─systemd-tmpfiles-clean.timer +● │ └─unbound-anchor.timer +● ├─getty.target +● │ └─getty@tty1.service +● └─remote-fs.target +``` + +Si può anche usare l'opzione `--all` per espandere tutte le "units". + +## Usare `systemd` + +### Tipi di Unit + +Il comando `systemctl` è lo strumento principale per gestire `systemd`, ed è una combinazione dei precedenti comandi `service` e `chkconfig`. + +`systemd` gestisce le cosiddette "units", che sono rappresentazioni delle risorse e dei servizi del sistema. L'elenco seguente mostra i tipi di "unit" che `systemd` può gestire: + +- **service** - Un servizio del sistema, comprese le istruzioni per l'avvio, il riavvio e l'arresto del servizio. Vedere `man 5 systemd.service`. +- **socket** - Un socket di rete associato a un servizio. Vedere `man 5 systemd.socket`. +- **device** - Un dispositivo gestito specificamente con `systemd`. Vedere `man 5 systemd.device`. +- **mount** - Un punto di montaggio gestito con `systemd`. Vedere `man 5 systemd.mount`. +- **automount** - Un punto di montaggio montato automaticamente all'avvio. Vedere `man 5 systemd.automount`. +- **swap** - Spazio di swap sul sistema. Vedere `man 5 systemd.swap`. +- **target** - Un punto di sincronizzazione per altre units. Di solito si usa per avviare i servizi abilitati all'avvio. Vedere `man 5 systemd.target`. +- **path** - Un percorso per l'attivazione basata sul percorso. Ad esempio, è possibile avviare i servizi in base allo stato di un determinato percorso, ad esempio se esista o meno. Vedere `man 5 systemd.path`. +- **timer** - Un timer per programmare l'attivazione di un'altra unit. Vedere `man 5 systemd.timer`. +- **snapshot** - Un'istantanea dello stato attuale di `systemd`. Di solito si usa per fare il rollback dopo aver apportato modifiche temporanee a `systemd`. +- **slice** - Limitazione delle risorse attraverso i nodi del gruppo di controllo Linux (cgroups). Vedere `man 5 systemd.slice`. +- **scope** - Informazioni dalle interfacce bus di `systemd`. Di solito viene utilizzato per gestire i processi di sistema esterni. Vedere `man 5 systemd.scope`. + +### "units" operative + +L'uso del comando `systemictl` è - `systemctl [OPZIONI...] COMANDO [UNIT...]`. + +Il COMANDO può essere suddiviso in: + +- Comandi della Unit +- Comandi del file della Unit +- Comandi macchina +- Comandi di lavoro +- Comandi ambiente +- Comandi del ciclo di vita del gestore +- Comandi di sistema + +È possibile utilizzare `systemctl --help` per scoprire i dettagli. + +Ecco alcuni comuni comandi operativi dimostrativi: + +```bash +# Avviare il servizio +Shell > systemctl start sshd.service + +# Arrestare il servizio +Shell > systemctl stop sshd.service + +# Ricaricare il servizio +Shell > systemctl reload sshd.service + +# Riavviare il servizio +Shell > systemctl restart sshd.service + +# Visualizzare lo stato del servizio +Shell > systemctl status sshd.service + +# Il servizio si avvia automaticamente dopo l'avvio del sistema +Shell > systemctl enable sshd.service + +# Il servizio si arresta automaticamente dopo l'avvio del sistema +Shell > systemctl disable sshd.service + +# Controllare se il servizio si avvia automaticamente dopo l'avvio +Shell > systemctl is-enabled sshd.service + +# Mascherare una unit +Shell > systemctl mask sshd.service + +# Smascherare un'unità +Shell > systemctl unmask sshd.service + +# Visualizzare il contenuto dei file della unit +Shell > systemctl cat sshd.service + +# Modificare il contenuto del file unit e salvarlo nella cartella /etc/systemd/system/ dopo la modifica +Shell > systemctl edit sshd.service + +# Visualizzare le proprietà complete della unit +Shell > systemctl show sshd.service +``` + +!!! info "Informazione" + +``` + È possibile operare su una o più unit in un'unica riga di comando per le operazioni di cui sopra. Le operazioni di cui sopra non sono limitate a ".service". +``` + +Informazioni sulle "unit": + +```bash +# Elenca tutte le unità attualmente in funzione. +Shell > systemctl +## o +Shell > systemctl list-units +## Si può anche aggiungere "--type=TYPE" per il filtraggio del tipo +Shell > systemctl --type=target + +# Elenca tutti i file delle unità. Si può anche filtrare usando "--type=TYPE". +Shell > systemctl list-unit-files +``` + +Informazioni sui "target": + +```bash +# Interrogare le informazioni correnti sul "target" ("runlevel") +Shell > systemctl get-default +multi-user.target + +# Passare a "target"("runlevel"). Per esempio, è necessario passare all'ambiente GUI +Shell > systemctl isolate graphical.target + +# Definire il "target" predefinito ("runlevel") +Shell > systemctl set-default graphical.target +``` + +### Directory importanti + +Esistono tre directory principali, disposte in ordine crescente di priorità: + +- **/usr/lib/systemd/system/** - File delle unit Systemd distribuiti con i pacchetti RPM installati. Simile alla directory /etc/init.d/ di Centos 6. +- **/run/systemd/system/** - File di unit Systemd creati in fase di esecuzione. +- **/etc/systemd/system/** - File di unit Systemd creati da `systemctl enable` e file di unit aggiunti per estendere un servizio. + +### File di configurazione di `systemd` + +`man 5 systemd-system.conf`: + +> Quando viene eseguito come istanza di sistema, systemd interpreta il file di configurazione "system.conf" e i file nelle directory "system.conf.d"; quando viene eseguito come istanza utente, interpreta il file di configurazione user.conf (o nella home directory dell'utente o, se non viene trovato, in "/etc/systemd/") e i file nelle directory "user.conf.d". Questi file di configurazione contengono alcune impostazioni che controllano le operazioni di base del gestore. + +Nel sistema operativo Rocky Linux 8.x, i file di configurazione rilevanti sono: + +- **/etc/systemd/system.conf** - Modificare il file per cambiare le impostazioni. L'eliminazione del file ripristina le impostazioni predefinite. Vedere `man 5 systemd-system.conf` +- **/etc/systemd/user.conf** - È possibile sovrascrivere le direttive di questo file creando dei file in "/etc/systemd/user.conf.d/\*.conf". Vedere `man 5 systemd-user.conf` + +### Descrizione del contenuto del file delle unit di `systemd` + +Prendiamo come esempio il file sshd.service: + +```bash +Shell > systemctl cat sshd.service +[Unit] +Description=OpenSSH server daemon +Documentation=man:sshd(8) man:sshd_config(5) +After=network.target sshd-keygen.target +Wants=sshd-keygen.target + +[Service] +Type=notify +EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config +EnvironmentFile=-/etc/sysconfig/sshd +ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY +ExecReload=/bin/kill -HUP $MAINPID +KillMode=process +Restart=on-failure +RestartSec=42s + +[Install] +WantedBy=multi-user.target +``` + +Come si vede, il contenuto del file dell'unità ha lo stesso stile del file di configurazione della scheda di rete RL 9. Utilizza ++open-bracket++ e ++close-bracket++ per includere il titolo e, sotto il titolo, le coppie chiave-valore pertinenti. + +```bash +# RL 9 +Shell > cat /etc/NetworkManager/system-connections/ens160.nmconnection +[connection] +id=ens160 +uuid=5903ac99-e03f-46a8-8806-0a7a8424497e +type=ethernet +interface-name=ens160 +timestamp=1670056998 + +[ethernet] +mac-address=00:0C:29:47:68:D0 + +[ipv4] +address1=192.168.100.4/24,192.168.100.1 +dns=8.8.8.8;114.114.114.114; +method=manual + +[ipv6] +addr-gen-mode=default +method=disabled + +[proxy] +``` + +Di solito esistono tre intitolazioni per le unit di tipo ".service": + +- **Unit** +- **Service** +- **Install** + +1. Intitolazione della unit + + Sono utilizzabili le seguenti coppie chiave-valore: + + - `Description=OpenSSH server daemon`. La stringa viene utilizzata per descrivere la "unit". + - `Documentation=man:sshd(8) man:sshd_config(5)`. Un elenco separato da spazi di URI che fanno riferimento alla documentazione di questa "unit" o della sua configurazione. Sono accettati solo URI del tipo "http://", "https://", "file:", "info:", "man:". + - `After=network.target sshd-keygen.target`. Definisce la relazione della sequenza di avvio con altre "unit". In questo esempio, "network.target" e "sshd-keygen.target" si avviano per primi e "sshd.service" per ultimo. + - `Before=`. Definisce la relazione della sequenza di avvio con le altre "unit". + - `Requires=`. Configura le dipendenze da altre "unit" I valori possono essere più unit separate da spazi. Se la '"unit" corrente è attivata, si attiveranno anche i valori qui elencati. Se almeno uno dei valori elencati di "unit" non si attiva correttamente, `systemd` non avvia la "unit" corrente. + - `Wants=sshd-keygen.target`. Simile alla chiave `Requires`. La differenza consiste nel fatto che se la unit dipendente non si avvia, ciò non influisce sul normale funzionamento della "unit" corrente. + - `BindsTo=`. Simile alla chiave `Requires`. La differenza è data dal fatto che se una qualsiasi "unit" dipendente non si avvia, l'unità corrente viene arrestata in aggiunta alla "unit" che arresta la dipendenza. + - `PartOf=`. Simile alla chiave `Requires`. La differenza consiste nel fatto che se una qualsiasi "unit" dipendente non si avvia, oltre all'arresto e al riavvio delle unit dipendenti, viene arrestata e riavviata anche la "unit" corrente. + - `Conflicts=`. Il suo valore è un elenco di "unit" separate da spazi. Se la "unit" elencata dal valore è in funzione, la "unit" corrente non può essere eseguita. + - `OnFailure=`. Quando la "unit" corrente viene interrotta, la "unit" o le "unit" (separate da spazi) presenti nel valore si attivano. + + Per ulteriori informazioni, vedere `man 5 systemd.unit`. + +2. Intitolazione del Servizio + + Sono utilizzabili le seguenti coppie chiave-valore: + + - `Type=notify`. Configurare il tipo di unit ".service", che può essere uno dei seguenti: + - `simple` - Il servizio si avvia come processo principale. Questa è l'impostazione predefinita. + - `forking` - Il servizio richiama processi biforcati e viene eseguito come parte del daemon principale. + - `exec` - Simile a `semplice`. Il gestore del servizio avvierà questa unit subito dopo aver eseguito il binario del servizio principale. Le altre unit successive devono rimanere bloccate fino a questo punto prima di poter proseguire l'avvio. + - `oneshot` - Simile a `simple`, ma il processo deve uscire prima che `systemd` avvii i servizi di follow-up. + - `dbus` - Simile a `simple`, tranne per il fatto che il daemon acquisisce il nome del bus D-Bus. + - `notify` - Simile a `simple`, tranne per il fatto che il daemon invia un messaggio di notifica usando `sd_notify` o una chiamata equivalente dopo l'avvio. + - `idle` - Simile a `simple`, tranne per il fatto che l'esecuzione del servizio viene ritardata fino a quando tutti i lavori attivi non vengono distribuiti. + - `RemainAfterExit=`. Se il servizio corrente deve essere considerato attivo quando tutti i processi del servizio terminano. L'impostazione predefinita è no. + - `GuessMainPID=`. Il valore è di tipo booleano ed è predefinito a yes. In assenza di una posizione definita per il processo principale del servizio, `systemd` deve indovinare il PID del processo principale (che potrebbe non essere corretto). Se si imposta `Type=forking` e non si imposta `PIDFile`, questa coppia di valori chiave diventerà effettiva. Altrimenti, verrà ignorata la coppia chiave-valore. + - `PIDFile=`. Specificare il percorso del file (percorso assoluto) del PID del servizio. Per i servizi `Type=forking`, si raccomanda di usare questa coppia chiave-valore. `systemd` legge il PID del processo principale del daemon dopo l'avvio del servizio. + - `BusName=`. Un nome del bus D-Bus per raggiungere questo servizio. Questa opzione è obbligatoria per i servizi dove viene utilizzato `Type=dbus`. + - `ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY`. I comandi e gli argomenti eseguiti all'avvio del servizio. + - `ExecStartPre=`. Altri comandi che vengono eseguiti prima dei comandi in `ExecStart`. + - `ExecStartPost=`. Gli altri comandi che verranno eseguiti dopo i comandi in `ExecStart`. + - `ExecReload=/bin/kill -HUP $MAINPID`. I comandi e gli argomenti vengono eseguiti quando il servizio viene ricaricato. + - `ExecStop=`. I comandi e gli argomenti che verranno eseguiti all'arresto del servizio. + - `ExecStopPost=`. Comandi aggiuntivi da eseguire dopo l'arresto del servizio. + - `RestartSec=42s`. Il tempo in secondi di sospensione prima di riavviare un servizio. + - `TimeoutStartSec=`. Il tempo in secondi di attesa per l'avvio del servizio. + - `TimeoutStopSec=`. Il tempo in secondi di attesa per l'arresto del servizio. + - `TimeoutSec=`. Un'abbreviazione per configurare contemporaneamente `TimeoutStartSec` e `TimeoutStopSec`. + - `RuntimeMaxSec=`. Tempo massimo in secondi per l'esecuzione del servizio. Passando \`infinity' (il valore predefinito) non si configura alcun limite di tempo di esecuzione. + - `Restart=on-failure`. Configura se riavviare il servizio quando il processo del servizio esce, viene terminato o raggiunge un timeout: + - `no` - Il servizio non verrà riavviato. Questa è l'impostazione predefinita. + - `on-success` - Si riavvia solo quando il processo di servizio esce in modo pulito (codice di uscita 0). + - `on-failure` - Si riavvia solo quando il processo di servizio non esce in modo pulito (codice di uscita non-zero). + - `on-abnormal` - Si riavvia se il processo termina con un segnale o quando si verifica un timeout. + - `on-abort` - Si riavvia se il processo esce a causa di un segnale imprevisto non specificato come condizione di uscita pulita. + - `on-watchdog` - Se impostato su `on-watchdog`, il servizio si riavvia solo se il timeout del watchdog scade. + - `always` - Si riavvia sempre. + + Le condizioni di uscita e l'effetto delle impostazioni di `Restart=` su di esse: + + ![effect](./images/16-effect.png) + + - `KillMode=process`. Specifica il modo in cui i processi di questa unit devono essere arrestati. Il suo valore può essere uno dei seguenti: + - `control-group` - Valore predefinito. Se impostato su `control-group`, tutti i processi rimanenti nel gruppo di controllo di questa unit vengono arrestati all'arresto della stessa. + - `process` - Viene arrestato solo il processo principale. + - `mixed` - Il segnale SIGTERM viene inviato al processo principale, mentre il successivo segnale SIGKILL viene inviato a tutti i processi rimanenti del gruppo di controllo della unit. + - `none` - Non arresta alcun processo. + - `PrivateTmp=`. Utilizzare o meno una directory tmp privata. In base a determinate condizioni di sicurezza, si consiglia di impostare il valore su yes. + - `ProtectHome=`. Proteggere o meno la home directory. Il suo valore può essere uno dei seguenti: + - `yes` - Le tre directory (/root/, /home/, /run/user/) non sono visibili alla unit. + - `no` - Le tre directory sono visibili alla unit. + - `read-only` - Le tre directory sono di sola lettura per la unit. + - `tmpfs` - Il file system temporaneo verrà montato in modalità di sola lettura su queste tre directory. + - `ProtectSystem=`. La directory utilizzata per proteggere il sistema dalla modifica da parte del servizio. Il valore può essere: + - `yes` - Indica che il processo chiamato dalla unit sarà montato in sola lettura sulle directory /usr/ e /boot/. + - `no` - Valore predefinito + - `full` - Indica che le directory /usr/, /boot/, /etc/ sono montate in sola lettura. + - `strict` - Tutti i file system sono montati in sola lettura (escluse le directory dei file system virtuali come /dev/, /proc/ e /sys/). + - `EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config`. Legge le variabili d'ambiente da un file di testo. "-" significa che se il file non esiste, non verrà letto e non verranno registrati errori o avvisi. + + Per ulteriori informazioni, vedere `man 5 systemd.service`. + +3. Intitolazione Install + + - `Alias=`. Un elenco di nomi aggiuntivi separati da spazi. Attenzione prego! Il nome aggiuntivo deve avere lo stesso tipo (suffisso) della unit corrente. + + - `RequiredBy=` o `WantedBy=multi-user.target`. Definisce la unit dell'operazione corrente come dipendenza della unit nel valore. Una volta completata la definizione, i file pertinenti si trovano nella directory /etc/systemd/systemd/. Per esempio: + + ```bash + Shell > systemctl is-enabled chronyd.service + enabled + + Shell > systemctl cat chronyd.service + ... + [Install] + WantedBy=multi-user.target + + Shell > ls -l /etc/systemd/system/multi-user.target.wants/ + total 0 + lrwxrwxrwx. 1 root root 38 Sep 25 14:03 auditd.service -> /usr/lib/systemd/system/auditd.service + lrwxrwxrwx. 1 root root 39 Sep 25 14:03 chronyd.service -> /usr/lib/systemd/system/chronyd.service ←← + lrwxrwxrwx. 1 root root 37 Sep 25 14:03 crond.service -> /usr/lib/systemd/system/crond.service + lrwxrwxrwx. 1 root root 42 Sep 25 14:03 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service + lrwxrwxrwx. 1 root root 37 Sep 25 14:03 kdump.service -> /usr/lib/systemd/system/kdump.service + lrwxrwxrwx. 1 root root 46 Sep 25 14:03 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service + lrwxrwxrwx. 1 root root 40 Sep 25 14:03 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target + lrwxrwxrwx. 1 root root 36 Sep 25 14:03 sshd.service -> /usr/lib/systemd/system/sshd.service + lrwxrwxrwx. 1 root root 36 Sep 25 14:03 sssd.service -> /usr/lib/systemd/system/sssd.service + lrwxrwxrwx. 1 root root 37 Sep 25 14:03 tuned.service -> /usr/lib/systemd/system/tuned.service + ``` + + - `Also=`. Altre unit da installare o disinstallare durante l'installazione o la disinstallazione di questa unit. + + Oltre alle pagine di manuale sopra menzionate, è possibile digitare `man 5 systemd.exec` o `man 5 systemd.kill` per accedere ad altre informazioni. + +## Comando relativo ad altri componenti + +- `timedatactl` - Interroga o modifica le impostazioni di data e ora del sistema. +- `hostnamectl` - Interroga o modifica l'hostname del sistema. +- `localectl` - Interroga o modifica le impostazioni del locale e della tastiera del sistema. +- `systemd-analyze` - Profilo `systemd`, mostra le dipendenze delle unit, controlla i file delle unit. +- `journalctl` - Visualizza i registri di sistema o di servizio. Il comando \`journalctl' è così importante che in seguito verrà dedicata una sezione separata che ne spiegherà l'uso e i comportamenti da tenere. +- `loginctl` - Gestione delle sessioni degli utenti che effettuano il login. diff --git a/docs/books/index.pt-BR.md b/docs/books/index.pt-BR.md new file mode 100644 index 0000000000..95d5e065fd --- /dev/null +++ b/docs/books/index.pt-BR.md @@ -0,0 +1,65 @@ +--- +title: Books Início +author: Steven Spencer +contributors: '@fromoz, Ganna Zhyrnova' +--- + +# Livros de Instrução do Rocky Linux + +Você chegou até a sessão **Livros** da documentação. Aqui é o local onde são mantidas as informações detalhadas da documentação. Esses documentos são divididos em seções ou **_"capítulos"_** para facilitar o progresso de compreensão no ritmo do leitor. Esses documentos foram criados por pessoas como você, com paixão por certo assuntos. + +Você gostaria de contribuir escrevendo informações adicionais nessa seção? Fantástico! Basta participar das conversas no [Canal de Necessidades da Documentação](https://chat.rockylinux.org/rocky-linux/channels/documentation) e nós iremos te ajudar. + +## Baixar para leitura sem rede + +Our books can be downloaded in PDF format for offline reading. + +### Administrador Guide + +* [Inglês](https://rocky-linux.github.io/documentation/RockyLinuxAdminGuide.pdf) +* [Italiano](https://rocky-linux.github.io/documentation/RockyLinuxAdminGuide.it.pdf) +* [Ucraniano](https://rocky-linux.github.io/documentation/RockyLinuxAdminGuide.uk.pdf) + +### Aprender 'Ansible' com Rocky Linux + +* [Inglês](https://rocky-linux.github.io/documentation/LearningAnsibleWithRocky.pdf) +* [Espanhol](https://rocky-linux.github.io/documentation/LearningAnsibleWithRocky.es.pdf) +* [Italiano](https://rocky-linux.github.io/documentation/LearningAnsibleWithRocky.it.pdf) + +### Aprender 'bash' com Rocky Linux + +* [Inglês](https://rocky-linux.github.io/documentation/LearningBashWithRocky.pdf) +* [Italiano](https://rocky-linux.github.io/documentation/LearningBashWithRocky.it.pdf) + +### DISA Stig + +* [Inglês](https://rocky-linux.github.io/documentation/Disa_stig_rocky_linux.pdf) +* [Italiano](https://rocky-linux.github.io/documentation/Disa_stig_rocky_linux.it.pdf) +* [Ucraniano](https://rocky-linux.github.io/documentation/Disa_stig_rocky_linux.uk.pdf) + +### LXD Servidor + +* [Inglês](https://rocky-linux.github.io/documentation/lxd_server_rocky_linux.pdf) +* [Italiano](https://rocky-linux.github.io/documentation/lxd_server_rocky_linux.it.pdf) +* [Ucraniano](https://rocky-linux.github.io/documentation/lxd_server_rocky_linux.uk.pdf) + +### NvChad + +* [Inglês](https://rocky-linux.github.io/documentation/NvChad.pdf) +* [Italiano](https://rocky-linux.github.io/documentation/NvChad.it.pdf) +* [Ucraniano](https://rocky-linux.github.io/documentation/NvChad.uk.pdf) + +### Rocky Linux Middleware Guide + +* [Inglês](https://rocky-linux.github.io/documentation/RockyLinuxMiddlewaresGuide.pdf) +* [Italiano](https://rocky-linux.github.io/documentation/RockyLinuxMiddlewaresGuide.it.pdf) + +### Tutorial 'RSync' + +* [Inglês](https://rocky-linux.github.io/documentation/learning_rsync_rocky_linux.pdf) +* [Italiano](https://rocky-linux.github.io/documentation/learning_rsync_rocky_linux.it.pdf) +* [Ucraniano](https://rocky-linux.github.io/documentation/learning_rsync_rocky_linux.uk.pdf) + +### The Three Swordsmen + +* [Inglês](https://rocky-linux.github.io/documentation/Sed_Awk_Grep_TheTreeSwordsmen.pdf) diff --git a/docs/books/lxd_server/01-install.uk.md b/docs/books/lxd_server/01-install.uk.md index 4da9a975ce..9e5ecdc2ab 100644 --- a/docs/books/lxd_server/01-install.uk.md +++ b/docs/books/lxd_server/01-install.uk.md @@ -100,7 +100,7 @@ root hard nofile 1048576 * hard memlock unlimited ``` -Збережіть зміни та вийдіть. (++shift+colon+"w"+"q"+"exclam++ для *vi*) +Збережіть зміни та вийдіть (++shift+двокрапка+"w"+"q"+exclam++ для *vi*). ### Модифікація sysctl.conf за допомогою 90-lxd.override.conf diff --git a/docs/books/nvchad/install_nvchad.uk.md b/docs/books/nvchad/install_nvchad.uk.md index b9dea17516..48f3759980 100644 --- a/docs/books/nvchad/install_nvchad.uk.md +++ b/docs/books/nvchad/install_nvchad.uk.md @@ -15,7 +15,7 @@ tags: Як зазначено на сайті NvChad, вам потрібно переконатися, що система відповідає таким вимогам: -* [Neovim 0.9.5](https://github.com/neovim/neovim/releases/tag/v0.9.5). +* [Neovim 0.10.0](https://github.com/neovim/neovim/releases/tag/v0.10.0). * [Шрифт Nerd](https://www.nerdfonts.com/) Установіть його в емуляторі терміналу. * Переконайтеся, що шрифт, який ви налаштували, не закінчується на **Mono** * **Приклад:** шрифт Iosevka Nerd, а не ~~Шрифт Iosevka Nerd Mono~~ diff --git a/docs/books/nvchad/plugins/index.it.md b/docs/books/nvchad/plugins/index.it.md index d61656b7d0..8113288b5f 100644 --- a/docs/books/nvchad/plugins/index.it.md +++ b/docs/books/nvchad/plugins/index.it.md @@ -11,30 +11,72 @@ tags: # Panoramica -!!! danger "Istruzioni errate" +## :material-message-outline: Introduzione - Con il rilascio della versione 2.5, le istruzioni contenute in questa pagina non sono più corrette; se ne sconsiglia l'uso per le nuove installazioni. Per maggiori informazioni si veda [la pagina principale della guida](../index.md). +La configurazione personalizzata creata dagli sviluppatori di NvChad permette di avere un ambiente integrato con molte delle caratteristiche di un IDE grafico. Queste caratteristiche vengono integrate nella configurazione di Neovim per mezzo di plugin. Quelli selezionati per NvChad dagli sviluppatori hanno la funzione di impostare l'editor per l'uso generale. -## Introduzione +Tuttavia, l'ecosistema di plugin per Neovim è molto più ampio e, grazie al loro utilizzo, consente di estendere l'editor per concentrarsi sulle proprie esigenze. -La configurazione personalizzata creata dagli sviluppatori di NvChad permette di avere un ambiente integrato con molte delle caratteristiche di un IDE grafico. Queste caratteristiche sono integrate nella configurazione di Neovim per mezzo di plugin. Quelli selezionati per NvChad dagli sviluppatori hanno la funzione di impostare l'editor per l'uso generale. +Lo scenario affrontato in questa sezione è la creazione di documentazione per Rocky Linux, quindi verranno illustrati i plugin per la scrittura di codice Markdown, la gestione dei repository Git e altri compiti legati allo scopo. -Tuttavia, l'ecosistema di plugin per Neovim è molto più ampio e, attraverso il loro utilizzo, consente di estendere l'editor per concentrarsi sulle proprie esigenze. +### :material-arrow-bottom-right-bold-outline: Requisiti -Lo scenario affrontato in questa sezione è la creazione di documentazione per Rocky Linux, quindi verranno spiegati i plugin per la scrittura di codice Markdown, la gestione dei repository Git e altri compiti legati allo scopo. - -## Requisiti - -- NvChad sia stato installato correttamente sul sistema con il*"template chadrc*" +- NvChad correttamente installato nel sistema - Familiarità con la riga di comando - Una connessione internet attiva -## Suggerimenti generali sui plugin +### :material-comment-processing-outline: Suggerimenti generali sui plugin + +La configurazione di NvChad prevede l'inserimento dei plugin utente dalla cartella `lua/plugins`. Al suo interno si trova inizialmente il file **init.lua** con l'installazione del plugin *conform.nvim* e alcuni esempi per la personalizzazione delle funzionalità del sistema. +Anche se è possibile inserire i propri plugin nel file, è consigliabile utilizzare file separati per le configurazioni degli utenti. In questo modo, si può usare il file iniziale per qualsiasi sovrascrittura dei plugin di base, mentre si possono organizzare i plugin in file indipendenti, secondo le proprie preferenze. + +### :material-location-enter: Inserimento dei plugin + +La configurazione interroga la cartella `plugins` e vengono caricati tutti i file *.lua* in essa contenuti. Questo permette di unire più file di configurazione quando vengono caricati dall'editor. +Per essere inseriti correttamente, i file aggiuntivi devono avere le configurazioni dei plugin racchiuse all'interno di ==tabelle lua==: + +```lua title="lua table example" +return { + { -- lua table + -- your plugin here + }, -- end lua table +} +``` + +È presente anche una cartella `configs` in cui è possibile inserire impostazioni particolarmente lunghe di alcuni plugin o parti modificabili dall'utente, come nel caso di *conform.nvim*. -Se hai scelto durante l'installazione di NvChad di installare anche il [template chadrc](../template_chadrc.md) avrai nella tua configurazione una cartellarong x-id="1">~/. onfig/nvim/lua/custom/ folder. Tutte le modifiche ai plugin devono essere apportate nel file **/custom/plugins.lua** in quella cartella. Nel caso in cui il plugin necessiti di configurazioni aggiuntive, queste sono collocate nella cartella **/custom/configs**. +Passando ad un esempio pratico, supponiamo di voler includere nelle funzionalità dell'editor il plugin [karb94/neoscroll.nvim](https://github.com/karb94/neoscroll.nvim), che permette di migliorare lo scorrimento all'interno di file molto lunghi. +Per la sua creazione possiamo scegliere di creare un file `plugins/editor.lua` in cui inserire tutti i plugin relativi all'uso dell'editor o un file `plugins/neoscroll.lua` e tenere separati tutti i plugin aggiuntivi. -Neovim, su cui si basa la configurazione di NvChad, non integra un meccanismo di aggiornamento automatico della configurazione con l'editor in esecuzione. Questo implica che ogni volta che il file dei plugin viene modificato, è necessario chiudere `nvim` e poi riaprirlo per ottenere la piena funzionalità del plugin. +In questo esempio, seguiremo la prima opzione, quindi creeremo un file nella cartella `plugins`: -L'installazione del plugin può essere eseguita immediatamente dopo che è stato posizionato nel file dal `lazy.nvim` il plugin manager tiene traccia delle modifiche in **plugins.lua** e quindi consente la sua installazione "live". +```bash +touch ~/.config/nvim/lua/plugins/editor.lua +``` + +Seguendo le informazioni della pagina del progetto, inseriamo il seguente blocco di codice: + +```lua title="editor.lua" +return { +{ + "karb94/neoscroll.nvim", + keys = { "", "" }, + opts = { mappings = { + "", + "", + } }, +}, +} +``` + +Una volta salvato, verrà riconosciuto dalla configurazione di NvChad, che si occuperà del suo inserimento utilizzando le funzionalità offerte dal gestore *lazy.nvim*. + +Neovim, su cui si basa la configurazione di NvChad, non integra un meccanismo di aggiornamento automatico della configurazione con l'editor in esecuzione. Questo comporta che ogni volta che il file del plugin viene modificato, è necessario chiudere `nvim` e poi riaprirlo per ottenere la piena funzionalità del plugin. ![plugins.lua](./images/plugins_lua.png) + +## Conclusioni e considerazioni finali + +Esiste un ampio ecosistema di plugin per Neovim che possono essere integrati in NvChad. Per le ricerche si può utilizzare il supporto del sito [Dotfyle](https://dotfyle.com/) che fornisce informazioni su plugin e configurazioni per Neovim o di [Neovimcraft](https://neovimcraft.com/), che si concentra invece solo sui plugin disponibili. Entrambi forniscono ottime informazioni generali sui plugin e link ai rispettivi progetti su GitHub. + +L'introduzione della nuova funzione di ricerca dei plugin, presente dalla versione 2.5, consente di organizzare i plugin degli utenti in modo molto efficiente e altamente configurabile. In una configurazione complessa, consente ai plugin che richiedono configurazioni speciali (codice lua o autocmd) di essere gestiti separatamente, semplificando notevolmente la loro gestione. diff --git a/docs/books/nvchad/plugins/projectmgr.it.md b/docs/books/nvchad/plugins/projectmgr.it.md index ab2979d728..47d62c7d86 100644 --- a/docs/books/nvchad/plugins/projectmgr.it.md +++ b/docs/books/nvchad/plugins/projectmgr.it.md @@ -13,10 +13,6 @@ tags: ## Introduzione -!!! danger "Istruzioni errate" - - Con il rilascio della versione 2.5, le istruzioni contenute in questa pagina non sono più corrette; se ne sconsiglia l'uso per le nuove installazioni. Per maggiori informazioni si veda [la pagina principale della guida](../index.md). - Una delle caratteristiche che un IDE deve sicuramente avere è la capacità di gestire i vari progetti su cui lavora uno sviluppatore o un editore. La possibilità di selezionare il progetto su cui lavorare una volta aperto NvChad, senza dover digitare comandi nella *statusline* per raggiungere l'obiettivo. Ciò consente di risparmiare tempo e di semplificare la gestione nel caso di un numero elevato di progetti. L'uso di [charludo/projectmgr.nvim](https://github.com/charludo/projectmgr.nvim) integrerà questa funzionalità. Il plugin offre un'eccellente integrazione con `Telescope` e alcune interessanti funzionalità aggiuntive, come la possibilità di sincronizzare un repository *git* all'apertura del *progetto*. @@ -25,7 +21,7 @@ Il plugin tiene anche traccia dello stato dell'editor alla sua chiusura, consent ### Installazione del plugin -Per installare il plugin è necessario modificare il file **custom/plugins.lua** aggiungendo il seguente blocco di codice: +Per installare il plugin è necessario modificare il file **plugins/init.lua** aggiungendo il seguente blocco di codice: ```lua { @@ -145,15 +141,11 @@ Per verificare se i file aperti non corrispondono a quelli aggiornati dal reposi ### Mappatura -Per velocizzare l'apertura dei progetti, è possibile creare una scorciatoia da tastiera per inserire la mappatura in **/custom/mapping.lua**. Un esempio potrebbe essere: +Per velocizzare l'apertura dei progetti, è possibile creare una scorciatoia da tastiera da inserire nella mappatura in **mapping.lua**. Un esempio potrebbe essere: ```lua -- Projects -M.projects = { - n = { - ["fp"] = { " ProjectMgr", "Open Projects" }, - }, -} +map("n", "fp", " ProjectMgr", { desc = "Open Projects" }) ``` Con l'editor in stato **NORMALE** è possibile aprire il project manager con la combinazione ++space++ + ++"f"++ seguita da ++"p"++. diff --git a/docs/books/nvchad/vale_nvchad.it.md b/docs/books/nvchad/vale_nvchad.it.md index a84436b788..c75c377952 100644 --- a/docs/books/nvchad/vale_nvchad.it.md +++ b/docs/books/nvchad/vale_nvchad.it.md @@ -9,13 +9,9 @@ tags: # `vale` in NvChad (Neovim) -!!! danger "Istruzioni errate" - - Con il rilascio della versione 2.5, le istruzioni contenute in questa pagina non sono più corrette; se ne sconsiglia l'uso per le nuove installazioni. Per maggiori informazioni si veda [la pagina principale della guida](../index.md). - ## :material-message-outline: Introduzione -`vale.sh` è uno dei principali progetti open source per scrittori tecnici che vogliono migliorare la propria scrittura e la coerenza dello stile. Può essere utilizzato con numerosi editor su quasi tutte le principali piattaforme OS (Linux, MacOS, Windows). Per saperne di più sul progetto, visitate il [sito web vale.sh](https://vale.sh/). Questa guida vi condurrà nell'aggiunta di `vale` a NvChad. Poiché è incluso nei pacchetti Mason usati per l'installazione, il processo non è troppo difficile, anche se comporta alcune piccole modifiche e configurazioni per far funzionare le cose. Per essere chiari, NvChad è in realtà il gestore della configurazione dell'editor Neovim, quindi da questo momento in poi il riferimento sarà `nvim`. +`vale.sh` è uno dei principali progetti open source per scrittori tecnici che vogliono migliorare la propria scrittura e la coerenza dello stile. Può essere utilizzato con numerosi editor su quasi tutte le principali piattaforme OS (Linux, macOS, Windows). Per saperne di più sul progetto, visitate il [sito web vale.sh](https://vale.sh/). Questa guida vi condurrà nell'aggiunta di `vale` a NvChad. Poiché è incluso nei pacchetti Mason usati per l'installazione, il processo non è troppo difficile, anche se comporta alcune piccole modifiche e configurazioni per far funzionare le cose. Per essere chiari, NvChad è in realtà il gestore della configurazione dell'editor Neovim, quindi da questo momento in poi il riferimento sarà `nvim`. ## :material-arrow-bottom-right-bold-outline: Prerequisiti @@ -27,7 +23,7 @@ tags: Il plugin [nvim-lint](https://github.com/mfussenegger/nvim-lint) fornisce il supporto per l'inserimento dei ==linters== nell'editor, fornendo la correzione del codice o del contenuto sia per la parte sintattica che per quella semantica. -Per installare il plugin, è necessario modificare il file `custom/plugins.lua` aggiungendo il seguente blocco di codice: +Per installare il plugin, è necessario modificare il file `lua/plugins/init.lua` aggiungendo il seguente blocco di codice: ```lua title="plugins.lua" { @@ -39,7 +35,7 @@ Per installare il plugin, è necessario modificare il file `custom/plugins.lua` }, ``` -Il plugin ha un file di configurazione da collocare nella cartella `custom/configs`. Al suo interno troviamo una tabella ==linters_by_ft== dove è possibile inserire i *linters* per i linguaggi utilizzati per lo sviluppo. +Il plugin ha un file di configurazione che deve essere posizionato nella cartella `lua/configs`. Al suo interno troviamo una tabella ==linters_by_ft== dove è possibile inserire i *linters* per i linguaggi utilizzati per lo sviluppo. ```lua title="lint.lua" require("lint").linters_by_ft = { @@ -129,7 +125,7 @@ Copiare il file `.vale.ini` e la cartella `styles` nella radice della cartella h ### :material-file-edit-outline: Modifiche al file `lint.lua` -È necessario un ultimo passo. È necessario modificare il file `lint.lua` che si trova in `~/.config/nvim/lua/custom/configs/` e aggiungere il linter `vale`. +È necessario un ultimo passo. È necessario modificare il file `lint.lua` che si trova in `~/.config/nvim/lua/configs/` e aggiungere il linter `vale`. Utilizzando l'esempio mostrato sopra per aggiungere *vale* al linter disponibile per i file markdown, sarà necessario aggiungere il nuovo linter alla stringa già presente: diff --git a/docs/books/nvchad/vale_nvchad.uk.md b/docs/books/nvchad/vale_nvchad.uk.md index 31f207cc25..b6b73182f4 100644 --- a/docs/books/nvchad/vale_nvchad.uk.md +++ b/docs/books/nvchad/vale_nvchad.uk.md @@ -11,7 +11,7 @@ tags: ## :material-message-outline: Вступ -`vale.sh` є одним із найкращих проектів із відкритим кодом для технічних авторів, які хочуть покращити свій голос і послідовність стилю. Його можна використовувати з низкою редакторів майже на всіх основних платформах ОС (Linux, MacOS, Windows). Ви можете дізнатися більше про проект, перейшовши на [веб-сайт vale.sh](https://vale.sh/). Цей посібник допоможе вам додати `vale` до NvChad. Оскільки він включений до пакетів Mason для встановлення, процес не є надто складним, хоча він вимагає незначного редагування та налаштування, щоб розпочати роботу. Щоб було зрозуміло, NvChad насправді є менеджером конфігурації для редактора Neovim, тому з цього моменту посиланням буде `nvim`. +`vale.sh` є одним із найкращих проектів із відкритим кодом для технічних авторів, які хочуть покращити свій голос і послідовність стилю. Його можна використовувати з багатьма редакторами майже на всіх основних платформах ОС (Linux, macOS, Windows). Ви можете дізнатися більше про проект, перейшовши на [веб-сайт vale.sh](https://vale.sh/). Цей посібник допоможе вам додати `vale` до NvChad. Оскільки він включений до пакетів Mason для встановлення, процес не є надто складним, хоча він вимагає незначного редагування та налаштування, щоб розпочати роботу. Щоб було зрозуміло, NvChad насправді є менеджером конфігурації для редактора Neovim, тому з цього моменту посиланням буде `nvim`. ## :material-arrow-bottom-right-bold-outline: Передумови diff --git a/docs/guides/summer-of-docs-2024.de.md b/docs/guides/summer-of-docs-2024.de.md index f0d3c10243..82802941ca 100644 --- a/docs/guides/summer-of-docs-2024.de.md +++ b/docs/guides/summer-of-docs-2024.de.md @@ -21,9 +21,9 @@ Durch die Entwicklung umfassender, benutzerfreundlicher und mehrsprachiger Deskt ## Kalender -- **1. Juni – 15. Juni**: Erste Bewertung, Sprintplanung, Teilnehmerauswahl, Onboarding, Themenauswahl und Einrichtung der virtuellen Desktop-Umgebung. -- **16. Juni – 15. August**: Erstellung von Inhalten und Übersetzungen. -- **16. August – 30. August**: Überarbeitungen basierend auf dem Feedback der Community und den endgültigen Übersetzungen. +- **15. Juni – 30. Juni**: Erste Bewertung, Sprintplanung, Teilnehmerauswahl, Onboarding, Themenauswahl und Einrichtung der virtuellen Desktop-Umgebung. +- **1. Juli – 30. August**: Erstellung von Inhalten und Übersetzungen. +- **1. Sept. – 15. September**: Überarbeitungen basierend auf dem Feedback der Community und den endgültigen Übersetzungen. ## Bewerbungsprozess diff --git a/docs/guides/summer-of-docs-2024.fr.md b/docs/guides/summer-of-docs-2024.fr.md index 18378477a7..9fc2a9d079 100644 --- a/docs/guides/summer-of-docs-2024.fr.md +++ b/docs/guides/summer-of-docs-2024.fr.md @@ -21,9 +21,9 @@ En développant des guides d'utilisation complets, conviviaux et multilingues, n ## Chronologie -- **Du 1er juin au 15 juin** : évaluation initiale, planification du sprint, sélection des participants, intégration, sélection des sujets et configuration de l'environnement de bureau virtuel. -- **Du 16 juin au 15 août** : création de contenus et traductions. -- **Du 16 août au 30 août** : relecture basée sur les commentaires de la communauté et les traductions finales. +- **Du 15 au 30 juin** : Évaluation initiale, planification du sprint, sélection des participants, intégration, sélection des sujets et configuration de l'environnement de bureau virtuel. +- **Du 1er juillet au 30 août** : Création de contenus et traductions. +- **Du 1er au 15 septembre** : Relecture basée sur les commentaires de la communauté et traductions finales. ## Processus de Candidature