diff --git a/docs/books/admin_guide/10-boot.fr.md b/docs/books/admin_guide/10-boot.fr.md index 52863d906a..31235b135b 100644 --- a/docs/books/admin_guide/10-boot.fr.md +++ b/docs/books/admin_guide/10-boot.fr.md @@ -1,53 +1,53 @@ --- -title: System Startup +title: Démarrage du Système --- -# System Startup +# Démarrage du Système -In this chapter you will learn how the system start. +Dans ce chapitre, vous apprendrez comment le système démarre. **** -**Objectives** : In this chapter, future Linux administrators will learn: +**Objectifs** : Dans ce chapitre, les futurs administrateurs Linux vont apprendre : -:heavy_check_mark: The different stages of the booting process; -:heavy_check_mark: How Rocky Linux supports this boot via GRUB2 and systemd; -:heavy_check_mark: How to protect GRUB2 from an attack; -:heavy_check_mark: How to manage the services; -:heavy_check_mark: How to access to the logs from journald. +:heavy_check_mark: Les différentes étapes du processus de démarrage du système ; +:heavy_check_mark: Comment Rocky Linux supporte ce démarrage via GRUB2 et systemd ; +:heavy_check_mark: Comment protéger GRUB2 contre une attaque ; +:heavy_check_mark: Comment gérer les services ; +:heavy_check_mark: Comment accéder aux logs avec journald. -:checkered_flag: **users** +:checkered_flag: **utilisateurs** -**Knowledge**: :star: :star: -**Complexity**: :star: :star: :star: +**Connaissances** : :star: :star: +**Complexité** : :star: :star: :star: -**Temps de lecture : **20 minutes +**Temps de lecture** : 20 minutes **** -## The boot process +## Le processus de démarrage -It is important to understand the boot process of Linux in order to be able to solve problems that may occur. +Il est important de comprendre le processus de démarage de Linux afin de pouvoir résoudre les problèmes qui peuvent se produire. -The boot process includes: +Le processus de démarrage comprend : -### The BIOS startup +### BIOS startup -The **BIOS** (Basic Input/Output System) performs the **POST** (power on self test) to detect, test and initialize the system hardware components. +Le **BIOS** (Basic Input/Output System) effectue le **POST** (auto-test) pour détecter, tester et initialiser les composants matériels du système. -It then loads the **MBR** (Master Boot Record). +Il charge ensuite le **MBR** (Master Boot Record). -### The Master boot record (MBR) +### L'enregistrement d'amorçage principal (MBR) -The Master Boot Record is the first 512 bytes of the boot disk. The MBR discovers the boot device and loads the bootloader **GRUB2** into memory and transfers control to it. +L'enregistrement d'amorçage principal est les 512 premiers octets du disque d'amorçage. Le MBR découvre le périphérique d'amorçage et charge le chargeur de démarrage **GRUB2** en mémoire et lui transfère le contrôle. -The next 64 bytes contain the partition table of the disk. +Les 64 octets suivants contiennent la table de partitions du disque. -### The GRUB2 bootloader +### Le chargeur de démarrage GRUB2 -The default bootloader for the Rocky 8 distribution is **GRUB2** (GRand Unified Bootloader). GRUB2 replaces the old GRUB bootloader (also called GRUB legacy). +Le chargeur de démarrage par défaut pour la distribution Rocky 8 est **GRUB2** (GRand Unified Bootloader n° 2). GRUB2 remplace l'ancien chargeur d'amorçage GRUB (également appelé legacy GRUB). -The GRUB 2 configuration file is located under `/boot/grub2/grub.cfg` but this file should not be edited directly. +Le fichier de configuration GRUB 2 se trouve sous `/boot/grub2/grub.cfg` mais ne doit pas être édité directement. -The GRUB2 menu configuration settings are located under `/etc/default/grub` and are used to generate the `grub.cfg` file. +Les paramètres de configuration du menu GRUB2 sont situés dans `/etc/default/grub` et sont utilisés pour générer le fichier `grub.cfg`. ``` # cat /etc/default/grub @@ -59,65 +59,67 @@ GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root rhg GRUB_DISABLE_RECOVERY="true" ``` -If changes are made to one or more of these parameters, the `grub2-mkconfig` command must be run to regenerate the `/boot/grub2/grub.cfg` file. +Si des modifications sont apportées à un ou plusieurs de ces paramètres, la commande `grub2-mkconfig` doit être exécutée pour régénérer le fichier `/boot/grub2/grub.cfg`. ``` [root] # grub2-mkconfig –o /boot/grub2/grub.cfg ``` -* GRUB2 looks for the compressed kernel image (the `vmlinuz` file) in the `/boot` directory. -* GRUB2 loads the kernel image into memory and extracts the contents of the `initramfs` image file into a temporary folder in memory using the `tmpfs` file system. +* GRUB2 recherche l'image du noyau compressé (le fichier `vmlinuz` ) dans le répertoire `/boot`. +* GRUB2 charge l'image du noyau en mémoire et extrait le contenu du fichier image `initramfs` dans un dossier temporaire en mémoire en utilisant le système de fichiers `tmpfs`. -### The kernel +### Le noyau -The kernel starts the `systemd` process with PID 1. +Le noyau démarre le processus `systemd` avec PID 1. ``` root 1 0 0 02:10 ? 00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 23 ``` ### `systemd` -Systemd is the parent of all system processes. It reads the target of the `/etc/systemd/system/default.target` link (e.g. `/usr/lib/systemd/system/multi-user.target`) to determine the default target of the system. The file defines the services to be started. +Systemd est le parent de tous les processus système. Il lit la cible du lien `/etc/systemd/system/default.target` (par exemple, `/usr/lib/systemd/system/multi-user.target`) pour déterminer la cible par défaut du système. Le fichier définit les services à démarrer. -Systemd then places the system in the target-defined state by performing the following initialization tasks: +Systemd place ensuite le système dans l'état défini par la cible en effectuant les tâches d'initialisation suivantes : -1. Set the machine name -2. Initialize the network -3. Initialize SELinux -4. Display the welcome banner -5. Initialize the hardware based on the arguments given to the kernel at boot time -6. Mount the file systems, including virtual file systems like /proc -7. Clean up directories in /var -8. Start the virtual memory (swap) +1. Définir le nom de la machine +2. Initialiser le réseau +3. Initialiser SELinux +4. Afficher la bannière de bienvenue +5. Initialiser le matériel en se basant sur les arguments donnés au noyau au démarrage +6. Monter les systèmes de fichiers, y compris les systèmes de fichiers virtuels comme /proc +7. Nettoyer les répertoires dans /var +8. Lancer la mémoire virtuelle (swap) -## Protecting the GRUB2 bootloader +## Protéger le chargeur de démarrage GRUB2 -Why protect the bootloader with a password? +Pourquoi protéger le chargeur de démarrage avec un mot de passe ? -1. Prevent *Single* user mode access - If an attacker can boot into single user mode, he becomes the root user. -2. Prevent access to GRUB console - If an attacker manages to use GRUB console, he can change its configuration or collect information about the system by using the `cat` command. -3. Prevent access to insecure operating systems. If there is a dual boot on the system, an attacker can select an operating system like DOS at boot time that ignores access controls and file permissions. +1. Empêcher l'accès en mode utilisateur *Single* - Si un attaquant peut démarrer en mode mono-utilisateur, il devient l'utilisateur root. +2. Empêcher l'accès à la console GRUB - Si un attaquant parvient à utiliser la console GRUB, il peut modifier sa configuration ou collecter des informations sur le système en utilisant la commande `cat`. +3. Empêcher l'accès aux systèmes d'exploitation non sécurisés. S'il y a un double démarrage sur le système, un attaquant peut sélectionner un système d'exploitation tel que DOS au démarrage qui ignore les contrôles d'accès et les autorisations de fichiers. -To password protect the GRUB2 bootloader: +Pour protéger par mot de passe le chargeur de démarrage GRUB2 : -* Remove `-unrestricted` from the main `CLASS=` statement in the `/etc/grub.d/10_linux` file. +* Retirer `-unrestricted` de l'instruction principale `CLASS=` dans le fichier `/etc/grub.d/10_linux`. -* If a user has not yet been configured, use the `grub2-setpassword` command to provide a password for the root user: +* Si un utilisateur n'a pas encore été configuré, utilisez la commande `grub2-setpassword` pour fournir un mot de passe à l'utilisateur root : ``` # grub2-setpassword ``` -A `/boot/grub2/user.cfg` file will be created if it was not already present. It contains the hashed password of the GRUB2. +Un fichier `/boot/grub2/user.cfg` sera créé s'il n'est pas déjà présent. Il contient le mot de passe haché du GRUB2. -!!! abstract Note This command only supports configurations with a single root user. +!!! note "Remarque" + + Cette commande ne prend en charge que les configurations ne contenant qu'un seul utilisateur root. ``` [root]# cat /boot/grub2/user.cfg GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.CC6F56....A21 ``` -* Recreate the configuration file with the `grub2-mkconfig` command: +* Recrée le fichier de configuration avec la commande `grub2-mkconfig` : ``` [root]# grub2-mkconfig -o /boot/grub2/grub.cfg @@ -129,89 +131,93 @@ Found initrd image: /boot/initramfs-0-rescue-f9725b0c842348ce9e0bc81968cf7181.im done ``` -* Restart the server and check. +* Redémarrez le serveur et vérifiez. -All entries defined in the GRUB menu will now require a user and password to be entered at each boot. The system will not boot a kernel without direct user intervention from the console. +Toutes les entrées définies dans le menu GRUB nécessiteront maintenant la saisie d'un utilisateur et d'un mot de passe à chaque démarrage. Le système ne démarre pas un noyau sans intervention directe de l'utilisateur à partir de la console. -* When the user is requested, enter `root`; -* When a password is requested, enter the password provided at the `grub2-setpassword` command. +* Lorsque l'utilisateur est demandé, entrez `root` ; +* Quand un mot de passe est demandé, indiquez le mot de passe fourni à la commande `grub2-setpassword`. -To protect only the editing of GRUB menu entries and access to the console, the execution of the `grub2-setpassword` command is sufficient. There may be cases where you have good reasons for doing only that. This might be particularly true in a remote data center where entering a password each time a server is rebooted is either difficult or impossible to do. +Pour ne protéger que l'édition des entrées du menu GRUB et l'accès à la console, l'exécution de la commande `grub2-setpassword` est suffisante. Il se peut que vous ayez de bonnes raisons de le faire. Cela peut être particulièrement vrai dans un centre de données à distance où entrer un mot de passe chaque fois qu'un serveur est redémarré, est difficile ou impossible à faire. ## Systemd -*Systemd* is a service manager for the Linux operating systems. +*systemd* est un gestionnaire de services pour des systèmes d'exploitation Linux. + +Il est développé pour : + +* rester compatible avec les anciens scripts d'initialisation SysV, +* fournissent de nombreuses fonctionnalités, telles que le lancement en parallèle des services système au démarrage, l'activation à la demande des démons, le support des snapshots, ou la gestion des dépendances entre les services. -It is developed to: +!!! note "Remarque" -* remain compatible with older SysV initialization scripts, -* provide many features, such as parallel start of system services at system startup, on-demand activation of daemons, support for snapshots, or management of dependencies between services. + Le service systemd est la procédure d'initialisation du système par défaut depuis la version 7 de RedHat/CentOS 7. -!!! abstract Note Systemd is the default initialization system since RedHat/CentOS 7. +La suite logicielle systemd introduit le concept d'unités système (systemd units). -Systemd introduces the concept of systemd units. +| Type | Extension de fichier | Observation | +| ---------------- | -------------------- | ----------------------------------------------------------- | +| Unité de service | `.service` | Service système | +| Target unit | `.target` | Un groupe d'unités système | +| Monter l'unité | `.automount` | Un point de montage automatique pour le système de fichiers | -| Type | File extension | Observation | -| ------------ | -------------- | ---------------------------------------- | -| Service unit | `.service` | System service | -| Target unit | `.target` | A group of systemd units | -| Mount unit | `.automount` | An automatic mount point for file system | +!!! note "Remarque" -!!! abstract Note There are many types of units: Device unit, Mount unit, Path unit, Scope unit, Slice unit, Snapshot unit, Socket unit, Swap unit, Timer unit. + Il existe de nombreuses unités dans le cadre de systemd : Device unit, Mount unit, Path unit, Scope unit, Slice unit, Snapshot unit, Socket unit, Swap unit, Timer unit. -* Systemd supports system state snapshots and restore. +* Systemd prend en charge les sauvegardes d'état du système et la restauration. -* Mount points can be configured as systemd targets. +* Les points de montage peuvent être configurés en tant que cibles pour systemd. -* At startup, systemd creates listening sockets for all system services that support this type of activation and passes these sockets to these services as soon as they are started. This makes it possible to restart a service without losing a single message sent to it by the network during its unavailability. The corresponding socket remains accessible and all messages are queued. +* Au démarrage, systemd crée des sockets d'écoute pour tous les services système qui supportent ce type d'activation et transmet ces sockets à ces services dès qu'ils sont démarrés. Cela permet de redémarrer un service sans perdre un seul message envoyé par le réseau pendant son indisponibilité. Le socket correspondant reste accessible et tous les messages sont mis en attente. -* System services that use D-BUS for their inter-process communications can be started on demand the first time they are used by a client. +* Les services du système qui utilisent D-BUS pour leurs communications inter-processus peuvent être lancés à la demande dès la première fois qu'ils sont utilisés par un client. -* Systemd stops or restarts only running services. Previous versions (before RHEL7) attempted to stop services directly without checking their current status. +* Le système arrête ou redémarre uniquement les services en cours d'exécution. Les versions précédentes (avant RHEL7) tentaient d'arrêter les services directement sans vérifier leur état actuel. -* System services do not inherit any context (like HOME and PATH environment variables). Each service operates in its own execution context. +* Les services système n'héritent d'aucun contexte (comme les variables d'environnement HOME et PATH). Chaque service fonctionne dans son propre contexte d'exécution. -All service unit operations are subject to a default timeout of 5 minutes to prevent a malfunctioning service from freezing the system. +Toutes les opérations des unités de service sont soumises à un délai de 5 minutes par défaut pour éviter qu'un service défectueux ne bloque le système. -### Managing system services +### Gestion des services du système -Service units end with the `.service` file extension and have a similar purpose to init scripts. The `systemctl` command is used to `display`, `start`, `stop`, `restart` a system service: +Les unités de service se terminent par l'extension de fichier `.service` et ont un but similaire à celui des scripts init. La commande `systemctl` est utilisée pour `afficher`, `start`, `stop`, `redémarrez` un service système : -| systemctl | Description | -| ----------------------------------------- | --------------------------------------- | -| systemctl start _name_.service | Start a service | -| systemctl stop _name_.service | Stops a service | -| systemctl restart _name_.service | Restart a service | -| systemctl reload _name_.service | Reload a configuration | -| systemctl status _name_.service | Checks if a service is running | -| systemctl try-restart _name_.service | Restart a service only if it is running | -| systemctl list-units --type service --all | Display the status of all services | +| systemctl | Observation | +| ----------------------------------------- | ------------------------------------------------------------- | +| systemctl start _name_.service | Lance un service | +| systemctl stop _name_.service | Arrête un service | +| systemctl restart _name_.service | Redémarre un service | +| systemctl reload _name_.service | Recharge une configuration | +| systemctl status _name_.service | Vérifie si un service est en cours d'exécution | +| systemctl try-restart _name_.service | Redémarre un service uniquement s'il est en cours d'exécution | +| systemctl list-units --type service --all | Affiche l'état de tous les services | -The `systemctl` command is also used for the `enable` or `disable` of system a service and displaying associated services: +La commande `systemctl` est également utilisée pour `activer` ou `désactiver` un service et afficher les services associés : -| systemctl | Description | -| ---------------------------------------- | ------------------------------------------------------- | -| systemctl enable _name_.service | Activate a service | -| systemctl disable _name_.service | Disable a service | -| systemctl list-unit-files --type service | Lists all services and checks if they are running | -| systemctl list-dependencies --after | Lists the services that start before the specified unit | -| systemctl list-dependencies --before | Lists the services that start after the specified unit | +| systemctl | Observation | +| ---------------------------------------- | ------------------------------------------------------------------ | +| systemctl enable _name_.service | Activer un service | +| systemctl disable _name_.service | Désactiver un service | +| systemctl list-unit-files --type service | Liste tous les services et vérifie s'ils sont en cours d'exécution | +| systemctl list-dependencies --after | Liste les services qui commencent avant l'unité spécifiée | +| systemctl list-dependencies --before | Liste les services qui commencent après l'unité spécifiée | -Examples: +Exemples : ``` systemctl stop nfs-server.service -# or +# ou bien systemctl stop nfs-server ``` -To list all units currently loaded: +Pour lister toutes les unités actuellement chargées : ``` systemctl list-units --type service ``` -To list all units to check if they are activated: +Pour lister toutes les unités à vérifier si elles sont activées : ``` systemctl list-unit-files --type service @@ -222,7 +228,7 @@ systemctl enable httpd.service systemctl disable bluetooth.service ``` -### Example of a .service file for the postfix service +### Exemple d'un fichier .service pour le service postfix ``` postfix.service Unit File @@ -247,40 +253,40 @@ ExecStop=/usr/sbin/postfix stop WantedBy=multi-user.target ``` -### Using system targets +### Utilisation des cibles du système -On Rocky8/RHEL8, the concept of run levels has been replaced by Systemd targets. +Sur Rocky8/RHEL8, le concept de niveaux d'exécution a été remplacé par des cibles systemd. -Systemd targets are represented by target units. Target units end with the `.target` file extension and their sole purpose is to group other Systemd units into a chain of dependencies. +Les cibles systemd sont représentées par les unités cibles. Les unités cibles se terminent par l' extension `.target` et leur seul but est de regrouper d'autres unités systemd dans une chaîne de dépendances. -For example, the `graphical.target` unit, which is used to start a graphical session, starts system services such as the **GNOME display manager** (`gdm.service`) or the **accounts service** (`accounts-daemon.service`) and also activates the `multi-user.target` unit. +Par exemple, l'unité `graphical.target` qui est utilisée pour démarrer une session graphique, démarre les services système tels que le **gestionnaire d'affichage GNOME** (`gdm.service`) ou le service de comptes **** (`accounts-daemon.service`) et active également l'unité `multi-utilisateur.target`. -Similarly, the `multi-user.target` unit starts other essential system services, such as **NetworkManager** (`NetworkManager.service`) or **D-Bus** (`dbus.service`) and activates another target unit named `basic.target`. +De même, l'unité `multi-user.target` démarre d'autres services système essentiels, tels que **NetworkManager** (`NetworkManager. ervice`) ou **D-Bus** (`dbus.service`) et active une autre unité cible nommée `basic.target`. -| Target Units | Description | -| ----------------- | --------------------------------------------------------- | -| poweroff.target | Shuts down the system and turns it off | -| rescue.target | Activates a rescue shell | -| multi-user.target | Activates a multi-user system without graphical interface | -| graphical.target | Activates a multi-user system with graphical interface | -| reboot.target | Shuts down and restarts the system | +| Target Units | Observation | +| ----------------- | ---------------------------------------------------------------- | +| poweroff.target | Arrête le système et le désactive | +| rescue.target | Active un shell de secours | +| multi-user.target | Active un système multi-utilisateur sans interface graphique | +| graphical.target | Active un système multi-utilisateur avec une interface graphique | +| reboot.target | Arrête et redémarre le système | -#### The default target +#### L'unité cible par défaut -To determine which target is used by default: +Pour déterminer quelle est la cible utilisée par défaut : ``` systemctl get-default ``` -This command searches for the target of the symbolic link located at `/etc/systemd/system/default.target` and displays the result. +Cette commande recherche la cible du lien symbolique situé dans `/etc/systemd/system/default.target` et affiche le résultat. ``` $ systemctl get-default graphical.target ``` -The `systemctl` command can also provide a list of available targets: +La commande `systemctl` peut également fournir une liste de cibles disponibles : ``` systemctl list-units --type target @@ -306,13 +312,13 @@ sysinit.target loaded active active System Initialization timers.target loaded active active Timers ``` -To configure the system to use a different default target: +Pour configurer le système pour qu'il utilise une cible par défaut différente : ``` systemctl set-default name.target ``` -Example: +Exemple : ``` # systemctl set-default multi-user.target @@ -320,87 +326,87 @@ rm '/etc/systemd/system/default.target' ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target' ``` -To switch to a different target unit in the current session: +Pour passer à une autre unité cible de la session courante : ``` systemctl isolate name.target ``` -The **Rescue mode** provides a simple environment to repair your system in cases where it is impossible to perform a normal boot process. +Le mode sauvetage **Rescue Mode** fournit un environnement simple pour réparer votre système dans les cas où il est impossible d'effectuer un processus de démarrage normal. -In `rescue mode`, the system attempts to mount all local file systems and start several important system services, but does not enable a network interface or allow other users to connect to the system at the same time. +En `mode de sauvetage`, le système tente de monter tous les systèmes de fichiers locaux et de démarrer plusieurs services système importants, mais n'active pas d'interface réseau et ne permet pas à d'autres utilisateurs de se connecter au système en même temps. -On Rocky 8, the `rescue mode` is equivalent to the old `single user mode` and requires the root password. +Sur Rocky 8, le `mode de secours` est équivalent à l'ancien `mode utilisateur unique` et nécessite le mot de passe root. -To change the current target and enter `rescue mode` in the current session: +Pour changer la cible actuelle et entrer dans le mode de secours `Rescue Mode` dans la session en cours : ``` systemctl rescue ``` -**Emergency mode** provides the most minimalist environment possible and allows the system to be repaired even in situations where the system is unable to enter rescue mode. In the emergency mode, the system mounts the root file system only for reading. It will not attempt to mount any other local file system, will not activate any network interface, and will start some essential services. +**Le mode d'urgence** fournit l'environnement le plus minimaliste possible et permet de réparer le système même dans des situations où le système est incapable de passer en mode sauvetage. En mode d'urgence, le système monte le système de fichiers root uniquement pour la lecture. Il n'essayera pas de monter un autre système de fichiers local, n'activera aucune interface réseau et démarrera certains services essentiels. -To change the current target and enter emergency mode in the current session: +Pour modifier la cible actuelle et passer en mode d'urgence dans la session en cours : ``` systemctl emergency ``` -#### Shutdown, suspension and hibernation +#### Fermeture, suspension et hibernation -The `systemctl` command replaces a number of power management commands used in previous versions: +La commande `systemctl` remplace un certain nombre de commandes de gestion d'énergie utilisées dans les versions précédentes : -| Old command | New command | Description | -| ------------------- | ------------------------ | ----------------------------------- | -| `halt` | `systemctl halt` | Shuts down the system. | -| `poweroff` | `systemctl poweroff` | Turns off the system. | -| `reboot` | `systemctl reboot` | Restarts the system. | -| `pm-suspend` | `systemctl suspend` | Suspends the system. | -| `pm-hibernate` | `systemctl hibernate` | Hibernates the system. | -| `pm-suspend-hybrid` | `systemctl hybrid-sleep` | Hibernates and suspends the system. | +| Ancienne commande | Nouvelle commande | Observation | +| ------------------- | ------------------------ | -------------------------------------------------- | +| `halt` | `systemctl halt` | Arrête le système. | +| `poweroff` | `systemctl poweroff` | Éteint le système. | +| `reboot` | `systemctl reboot` | Redémarre le système. | +| `pm-suspend` | `systemctl suspend` | Suspend le système. | +| `pm-hibernate` | `systemctl hibernate` | Mise en veille prolongée du système. | +| `pm-suspend-hybrid` | `systemctl hybrid-sleep` | Mise en veille prolongée et interrompt le système. | -### The `journald` process +### Le processus `journald` -Log files can, in addition to `rsyslogd`, also be managed by the `journald` daemon which is a component of `systemd`. +Les fichiers journaux peuvent, en plus de `rsyslogd`, être également gérés par le démon `journald` qui est un composant de `systemd`. -The `journald` daemon captures Syslog messages, kernel log messages, messages from the initial RAM disk and from the start of boot, as well as messages written to the standard output and the standard error output of all services, then indexes them and makes them available to the user. +Le démon `journald` capture les messages du Syslog, les messages du noyau, les messages de la mémoire vive initiale et depuis le début du démarrage, ainsi que les messages écrits vers la sortie standard et la sortie d'erreur standard de tous les services, puis les indexe et les met à la disposition de l'utilisateur. -The format of the native log file, which is a structured and indexed binary file, improves searches and allows for faster operation, it also stores metadata information, such as timestamps or user IDs. +Le format du fichier journal natif, qui est un fichier binaire structuré et indexé, améliore les recherches et permet une execution plus rapide, il stocke également les informations de métadonnées, telles que les horodatages ou les identifiants d'utilisateur. -### `journalctl` command +### La commande `journalctl` -The `journalctl` command displays the log files. +La commande `journalctl` affiche les fichiers journaux. ``` journalctl ``` -The command lists all log files generated on the system. The structure of this output is similar to that used in `/var/log/messages/` but it offers some improvements: +La commande liste tous les fichiers journaux générés sur le système. La structure de cette sortie est similaire à celle utilisée dans `/var/log/messages/` mais elle offre quelques améliorations : -* the priority of entries is marked visually; -* timestamps are converted to the local time zone of your system; -* all logged data is displayed, including rotating logs; -* the beginning of a start is marked with a special line. +* la priorité des entrées est mise en valeur visuellement ; +* les horodatages sont convertis dans le fuseau horaire local de votre système ; +* toutes les données enregistrées sont affichées, y compris les logs rotatifs ; +* le début d'un lancement est marqué par une ligne spéciale. -#### Using continuous display +#### Utilisation de l'affichage continu -With continuous display, log messages are displayed in real time. +Avec un affichage continu, les messages de log sont affichés en temps réel. ``` journalctl -f ``` -This command returns a list of the ten most recent log lines. The journalctl utility then continues to run and waits for new changes to occur before displaying them immediately. +Cette commande retourne une liste des dix lignes de log les plus récentes. L'utilitaire journalctl continue alors à s'exécuter et attend que de nouveaux changements se produisent avant de les afficher immédiatement. -#### Filtering messages +#### Filtrage des messages -It is possible to use different filtering methods to extract information that fits different needs. Log messages are often used to track erroneous behavior on the system. To view entries with a selected or higher priority: +Il est possible d'utiliser différentes méthodes de filtrage pour extraire des informations qui répondent à différents besoins. Les messages de log sont souvent utilisés pour suivre les comportements erronés dans le système. Voir les entrées avec une priorité sélectionnée ou supérieure : ``` journalctl -p priority ``` -You must replace priority with one of the following keywords (or a number): +Vous devez remplacer priority par un des mots-clés suivants (ou un nombre) : * debug (7), * info (6), @@ -409,4 +415,4 @@ You must replace priority with one of the following keywords (or a number): * err (3), * crit (2), * alert (1), -* and emerg (0). +* emerg (0). diff --git a/docs/books/nvchad/additional_software.fr.md b/docs/books/nvchad/additional_software.fr.md new file mode 100644 index 0000000000..9bcf235b7c --- /dev/null +++ b/docs/books/nvchad/additional_software.fr.md @@ -0,0 +1,81 @@ +--- +title: Logiciels supplémentaires +author: Franco Colussi +contributors: Steven Spencer, Ganna Zhyrnova +tested_with: 8.7, 9.1 +tags: + - nvchad + - codage +--- + +# Logiciels supplémentaires utiles + +Il existe plusieurs logiciels supplémentaires qui, même s'ils ne sont pas nécessaires, aideront à l'utilisation quotidienne de NvChad. Les sections ci-dessous vous guideront à choisir parmi ces logiciels et leurs usages. + +## RipGrep + +`ripgrep` est un outil de recherche orienté ligne de commande qui recherche récursivement dans le répertoire courant en utilisant une expression régulière _regex_. Par défaut, _ripgrep_ respecte les règles de _gitignore_ et omet automatiquement les fichiers/répertoires et les binaires cachés. Ripgrep offre un excellent support sous Windows, macOS et Linux, avec des binaires disponibles pour chaque plateforme. + +### Installer RipGrep depuis EPEL + +Sous Rocky Linux 8 et 9, vous pouvez installer RipGrep à partir de l'EPEL. Pour cela, installez `epel-release,` mettez à jour le système, puis installez `ripgrep` : + +``` +sudo dnf install -y epel-release +sudo dnf upgrade +sudo dnf install ripgrep +``` + +### Installez RipGrep en utilisant `cargo` + +Ripgrep est un logiciel écrit en _Rust_ et peut être installé avec l'utilitaire `cargo`. Notez toutefois que `cargo` n'est pas installé automatiquement par l'installation par défaut de _rust_, donc vous devez l'installer explicitement. Si vous rencontrez des problèmes en utilisant cette méthode, revenez à l'installation à partir de l'EPEL. + +```bash +dnf install rust cargo +``` + +Une fois que le logiciel nécessaire est opérationnel, nous pouvons installer `ripgrep` avec : + +```bash +cargo install ripgrep +``` + +L'installation sauvegardera l'exécutable `rg` dans le répertoire `~/.cargo/bin` qui se trouve en dehors du PATH, pour l'utiliser au niveau de l'utilisateur, nous le lierons à `~/.local/bin/`. + +```bash +ln -s ~/.cargo/bin/rg ~/.local/bin/ +``` + +## Vérification de RipGrep + +À ce stade, nous pouvons vérifier que tout va bien : + +```bash +rg --version +ripgrep 13.0.0 +-SIMD -AVX (compiled) ++SIMD +AVX (runtime) +``` + +RipGrep est nécessaire pour les recherches récursives avec `:Telescope`. + +## Lazygit + +[LazyGit](https://github.com/jesseduffield/lazygit) est une interface de style ncurses qui vous permet d'effectuer toutes les opérations `git` de manière plus conviviale. Il est requis par le plugin _lazygit.nvim_. Ce plugin permet d'utiliser LazyGit directement depuis NvChad, il ouvre une fenêtre flottante à partir de laquelle vous pouvez effectuer toutes les opérations sur vos référentiels, vous permettant ainsi d'apporter toutes les modifications au dépôt _git_ sans quitter l'éditeur. + +Pour l'installer, nous pouvons utiliser le référentiel pour Fedora. Sous Rocky Linux 9, il fonctionne à merveille. + +```bash +sudo dnf copr enable atim/lazygit -y +sudo dnf install lazygit +``` + +Une fois installé, nous ouvrons un terminal et utilisons la commande `lazygit` et une interface similaire à ceci apparaîtra : + +![LazyGit UI](images/lazygit_ui.png) + +Avec la touche x , nous pouvons afficher le menu avec toutes les commandes disponibles. + +![LazyGit UI](images/lazygit_menu.png) + +Maintenant que nous avons tous les logiciels de support nécessaires sur notre système, nous pouvons passer à l'installation du logiciel de base. Nous allons commencer avec l'éditeur sur lequel la configuration entière est basée, [Neovim](install_nvim.md). diff --git a/docs/guides/web/apache_hardened_webserver/index.it.md b/docs/guides/web/apache_hardened_webserver/index.it.md index 0d6569e135..4bbe5946a7 100644 --- a/docs/guides/web/apache_hardened_webserver/index.it.md +++ b/docs/guides/web/apache_hardened_webserver/index.it.md @@ -1,7 +1,7 @@ --- title: Server web Apache Protetto author: Steven Spencer, Franco Colussi -contributors: Ezequiel Bruni, Franco Colussi +contributors: Ezequiel Bruni, Ganna Zhyrnova tested_with: 8.8, 9.2 tags: - apache @@ -24,14 +24,14 @@ tags: Che si tratti dell'hosting di molti siti web per i clienti o di un singolo sito importante per la propria azienda, l'hardening del server web garantisce la massima tranquillità a costo di un po' di lavoro iniziale in più per l'amministratore. -Con molti siti web caricati dai vostri clienti, c'è un'alta probabilità che uno di loro carichi un sistema di gestione dei contenuti (CMS) con la possibilità di vulnerabilità. La maggior parte dei clienti si concentra sulla facilità d'uso, non sulla sicurezza, e ciò che accade è che l'aggiornamento del proprio CMS diventa un processo che esce completamente dall'elenco delle priorità. +Con molti siti web caricati dai vostri clienti, uno di loro probabilmente caricherà un sistema di gestione dei contenuti (CMS) con la possibilità di vulnerabilità. La maggior parte dei clienti si concentra sulla facilità d'uso, non sulla sicurezza, e ciò che accade è che l'aggiornamento del proprio CMS diventa un processo che esce completamente dall'elenco delle priorità. Se per un'azienda con un grande staff IT è possibile notificare ai clienti le vulnerabilità del loro CMS, per un piccolo team IT questo potrebbe non essere realistico. La migliore difesa è un server Web protetto. -L'hardening del server Web può assumere diverse forme, che possono includere uno o tutti gli strumenti qui descritti ed eventualmente altri non definiti. +L'hardening dei server Web può assumere molte forme, tra cui uno o tutti gli strumenti qui descritti ed eventualmente altri non definiti. -Potreste decidere di utilizzare un paio di questi strumenti e non gli altri. Per chiarezza e leggibilità, questo documento è suddiviso in documenti separati per ogni strumento. L'eccezione sarà il firewall basato sui pacchetti`(firewalld`) di cui al presente documento principale. +Potreste utilizzare un paio di questi strumenti e non gli altri. Per chiarezza e leggibilità, questo documento è suddiviso in documenti separati per ogni strumento. L'eccezione sarà il firewall basato sui pacchetti`(firewalld`) di cui al presente documento principale. * Un buon firewall con filtro dei pacchetti basato sulle porte (iptables, firewalld, o firewall hardware - utilizzaremo `firewalld` per i nostri esempi) [procedura`firewalld`](#iptablesstart) * Un sistema di rilevamento delle intrusioni basato su host (HIDS), in questo caso _ossec-hids_ [Apache Hardened Web Server - ossec-hids](ossec-hids.md) @@ -44,7 +44,7 @@ Questa procedura non sostituisce l'[Impostazione di siti multipli del server Web ## Altre considerazioni -Alcuni degli strumenti qui descritti hanno opzioni gratuite e a pagamento. A seconda delle vostre esigenze o dei requisiti di assistenza, potreste prendere in considerazione le versioni a pagamento. La ricerca di ciò che è disponibile e la decisione da prendere dopo aver valutato tutte le opzioni è la politica migliore. +Alcuni degli strumenti qui descritti hanno opzioni gratuite e a pagamento. Potreste prendere in considerazione le versioni a pagamento, a seconda delle vostre esigenze o dei vostri requisiti di assistenza. La ricerca di ciò che è disponibile e la decisione da prendere dopo aver valutato tutte le opzioni è la politica migliore. Per molte di queste opzioni è possibile anche acquistare un dispositivo hardware. Se si preferisce evitare l'installazione e la manutenzione del proprio sistema, sono disponibili altre opzioni oltre a quelle qui descritte. @@ -54,11 +54,11 @@ In questo documento si utilizza un firewall `firewalld`. sono disponibili guide Questi esempi utilizzano un indirizzo IP privato per simulare un indirizzo pubblico, ma si potrebbe fare la stessa cosa con un NAT uno a uno sul firewall hardware e collegando il server web a tale firewall hardware, anziché al router gateway, con un indirizzo IP privato. -Per spiegarlo è necessario approfondire il tema del firewall hardware, che non rientra nello scopo di questo documento. +Per spiegarlo è necessario approfondire il tema del firewall hardware, che non rientra nell'ambito di questo documento. ## Convenzioni -* **Indirizzi IP:** simulare l'indirizzo IP pubblico con un blocco privato: 192.168.1.0/24 e utilizzare il blocco di indirizzi IP della LAN 10.0.0.0/24. L'instradamento di questi blocchi IP su Internet non è possibile perché sono per uso privato, ma la simulazione di blocchi IP pubblici non è possibile senza l'uso di un indirizzo IP reale assegnato a qualche azienda o organizzazione. Ricordate che per i nostri scopi, il blocco 192.168.1.0/24 è il blocco IP "pubblico" e il blocco 10.0.0.0/24 è il blocco IP "privato". +* **Indirizzi IP:** simulare l'indirizzo IP pubblico con un blocco privato: 192.168.1.0/24 e utilizzare il blocco di indirizzi IP della LAN 10.0.0.0/24. L'instradamento di questi blocchi IP su Internet è impossibile perché sono per uso privato, ma la simulazione di blocchi IP pubblici è impossibile senza l'uso di un indirizzo IP reale assegnato a qualche azienda o organizzazione. Ricordate che per i nostri scopi, il blocco 192.168.1.0/24 è il blocco IP "pubblico" e il blocco 10.0.0.0/24 è il blocco IP "privato". * **Firewall hardware:** È il firewall che controlla l'accesso ai dispositivi della sala server dalla rete fidata. Questo non è lo stesso firewall basato su pacchetti, anche se potrebbe essere un'altra istanza di `firewalld` in esecuzione su un'altra macchina. Questo dispositivo consente l'accesso ICMP (ping) e SSH (secure shell) ai nostri dispositivi affidabili. La definizione di questo dispositivo non rientra nell'ambito di questo documento. L'autore ha utilizzato [PfSense](https://www.pfsense.org/) e [OPNSense](https://opnsense.org/), installati su hardware dedicato a questo dispositivo, con grande successo. A questo dispositivo verranno assegnati due indirizzi IP. Uno che si collega all'IP pubblico simulato del router Internet (192.168.1.2) e uno che si collega alla nostra rete locale, 10.0.0.1. * **IP del router Internet:** simulazione con 192.168.1.1/24 diff --git a/docs/guides/web/apache_hardened_webserver/ossec-hids.it.md b/docs/guides/web/apache_hardened_webserver/ossec-hids.it.md index 6871baca72..10b2c017f3 100644 --- a/docs/guides/web/apache_hardened_webserver/ossec-hids.it.md +++ b/docs/guides/web/apache_hardened_webserver/ossec-hids.it.md @@ -1,7 +1,7 @@ --- title: Sistema di rilevamento delle intrusioni basato su host (HIDS) author: Steven Spencer -contributors: Ezequiel Bruni, Franco Colussi +contributors: Ezequiel Bruni, Ganna Zhyrnova tested_with: 8.8, 9.2 tags: - web @@ -23,13 +23,13 @@ tags: `ossec-hids` è un sistema di rilevamento delle intrusioni all'host che offre passaggi automatici di azione-risposta per aiutare a mitigare gli attacchi. È solo uno dei possibili elementi di una configurazione di server web Apache protetta. Si può usare con o senza altri strumenti. -Se si desidera utilizzare questo strumento insieme ad altri strumenti per l'hardening, fare riferimento al documento [Apache Hardened Web Server](index.md). Questo documento utilizza anche tutti i presupposti e le convenzioni delineati nel documento originale. È buona norma rivederlo prima di continuare. +Se volete usare questo e altri strumenti di hardening, fate riferimento al documento [Apache Hardened Web Server](index.md). Questo documento utilizza anche tutti i presupposti e le convenzioni delineati nel documento originale. È buona norma rivederlo prima di continuare. ## Installazione del repository di Atomicorp Per installare `ossec-hids`, abbiamo bisogno di un repository di terze parti di Atomicorp. Atomicorp offre anche una versione supportata a pagamento, a prezzi ragionevoli, per coloro che desiderano un supporto professionale in caso di problemi. -Se si preferisce l'assistenza e si dispone di un budget sufficiente, si consiglia di provare la versione [ `ossec-hids` a pagamento di Atomicorp](https://atomicorp.com/atomic-enterprise-ossec/). Avrete bisogno di alcuni pacchetti dal repository gratuito di Atomicorp. Dopo il download, si cambierà il repository. +Se si preferisce l'assistenza e si dispone di un budget sufficiente, si consiglia di provare la versione [ `ossec-hids` a pagamento di Atomicorp](https://atomicorp.com/atomic-enterprise-ossec/). Sono sufficienti alcuni pacchetti dal repository gratuito di Atomicorp. Dopo il download, si cambierà il repository. Il download del repository richiede `wget`. Installatelo prima e installate il repository EPEL, se non lo avete già installato, con: @@ -63,7 +63,7 @@ includepkgs = ossec* GeoIP* inotify-tools Questo è l'unico cambiamento necessario. Salvare le modifiche e uscire dal repository (in `vi` è esc per entrare in modalità comando, poi SHIFT+:+wq per salvare e uscire). -Questo limita il repository Atomicorp ad installare e aggiornare solo questi pacchetti. +Questo limita il repository Atomicorp solo all'installazione e all'aggiornamento di questi pacchetti. ## Installazione di `ossec-hids` @@ -85,7 +85,7 @@ Per modificare il file di configurazione, immettere: vi /var/ossec/etc/ossec.conf ``` -La configurazione viene smontata mostrando le modifiche in linea e spiegandole: +L'autore analizzerà questa configurazione mostrando le modifiche in linea e spiegandole: ``` @@ -100,11 +100,11 @@ La configurazione viene smontata mostrando le modifiche in linea e spiegandole: ``` -Per impostazione predefinita, le notifiche e-mail sono disattivate e la configurazione `` è sostanzialmente vuota. Si desidera attivare la notifica via e-mail e identificare le persone che riceveranno i rapporti via e-mail in base al loro indirizzo di posta elettronica. +Le notifiche via e-mail sono disattivate per impostazione predefinita e la configurazione `` è sostanzialmente vuota. Si desidera attivare la notifica via e-mail e identificare le persone che riceveranno i rapporti via e-mail in base al loro indirizzo di posta elettronica. La sezione `` attualmente mostra localhost, tuttavia è possibile specificare un relay del server di posta elettronica, se si preferisce, o configurare le impostazioni di postfix per l'host locale seguendo [questa guida](../../email/postfix_reporting.md). -È necessario impostare l'indirizzo e-mail "from". È necessario per far fronte ai filtri SPAM del vostro server di posta elettronica, che potrebbero vedere questa e-mail come SPAM. Per evitare di essere sommersi dalle e-mail, impostate la segnalazione delle e-mail su 1 all'ora. È possibile espandere o eliminare questo comando quando si sta iniziando a usare `ossec-hids` e si ha bisogno di vedere le cose rapidamente. +È necessario impostare l'indirizzo e-mail "from". È necessario per far fronte ai filtri SPAM del vostro server di posta elettronica, che potrebbero vedere questa e-mail come SPAM. Per evitare di essere sommersi dalle e-mail, impostate la segnalazione delle e-mail su 1 all'ora. È possibile espandere o escludere questo comando iniziando con `ossec-hids`. Le sezioni `` si occupano dell'IP localhost del server e dell'indirizzo IP "pubblico" (ricordate la nostra sostituzione di un indirizzo IP privato) del firewall, dal quale verranno visualizzate tutte le connessioni sulla rete fidata. È possibile aggiungere molte voci di ``. @@ -151,18 +151,18 @@ La sezione `` riguarda la posizione dei log che si desidera osservare ``` -Infine, verso la fine del file è necessario aggiungere la sezione di risposta attiva. Questa sezione ha due parti: la sezione `` e la sezione ``. +Infine, verso la fine del file, è necessario aggiungere la sezione di risposta attiva. Questa sezione ha due parti: la sezione `` e la sezione ``. Lo script "firewall-drop" esiste già nel percorso `ossec-hids`. Indica a `ossec-hids` che se si verifica un livello 7, bisogna aggiungere una regola del firewall per bloccare l'indirizzo IP. -Una volta apportate tutte le modifiche di configurazione necessarie, abilitare e avviare il servizio. Se tutto si avvia correttamente, si è pronti a proseguire: +Attivare e avviare il servizio una volta completate tutte le modifiche alla configurazione. Se tutto si avvia correttamente, si è pronti a proseguire: ``` systemctl enable ossec-hids systemctl start ossec-hids ``` -Esistono molte opzioni per il file di configurazione `ossec-hids`. È possibile conoscere queste opzioni visitando il [sito ufficiale della documentazione](https://www.ossec.net/docs/). +Il file di configurazione `ossec-hids`. È possibile conoscere queste opzioni visitando il [sito ufficiale della documentazione](https://www.ossec.net/docs/). ## Conclusione diff --git a/docs/labs/sys_admin_1/lab7-software_management.it.md b/docs/labs/sys_admin_1/lab7-software_management.it.md index a57d80218e..fbebf16fcf 100644 --- a/docs/labs/sys_admin_1/lab7-software_management.it.md +++ b/docs/labs/sys_admin_1/lab7-software_management.it.md @@ -19,7 +19,7 @@ Tempo stimato per completare questo laboratorio: 90 minuti ## File binari e file sorgente -Le applicazioni attualmente installate sul sistema dipendono da alcuni fattori. Il fattore principale dipende dai gruppi di pacchetti software selezionati durante l'installazione del sistema operativo. L'altro fattore dipende da ciò che è stato fatto al sistema da quando è stato utilizzato. +Le applicazioni attualmente installate sul sistema dipendono da alcuni fattori. Il fattore principale dipende dai gruppi di pacchetti software selezionati durante l'installazione del sistema operativo. L'altro fattore dipende da ciò che è stato fatto al sistema dal suo utilizzo. Uno dei compiti di routine di un amministratore di sistema è la gestione del software. Questo spesso comporta: @@ -27,11 +27,11 @@ Uno dei compiti di routine di un amministratore di sistema è la gestione del so - disinstallazione del software - aggiornamento del software già installato -Il software può essere installato su sistemi basati su Linux utilizzando diversi metodi. È possibile installare dai sorgenti o dai binari precompilati. Quest'ultimo metodo è di gran lunga il più semplice, ma è anche il meno personalizzabile. Quando si installa da binari precompilati, la maggior parte del lavoro è già stato fatto per voi, ma anche in questo caso è necessario conoscere il nome e la posizione del software desiderato. +Il software può essere installato su sistemi basati su Linux utilizzando diversi metodi. È possibile installare dai sorgenti o dai binari precompilati. Quest'ultimo metodo è il più semplice, ma anche il meno personalizzabile. Quando si installa da binari precompilati, la maggior parte del lavoro è già stato fatto per voi, ma anche in questo caso è necessario conoscere il nome e la posizione del software desiderato. Quasi tutti i software vengono originariamente forniti come file sorgente del linguaggio di programmazione C o C++. I programmi sorgente sono solitamente distribuiti come archivi di file sorgente. Di solito file tar o gzip o bzip2. Ciò significa che sono disponibili compressi o in un unico pacchetto. -La maggior parte degli sviluppatori ha reso il proprio codice sorgente conforme agli standard GNU, rendendolo così più facile da condividere con altri. Significa anche che i pacchetti verranno compilati su qualsiasi sistema UNIX o UNIX-like (ad esempio, Linux). +La maggior parte degli sviluppatori ha reso il proprio codice sorgente conforme agli standard GNU, rendendolo più facile da condividere. Significa anche che i pacchetti verranno compilati su qualsiasi sistema UNIX o UNIX-like (ad esempio, Linux). RPM è lo strumento di base per la gestione delle applicazioni (pacchetti) sulle distribuzioni basate su Red Hat come Rocky Linux, Fedora, Red Hat Enterprise Linux (RHEL), openSuSE, Mandrake e così via. @@ -130,7 +130,7 @@ In questo laboratorio imparerete a usare il sistema RPM e installerete un'applic ...... ``` - Si tratta di una grande quantità di informazioni (metadati)! + Si tratta di una grande quantità di informazioni (metadati)! 3. Supponiamo di essere interessati solo al campo Riepilogo del comando precedente. Si può usare l'opzione --queryformat di rpm per filtrare le informazioni ottenute dall'opzione query. @@ -156,7 +156,7 @@ In questo laboratorio imparerete a usare il sistema RPM e installerete un'applic !!! note "Nota" - Gli esercizi precedenti consistevano nell'interrogare e lavorare con i pacchetti già installati nel sistema. Nei prossimi esercizi, inizieremo a lavorare con i pacchetti non ancora installati. Utilizzeremo l'applicazione DNF per scaricare i pacchetti che utilizzeremo nei prossimi passi. + Gli esercizi precedenti consistevano nell'interrogare e lavorare con i pacchetti già installati nel sistema. Nei prossimi esercizi inizieremo a lavorare con i pacchetti non ancora installati. Utilizzeremo l'applicazione DNF per scaricare i pacchetti che utilizzeremo nei passi successivi. 6. Innanzitutto assicuratevi che l'applicazione `wget` non sia già installata sul sistema. Digita: @@ -190,9 +190,9 @@ In questo laboratorio imparerete a usare il sistema RPM e installerete un'applic ...... ``` -10. Dal risultato del passo precedente, qual'è esattamente il pacchetto `wget`? Suggerimento: è possibile utilizzare l'opzione di formato della query rpm per visualizzare il campo di descrizione del pacchetto scaricato. +10. Dal risultato del passo precedente, qual'è esattamente il pacchetto `wget`? Suggerimento: è possibile utilizzare l'opzione di formato della query rpm per visualizzare il campo della descrizione del pacchetto scaricato. -11. Se siete interessati ai file contenuti nel pacchetto `wget-*.rpm`, potete elencare tutti i file inclusi nel pacchetto digitando: +11. Se siete interessati al pacchetto `wget files-.rpm`, potete elencare tutti i file inclusi nel pacchetto digitando: ``` $ rpm -qlp wget-*.rpm | head @@ -228,6 +228,45 @@ In questo laboratorio imparerete a usare il sistema RPM e installerete un'applic Si noterà che nel comando precedente non è stato necessario fare riferimento al nome completo del pacchetto `curl`. Questo perché `curl` è già installato. +#### Conoscenza estesa sul nome del pacchetto + +* **Nome completo del pacchetto**: quando si scarica un pacchetto da una fonte affidabile (ad esempio, il sito web del fornitore, il repository dello sviluppatore), il nome del file scaricato è il nome completo del pacchetto, ad esempio -- htop-3.2.1-1.el8.x86_64.rpm. Quando si usa il comando `rpm` per installare/aggiornare questo pacchetto, l'oggetto gestito dal comando deve essere il nome completo (o l'equivalente del carattere jolly) del pacchetto, come ad esempio: + + ``` + $ rpm -ivh htop-3.2.1-1.el8.x86_64.rpm + ``` + + ``` + $ rpm -Uvh htop-3.2.1-1.*.rpm + ``` + + ``` + $ rpm -qip htop-3.*.rpm + ``` + + ``` + $ rpm -qlp wget-1.19.5-11.el8.x86_64.rpm + ``` + + + Il nome completo del pacchetto segue una convenzione di denominazione simile a questa —— `[Package_Name]-[Version]-[Release].[OS].[Arch].rpm` or `[Package_Name]-[Version]-[Release].[OS].[Arch].src.rpm` + +* **Nome del pacchetto**: Poiché RPM utilizza un database per gestire il software, una volta completata l'installazione del pacchetto, il database avrà i record corrispondenti. A questo punto, l'oggetto operativo del comando `rpm` deve solo digitare il nome del pacchetto. come ad esempio: + + ``` + $ rpm -qi bash + ``` + + ``` + $ rpm -q systemd + ``` + + ``` + $ rpm -ql chrony + ``` + + + ## Esercizio 2 ### Integrità del pacchetto @@ -241,22 +280,22 @@ In questo laboratorio imparerete a usare il sistema RPM e installerete un'applic Il messaggio "digests signatures OK" nell'output mostra che il pacchetto è a posto. -2. Facciamo finta di essere malintenzionati e alteriamo deliberatamente il pacchetto scaricato. Questo può essere fatto aggiungendo o togliendo qualcosa al pacchetto originale. Qualsiasi cosa che modifichi il pacchetto in un modo diverso da quello previsto dai pacchettizzatori originali lo danneggia. Modificheremo il file utilizzando il comando echo per aggiungere la stringa "haha" al pacchetto. Digita: +2. Facciamo finta di essere malintenzionati e alteriamo deliberatamente il pacchetto scaricato. Questo può essere fatto aggiungendo o togliendo qualcosa al pacchetto originale. Qualsiasi cosa che modifichi il pacchetto in un modo che non era nelle intenzioni di chi lo ha confezionato originariamente, corromperà il pacchetto stesso. Modificheremo il file utilizzando il comando echo per aggiungere la stringa "haha" al pacchetto. Digita: ``` $ echo haha >> wget-1.19.5-10.el8.x86_64.rpm ``` -3. Ora provate a verificare nuovamente l'integrità del pacchetto usando l'opzione -K di rpm. Digita: +3. Ora provate a verificare nuovamente l'integrità del pacchetto usando l'opzione -K di rpm. ``` $ rpm -K wget-*.rpm wget-1.19.5-10.el8.x86_64.rpm: DIGESTS SIGNATURES NOT OK ``` - Ora il messaggio è molto diverso. L'output "DIGESTS SIGNATURES NOT OK" è un chiaro avvertimento che indica di non provare a usare o installare il pacchetto. Non ci si deve più fidare. + Ora il messaggio è molto diverso. L'output "DIGESTS SIGNATURES NOT OK" avverte chiaramente che non si deve provare a usare o installare il pacchetto. Non ci si deve più fidare. -4. Usare il comando `rm` per eliminare il file danneggiato del pacchetto `wget` e scaricarne una nuova copia usando `dnf`. Digita: +4. Usare il comando `rm` per eliminare il file danneggiato del pacchetto `wget` e scaricarne una nuova copia usando `dnf`. Digitare: ``` $ rm wget-*.rpm && dnf download wget @@ -268,9 +307,9 @@ In questo laboratorio imparerete a usare il sistema RPM e installerete un'applic ### Installazione dei Pacchetti -Quando si cerca di installare un software sul sistema, può capitare di imbattersi in problemi di "dipendenze fallite". Questo è particolarmente comune quando si utilizza l'utilità RPM di basso livello per gestire manualmente le applicazioni su un sistema. +Mentre si cerca di installare un software sul sistema, può capitare di imbattersi in problemi di "dipendenze fallite". Questo è particolarmente comune quando si usa l'utilità di basso livello RPM per gestire manualmente le applicazioni su un sistema. -Ad esempio, se si tenta di installare il pacchetto "abc.rpm", il programma di installazione RPM potrebbe lamentarsi di alcune dipendenze non riuscite. Potrebbe dirvi che il pacchetto "abc.rpm" richiede l'installazione di un altro pacchetto "xyz.rpm". Il problema delle dipendenze si presenta perché le applicazioni software dipendono quasi sempre da altri software o librerie. Se un programma richiesto o una libreria condivisa non è già presente sul sistema, tale prerequisito dovrà essere soddisfatto prima di installare l'applicazione di destinazione. +Ad esempio, se si tenta di installare il pacchetto "abc.rpm", il programma di installazione RPM potrebbe lamentarsi di alcune dipendenze non riuscite. Potrebbe dirvi che il pacchetto "abc.rpm" richiede l'installazione di un altro pacchetto "xyz.rpm". Il problema delle dipendenze si pone perché le applicazioni software dipendono quasi sempre da un altro software o da un'altra libreria. Se un programma richiesto o una libreria condivisa non è già presente sul sistema, tale prerequisito deve essere soddisfatto prima di installare l'applicazione di destinazione. L'utilità RPM di basso livello spesso conosce le interdipendenze tra le applicazioni. Ma di solito non sa come o dove ottenere l'applicazione o la libreria necessaria per risolvere il problema. In altre parole, l'RPM conosce il *cosa* e il *come*, ma non ha la capacità di rispondere alla domanda sul *dove*. È qui che si distinguono strumenti come `dnf`, `yum` e così via. @@ -278,7 +317,7 @@ L'utilità RPM di basso livello spesso conosce le interdipendenze tra le applica In questo esercizio si cercherà di installare il pacchetto `wget` (wget-*.rpm). -1. Provare a installare l'applicazione `wget`. Utilizzare le opzioni della riga di comando -ivh di RPM. Digita: +1. Provare a installare l'applicazione `wget`. Utilizzare le opzioni della riga di comando -ivh di RPM. Digitare: ``` $ rpm -ivh wget-*.rpm @@ -286,13 +325,13 @@ In questo esercizio si cercherà di installare il pacchetto `wget` (wget-*.rpm). libmetalink.so.3()(64bit) is needed by wget-* ``` - Subito un problema di dipendenza! L'output di esempio mostra che `wget` ha bisogno di un qualche file di libreria chiamato "libmetalink.so.3" + Subito - un problema di dipendenza! L'output di esempio mostra che `wget` ha bisogno di un qualche file di libreria chiamato "libmetalink.so.3" !!! note "Nota" Secondo l'esito del test precedente, il pacchetto wget-*.rpm richiede l'installazione del pacchetto libmetalink-*.rpm. In altre parole, libmetalink è un prerequisito per installare wget-*.rpm. È possibile installare forzatamente il pacchetto wget-*.rpm utilizzando l'opzione "nodeps" se si sa assolutamente cosa si sta facendo, ma questa è generalmente una CATTIVA pratica. -2. RPM ci ha dato un suggerimento su ciò che manca. Si ricorderà che gli rpm conoscono il cosa e il come, ma non necessariamente il dove. Utilizziamo l'utilità `dnf` per cercare di capire il nome del pacchetto che fornisce la libreria mancante. Digita: +2. RPM ci ha dato un suggerimento su ciò che manca. Si ricorderà che gli rpm conoscono il cosa e il come, ma non necessariamente il dove. Utilizziamo l'utilità `dnf` per cercare di capire il nome del pacchetto che fornisce la libreria mancante. Digitare: ``` $ dnf whatprovides libmetalink.so.3 @@ -303,7 +342,7 @@ In questo esercizio si cercherà di installare il pacchetto `wget` (wget-*.rpm). Provide : libmetalink.so.3 ``` -3. Dall'output, dobbiamo scaricare il pacchetto `libmetalink` che fornisce la libreria mancante. In particolare, vogliamo la versione a 64 bit della libreria. Utilizziamo un'utilità separata (`dnf`) per trovare e scaricare il pacchetto per la nostra architettura demo a 64 bit (x86_64). Digita: +3. Dall'output, dobbiamo scaricare il pacchetto `libmetalink` che fornisce la libreria mancante. In particolare, vogliamo la versione a 64 bit della libreria. Utilizziamo un'utilità separata (`dnf`) per trovare e scaricare il pacchetto per la nostra architettura demo a 64 bit (x86_64). Digitate: ``` dnf download --arch x86_64 libmetalink @@ -311,13 +350,13 @@ In questo esercizio si cercherà di installare il pacchetto `wget` (wget-*.rpm). 4. A questo punto si dovrebbero avere almeno 2 pacchetti rpm nella directory di lavoro. Per confermarlo, utilizzare il comando `ls`. -5. Installare la dipendenza mancante di `libmetalink`. Digita: +5. Installare la dipendenza mancante di `libmetalink`. Digitare: ``` $ sudo rpm -ivh libmetalink-*.rpm ``` -6. Con la dipendenza ora installata, possiamo tornare al nostro obiettivo iniziale di installare il pacchetto `wget`. Digita: +6. Con la dipendenza ora installata, possiamo tornare al nostro obiettivo iniziale di installare il pacchetto `wget`. Digitare: ``` $ sudo rpm -ivh wget-*.rpm @@ -325,18 +364,19 @@ In questo esercizio si cercherà di installare il pacchetto `wget` (wget-*.rpm). !!! note "Nota" - RPM supporta le transazioni. Negli esercizi precedenti avremmo potuto eseguire una singola transazione rpm che includeva il pacchetto originale che volevamo installare e tutti i pacchetti e le librerie da cui dipende. Sarebbe stato sufficiente un singolo comando come quello riportato di seguito: + RPM supporta le transazioni. Negli esercizi precedenti, avremmo potuto eseguire una singola transazione rpm che includeva il pacchetto originale che volevamo installare e tutti i pacchetti e le librerie da cui dipendeva. Sarebbe stato sufficiente un singolo comando come quello riportato di seguito: + ``` $ rpm -Uvh wget-*.rpm libmetalink-*.rpm ``` -7. È il momento della verità. Provare a eseguire il programma `wget` senza alcuna opzione per verificare se è installato. Digita: +7. È il momento della verità. Provare a eseguire il programma `wget` senza alcuna opzione per verificare se è installato. Digitare: ``` $ wget ``` -8. Vediamo `wget` in azione. Usate `wget` per scaricare un file da Internet dalla riga di comando. Digita: +8. Vediamo `wget` in azione. Usate `wget` per scaricare un file da Internet dalla riga di comando. Digitare: ``` wget https://kernel.org @@ -350,7 +390,7 @@ In questo esercizio si cercherà di installare il pacchetto `wget` (wget-*.rpm). 11. Utilizzate `rpm` per visualizzare l'elenco di tutti i binari installati con il pacchetto `wget`. -12. È stato necessario installare il pacchetto `libmetalink` per poter installare `wget`. Provate a eseguire `libmetalink` dalla riga di comando. Digita: +12. È stato necessario installare il pacchetto `libmetalink` per poter installare `wget`. Provate a eseguire `libmetalink` dalla riga di comando. Digitare: ``` $ libmetalink @@ -379,11 +419,11 @@ In questo esercizio si cercherà di installare il pacchetto `wget` (wget-*.rpm). Disinstallare i pacchetti è altrettanto facile che installarli, grazie al gestore di pacchetti di Red Hat (RPM). -In questo esercizio si cercherà di usare `rpm` per disinstallare alcuni pacchetti dal sistema. + In questo esercizio si cercherà di usare `rpm` per disinstallare alcuni pacchetti dal sistema. #### Per disinstallare i pacchetti -1. Disinstallare il pacchetto `libmetalink` dal sistema. Digita: +1. Disinstallare il pacchetto `libmetalink` dal sistema. Digitare: ``` $ sudo rpm -e libmetalink @@ -394,7 +434,7 @@ In questo esercizio si cercherà di usare `rpm` per disinstallare alcuni pacchet Spiegare perché non è stato possibile rimuovere il pacchetto? -2. Il modo pulito e corretto di rimuovere i pacchetti utilizzando RPM è quello di rimuovere i pacchetti insieme alle loro dipendenze. Per rimuovere il pacchetto `libmetalink` dobbiamo rimuovere anche il pacchetto `wget` che dipende da esso. Digita: +2. Il modo pulito e corretto di rimuovere i pacchetti utilizzando RPM è quello di rimuovere i pacchetti insieme alle loro dipendenze. Per rimuovere il pacchetto `libmetalink` dobbiamo rimuovere anche il pacchetto `wget` che dipende da esso. Digitare: ``` $ sudo rpm -e libmetalink wget @@ -406,7 +446,7 @@ In questo esercizio si cercherà di usare `rpm` per disinstallare alcuni pacchet `$ sudo rpm -e --nodeps libmetalink` **L'opzione "nodeps" significa Nessuna dipendenza. Cioè, ignorare tutte le dipendenze. - **ii.** Quanto sopra è solo per mostrare come rimuovere forzatamente un pacchetto dal sistema. Può capitare di doverlo fare, ma in genere non è una buona pratica. + **ii.** Quanto sopra serve solo a mostrare come rimuovere forzatamente un pacchetto dal sistema. A volte è necessario farlo, ma in genere non è una buona pratica. **iii.** La rimozione forzata di un pacchetto "xyz" su cui si basa un altro pacchetto installato "abc" rende di fatto il pacchetto "abc" inutilizzabile o in qualche modo rotto. ## Esercizio 5 @@ -415,9 +455,9 @@ In questo esercizio si cercherà di usare `rpm` per disinstallare alcuni pacchet DNF è un gestore di pacchetti per distribuzioni Linux basate su RPM. È il successore della popolare utility YUM. DNF mantiene la compatibilità con YUM ed entrambe le utility condividono opzioni e sintassi della riga di comando molto simili. -DNF è uno dei tanti strumenti utilizzati per la gestione del software su sistemi basati su RPM come Rocky Linux. Rispetto a `rpm`, questi strumenti di livello superiore aiutano a semplificare l'installazione, la disinstallazione e l'interrogazione dei pacchetti. È importante notare che questi strumenti utilizzano la struttura sottostante fornita dal sistema RPM. Per questo motivo è utile capire prima come usare RPM stesso. +DNF è uno dei tanti strumenti per la gestione del software basato su RPM, come Rocky Linux. Rispetto a `rpm`, questi strumenti di livello superiore aiutano a semplificare l'installazione, la disinstallazione e l'interrogazione dei pacchetti. È importante notare che questi strumenti utilizzano la struttura sottostante fornita dal sistema RPM. Per questo motivo è utile capire come utilizzare RPM. -DNF (e altri strumenti simili) agisce come una sorta di involucro attorno a RPM e fornisce funzionalità aggiuntive non offerte da RPM. DNF sa come gestire le dipendenze di pacchetti e librerie e sa anche come utilizzare automaticamente i repository configurati per risolvere la maggior parte dei problemi. +DNF (e altri strumenti simili) agisce come una sorta di involucro attorno a RPM e fornisce funzionalità aggiuntive non offerte da RPM. DNF sa come gestire le dipendenze di pacchetti e librerie e sa anche come utilizzare i repository configurati per risolvere automaticamente la maggior parte dei problemi. Le opzioni più comuni utilizzate con l'utilità `dnf` sono: @@ -460,9 +500,9 @@ Le opzioni più comuni utilizzate con l'utilità `dnf` sono: #### Per utilizzare `dnf` per l'installazione dei pacchetti -Supponendo che abbiate già disinstallato l'utilità `wget` da un esercizio, nei passi seguenti useremo DNF per installare il pacchetto. Il processo di 2-3 passi che abbiamo richiesto in precedenza quando abbiamo installato `wget` tramite `rpm` dovrebbe essere ridotto a un solo passo utilizzando `dnf`. `dnf` si occuperà tranquillamente di risolvere le dipendenze. +Supponendo che abbiate già disinstallato l'utilità `wget` da un esercizio, nei passi seguenti useremo DNF per installare il pacchetto. Il processo di 2-3 passi che abbiamo richiesto in precedenza quando abbiamo installato `wget` tramite `rpm` dovrebbe essere ridotto a un solo passo utilizzando `dnf`. `dnf` risolverà tranquillamente qualsiasi dipendenza. -1. Per prima cosa, assicuriamoci che `wget` e `libmetalink` siano disinstallati dal sistema. Digita: +1. Per prima cosa, assicuriamoci che `wget` e `libmetalink` siano disinstallati dal sistema. Digitare: ``` $ sudo rpm -e wget libmetalink @@ -470,7 +510,7 @@ Supponendo che abbiate già disinstallato l'utilità `wget` da un esercizio, nei Dopo la rimozione, se si prova a eseguire `wget` dalla CLI, viene visualizzato un messaggio come *wget: command not found* -2. Ora usate dnf per installare `wget`. Digita: +2. Ora usate dnf per installare `wget`. Digitare: ``` $ sudo dnf -y install wget @@ -486,19 +526,19 @@ Supponendo che abbiate già disinstallato l'utilità `wget` da un esercizio, nei L'opzione "-y" usata nel comando precedente sopprime il prompt "[y/N]" per confermare l'azione che `dnf` sta per eseguire. Invece, assume automaticamente "yes" (y) per qualsiasi azione. -3. DNF offre un'opzione "Environment Group" che semplifica l'aggiunta di un nuovo set di funzioni a un sistema. Per aggiungere la funzionalità, normalmente si dovrebbero installare singolarmente alcuni pacchetti, ma usando `dnf` è sufficiente conoscere il nome o la descrizione della funzionalità desiderata. Usare `dnf` per visualizzare un elenco di tutti i gruppi disponibili. Digita: +3. DNF offre un'opzione " Environment Group" che semplifica l'aggiunta di un nuovo set di funzioni a un sistema. Per aggiungere la funzionalità, in genere si dovrebbero installare alcuni pacchetti singolarmente, ma usando `dnf`, tutto ciò che occorre sapere è il nome o la descrizione della funzionalità desiderata. Usare `dnf` per visualizzare un elenco di tutti i gruppi disponibili. Digitare: ``` $ dnf group list ``` -4. Siamo interessati al gruppo/caratteristica "Development Tools". Cerchiamo di ottenere maggiori informazioni su questo gruppo. Digita: +4. Siamo interessati al gruppo/caratteristica "Development Tools". Cerchiamo di ottenere maggiori informazioni su questo gruppo. Digitare: ``` $ dnf group info "Development Tools" ``` -5. In seguito, avremo bisogno di alcuni programmi del gruppo "Development Tools". Installare il gruppo "Development Tools" utilizzando `dnf`: +5. In seguito, avremo bisogno di alcuni programmi del gruppo " Development Tools". Installare il gruppo "Development Tools" utilizzando `dnf`: ``` $ sudo dnf -y group install "Development Tools" @@ -507,19 +547,19 @@ Supponendo che abbiate già disinstallato l'utilità `wget` da un esercizio, nei #### Per usare `dnf` per disinstallare i pacchetti -1. Per usare `dnf` per disinstallare il pacchetto `wget`, digitate: +1. Per usare `dnf` per disinstallare il pacchetto `wget`, digitare: ``` $ sudo dnf -y remove wget ``` -2. Usate `dnf` per assicurarsi che il pacchetto sia stato effettivamente rimosso dal sistema. Digita: +2. Usate `dnf` per assicurarsi che il pacchetto sia stato effettivamente rimosso dal sistema. Digitare: ``` $ sudo dnf -y remove wget ``` -3. Provare a utilizzare/eseguire `wget`. Digita: +3. Provare a utilizzare/eseguire `wget`. Digitare: ``` $ wget @@ -527,7 +567,7 @@ Supponendo che abbiate già disinstallato l'utilità `wget` da un esercizio, nei #### Per utilizzare `dnf` per l'aggiornamento dei pacchetti -DNF può essere usato per verificare e installare l'ultima versione di singoli pacchetti disponibili nei repository. Può anche essere usato per installare versioni specifiche di pacchetti. +DNF può verificare e installare l'ultima versione dei singoli pacchetti disponibili nei repository. Può anche essere usato per installare versioni specifiche di pacchetti. 1. Usate l'opzione list con `dnf` per visualizzare tutte le versioni del programma `wget` disponibili per il vostro sistema. Digita @@ -541,13 +581,13 @@ DNF può essere usato per verificare e installare l'ultima versione di singoli p $ dnf check-update wget ``` -3. Ora elenca tutte le versioni disponibili del pacchetto kernel per il vostro sistema. Digita: +3. Ora elenca tutte le versioni disponibili del pacchetto kernel per il vostro sistema. Digitare: ``` $ sudo dnf list kernel ``` -4. Ora controllate se sono disponibili pacchetti aggiornati per il pacchetto kernel installato. Digita: +4. Ora controllate se sono disponibili pacchetti aggiornati per il pacchetto kernel installato. Digitare: ``` $ dnf check-update kernel @@ -601,7 +641,7 @@ I seguenti esercizi si basano sul codice sorgente del venerabile progetto Hello. 1. Passare alla cartella del computer locale in cui è stato scaricato il codice sorgente di hello. -2. Decomprimere (un-tar) il tarball usando il programma `tar`. Digita: +2. Decomprimere (un-tar) il tarball usando il programma `tar`. Digitare: ``` $ tar -xvzf hello-2.12.tar.gz @@ -617,7 +657,7 @@ I seguenti esercizi si basano sul codice sorgente del venerabile progetto Hello. Una nuova cartella denominata hello-2.12 dovrebbe essere stata creata durante la decompressione. -4. Passate a quella directory ed elencatene il contenuto. Digita: +4. Passate a quella directory ed elencatene il contenuto. Digitare: ``` $ cd hello-2.12 ; ls @@ -625,7 +665,7 @@ I seguenti esercizi si basano sul codice sorgente del venerabile progetto Hello. 5. È sempre buona norma esaminare tutte le istruzioni di installazione speciali che possono essere fornite con il codice sorgente. Questi file hanno solitamente nomi come: INSTALL, README e così via. - Utilizzare un pager per aprire il file INSTALL e leggerlo. Digita: + Utilizzare un pager per aprire il file INSTALL e leggerlo. Digitare: ``` $ less INSTALL ``` @@ -634,7 +674,7 @@ I seguenti esercizi si basano sul codice sorgente del venerabile progetto Hello. #### Per configurare il pacchetto -La maggior parte delle applicazioni ha funzioni che possono essere attivate o disattivate dall'utente. Questo è uno dei vantaggi di avere accesso al codice sorgente e di poterlo installare. L'utente ha il controllo sulle caratteristiche configurabili dell'applicazione; questo è in contrasto con l'accettazione di tutto ciò che un gestore di pacchetti installa da binari precompilati. +La maggior parte delle applicazioni ha funzioni che possono essere attivate o disattivate dall'utente. Questo è uno dei vantaggi dell'accesso al codice sorgente e dell'installazione dallo stesso. L'utente ha il controllo sulle caratteristiche configurabili dell'applicazione; questo è in contrasto con l'accettazione di tutto ciò che un gestore di pacchetti installa da binari precompilati. Lo script che di solito permette di configurare il software si chiama "configure" @@ -650,7 +690,7 @@ Lo script che di solito permette di configurare il software si chiama "configure Dall'output del comando, cosa fa l'opzione "--prefix"? -3. Se si è soddisfatti delle opzioni predefinite offerte dallo script di configurazione. Digita: +3. Se si è soddisfatti delle opzioni predefinite offerte dallo script di configurazione. Digitare: ``` $ ./configure @@ -670,7 +710,7 @@ Lo script che di solito permette di configurare il software si chiama "configure L'applicazione hello verrà realizzata nei seguenti passaggi. A questo punto sono utili alcuni dei programmi del gruppo Development Tools installati in precedenza con DNF. -1. Usate il comando make per compilare il pacchetto dopo aver eseguito lo script "configure". Digita: +1. Usate il comando make per compilare il pacchetto dopo aver eseguito lo script "configure". Digitate: ``` $ make @@ -688,7 +728,7 @@ L'applicazione hello verrà realizzata nei seguenti passaggi. A questo punto son Tra le altre operazioni di pulizia, la fase finale dell'installazione prevede anche la copia dei file binari e delle librerie delle applicazioni nelle cartelle corrette. -1. Per installare l'applicazione hello, eseguire il comando make install. Digita: +1. Per installare l'applicazione hello, eseguire il comando make install. Digitare: ``` $ sudo make install @@ -697,19 +737,19 @@ Tra le altre operazioni di pulizia, la fase finale dell'installazione prevede an #### Per eseguire il programma hello -1. Usate il comando `whereis` per vedere dove si trova il programma `hello` sul vostro sistema. Digita: +1. Usate il comando `whereis` per vedere dove si trova il programma `hello` sul vostro sistema. Digitare: ``` $ whereis hello ``` -2. Provate a eseguire l'applicazione `hello` per vedere cosa fa. Digita: +2. Provate a eseguire l'applicazione `hello` per vedere cosa fa. Digitare: ``` $ hello ``` 3. Eseguite di nuovo `hello` con l'opzione `--help` per vedere le altre cose che può fare. -4. Utilizzando `sudo`, eseguire nuovamente `hello` come superutente. Digita: +4. Utilizzando `sudo`, eseguire nuovamente `hello` come superutente. Digitare: ``` $ sudo hello ``` diff --git a/docs/release_notes/8_6.uk.md b/docs/release_notes/8_6.uk.md new file mode 100644 index 0000000000..906318e485 --- /dev/null +++ b/docs/release_notes/8_6.uk.md @@ -0,0 +1,83 @@ +--- +title: Реліз 8.6 +tags: + - 8.6 + - 8.6 реліз + - Rocky 8.6 +--- + +# Реліз ноти для Rocky Linux 8.6 + +## Основні зміни + +Щоб отримати повний перелік основних змін, перегляньте попередній список [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.6_release_notes/overview#overview-major-changes). + +Нижче наведено деякі основні моменти. + +### Безпека + + * `fapolicyd`: оновлено до версії 1.1. Включає можливість використання каталогів `/rules.d` і `/trust.d`, можливість використання сценарію `fagenrules` і нові параметри для команди `fapolicyd-cli`. + * Сервер OpenSSH тепер підтримує вставні конфігурації. Це означає, що ви можете використовувати директиву `Include` у `sshd_config` подібно до того, що зараз доступно для `ssh_config`. + * Пакет `pcsc-lite`: оновлено до попередньої версії 1.9.5 із новими вдосконаленнями та виправленнями помилок. + * SELinux: тепер ви можете перевірити версії встановлених модулів політики за допомогою параметра `--checksum` з командою `semodule`. + * Пакунки SCAP Security Guide (SSG): оновлено до версії 0.1.60, а пакети OpenSCAP оновлено до версії 1.3.6. + +### Веб і програмування + +Нові модулі доступні для: + +* PHP 8.0 +* Perl 5.32 + +### Управління ідентифікацією + +* Ролі та модулі `ansible-freeipa` доступні в Ansible Automation Hub. + +### Послуги інфраструктури + +* `bind9.16` випущений як альтернатива звичайним пакетам `bind` із розширеним набором функцій. Додаткову інформацію про це див. у [інфраструктурних службах](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/8.6_release_notes#enhancement_infrastructure-services). + +### Ansible + +Тепер ви можете встановити `ansible-core` зі сховища Rocky Linux Appstream. Якщо у вас уже встановлено `ansible` з іншого джерела, вам потрібно буде видалити його, щоб мати можливість оновити ansible. + +## Нові модулі + +* container-tools:4.0 +* eclipse:rhel8 +* log4j:2 +* perl:5.32 +* php:8.0 + +## Компілятори та засоби розробки + +Основні моменти включають: + +* GCC Toolset 11 +* LLVM Toolset 13.0.1 +* Rust Toolset 1.58.1 +* Go Toolset 1.17.7 + +Щоб отримати докладнішу інформацію про останні зміни, перегляньте попередній список [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.6_release_notes/new-features#enhancement_compilers-and-development -tools). + +## Найшвидші дзеркала + +Під час інсталяції в мережі плагін FastestMirror DNF використовуватиме список дзеркал, на яких розміщено вміст BaseOS із MirrorList, евристично відсортований за часом, потрібним для відкриття з’єднання з дзеркалами на порту відповідного протоколу ([Вихідний код](https: //github.com/rpm-software-management/yum-utils/blob/master/plugins/fastestmirror/fastestmirror.py)). + +Ця зміна означає, що URL-адреса репозиторію більше не потрібна, якщо використовується носій лише для завантаження та виконується мережева інсталяція Rocky (та іншого Enterprise) Linux! Це сталося з Rocky 8.5, але варто згадати ще раз. + +## Оновлення з Rocky Linux 8.5 + +Просто запустіть `sudo dnf -y upgrade`. + +## Відомі проблеми + +* `kdump`: наразі під час використання будь-якого інтерактивного методу інсталяції ключ `kdump` потрібно вводити останнім. Це включає будь-які плани щодо шифрування диска. У цих випадках, якщо ви плануєте вимкнути `kdump`, відформатуйте диск із шифруванням, перш ніж вимикати його. +* Мінімальний ISO: Виконуючи інсталяцію з мінімальним ISO, будьте готові до відсутності пакетів, особливо з репозиторію AppStream (rsyslog, policycoreutils-python-utils тощо). Цього й слід очікувати. +* KDE та [ця помилка ядра](https://bugzilla.redhat.com/show_bug.cgi?id=2082719): якщо ви використовуєте KDE на 8.5 та оновлюєтеся до 8.6, це дуже ймовірно що у вас виникнуть проблеми. Згадана помилка стосується неможливості розблокувати екран після блокування. Обхідним шляхом є завантаження старішого ядра в GRUB під час запуску. + +Як і в будь-якому випуску, є проблеми, про які вже відомо. Ви можете переглянути поточний перелік проблем у верхній частині [тут](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.6_release_notes/known-issues). + +### Повідомлення про помилки + +Будь ласка, повідомляйте про будь-які виявлені помилки в [Відстеження помилок Rocky Linux](https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким способом на наших [форумах](https://forums.rockylinux.org), [Mattermost](https://chat. rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/ r/rockylinux), [Списки розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь!