revision Antidote des chapitres 1 à 4

This commit is contained in:
François Pelletier 2021-07-11 22:42:06 -04:00
parent a3f7e35b26
commit c840c3e2e4
4 changed files with 70 additions and 70 deletions

View file

@ -2,54 +2,54 @@
## Utiliser le langage de ligne de commande Bash
Mon outil préféré pour scripter des tâches que j'ai à effectuer de façon récurrente est [Bash](https://fr.wikipedia.org/wiki/Bourne-Again_shell). C'est un langage de script qui est principalement utilisé sur les systèmes d'exploitation GNU/Linux et macOS.
Nous préférons Bash pour automatiser des tâches à effectuer de façon récurrente[](https://fr.wikipedia.org/wiki/Bourne-Again_shell). C'est un langage de script qui est principalement utilisé sur les systèmes d'exploitation GNU/Linux et macOS.
Il est aussi possible d'installer [MSYS2](https://www.msys2.org/) sur Windows pour obtenir accès à une multitude de logiciels créés initialement pour GNU/Linux, dont Bash.
Il est aussi possible d'installer [MSYS2](https://www.msys2.org/) sur Windows. Cet outil donne accès à une multitude de logiciels créés initialement pour GNU/Linux, dont Bash.
Parmi les fonctionnalités les plus fréquemment utilisées du langage de script Bash, on retrouve:
Voici des usages fréquents du langage de script Bash:
- Appeler des logiciels
- La manipulation de fichiers
- Les tubes (*pipes* en anglais),
- Les boucles
Allons plus en détail sur chacune d'entre elles avec des exemples!
Allons plus en détail sur chacune d'entre elles avec des exemples !
### L'appel de logiciels
Le langage de script Bash permet d'interagir avec tous les logiciels présents sur votre environnement de travail. Il permet surtout de créer des séquences de tâches exécutées les unes après les autres en suivant des conditions spécifiques. Bref, c'est un moyen de faire travailler notre ordinateur à notre place!
Notre système est composé d'un ensemble de logiciels plus ou moins indépendants. Le langage Bash permet d'interagir avec eux. Il permet surtout de créer des séquences de tâches exécutées les unes après les autres en suivant des conditions spécifiques. Bref, c'est un moyen de faire travailler notre ordinateur pour nous !
Un exemple d'appel de logiciels que j'utilise souvent, c'est un court programme qui est écrit dans le langage Ruby qui permet de convertir récursivement en minuscules des noms des répertoires et des fichiers. Il est très utile pour s'assurer que les fichiers musicaux que je souhaite mettre sur mon téléphone Android soient bien reconnus.
Un exemple d'appel de logiciels que nous utilisons souvent, c'est un court programme qui est écrit dans le langage Ruby qui permet de convertir récursivement en minuscules des noms des répertoires et des fichiers. Il est employé pour s'assurer que les fichiers musicaux à déplacer sur le téléphone Android sont bien reconnus.
### La manipulation de fichiers
Au lieu d'utiliser des fichiers complexes tels que ceux produits par les suites bureautiques tel que Microsoft Office, les environnements en ligne de commande préfèrent les fichiers simples au format texte. Ils excellent dans la manipulation de ceux-ci.
Au lieu d'utiliser des fichiers binaires tels que ceux produits par les suites bureautiques tels que Microsoft Office, les environnements en ligne de commande préfèrent les fichiers simples au format texte. Ils excellent dans la manipulation de ceux-ci.
Souvent, les logiciels conçus pour la ligne de commande ont une interface très simple: ils reçoivent du texte, souvent par l'intermédiaire d'un fichier, et vont retourner du texte, souvent aussi dans un fichier. Dans les autres cas, le texte va voyager d'un programme à l'autre via les tubes.
Souvent, les logiciels conçus pour la ligne de commande sont interfacés très simplement : ils reçoivent du texte, souvent d'un fichier, et retourneront du texte dans un fichier. Dans les autres cas, le texte voyage d'un programme à l'autre par les tubes ou parvenir à la sortie standard (ce qui est affiché à l'écran).
Un exemple fréquent de manipulation de fichiers est la concaténation de fichiers pdf. On veut fusionner plusieurs fichiers ensemble en un seul document. Le logiciel pdftk permet de faire cette opération.
Un exemple fréquent de manipulation de fichiers: fusionner des fichiers PDF en un seul document. Le logiciel *pdftk* permet d'arriver à ce résultat.
### Les tubes
Les tubes permettent d'utiliser la sortie d'un programme directement dans l'entrée d'un autre programme, sans devoir écrire un fichier. Ils sont représentés par la barre verticale `|`.
Les tubes permettent d'utiliser la sortie d'un programme directement dans l'entrée d'un autre programme, sans devoir écrire un fichier. Ils sont représentés par la barre verticale`|`.
Un exemple fréquent que j'utilise est pour effectuer la recherche de fichiers.
Un exemple fréquent que nous utilisons est pour effectuer la recherche de fichiers.
Le logiciel le plus courant sur GNU/Linux qui permet de listes tous les fichiers d'un répertoire se nomme `find`. Sa tâche est de listes tous les fichiers qui répondent à certaines conditions, par exemple une extension précise comme `.pdf` pour les fichiers PDF.
Le logiciel le plus courant sur GNU/Linux qui permet de lister tous les fichiers d'un répertoire se nomme`find`. Il peut répondre à certaines conditions, par exemple une extension de fichier précise comme *.pdf* pour les fichiers PDF.
Si je veux filtrer plus précisément cette liste de fichiers avec d'autres attributs, je vais utilise le logiciel `grep` qui filtre le texte qu'on lui fournis en entrée selon une **expression régulière**, qui est une syntaxe fréquemment utilisée dans la recherche de texte.
Si nous voulons filtrer plus précisément cette liste de fichiers avec d'autres attributs, nous utiliserons le logiciel grep. Ce dernier utilise une **expression régulière**, une syntaxe fréquemment utilisée dans la recherche de texte.
### Les boucles
Les boucles sont des mécanismes simples et puissants qui permettent de répéter des tâches identiques ou très similaires pour de multiples entrées. Par exemple, si vous voulez produire un document quasi identique pour chaque jour de la semaine, vous pouvez le faire de cette façon. L'élément de code qui permet de répéter du code un nombre déterminé de fois est nommé `for`. Il existe aussi les boucles `while` et `until` qui sont basées sur une condition. Celles-ci sont utiles lorsque le nombre de répétitions n'est pas connu à l'avance.
Les boucles permettent de contrôler l'exécution répérée d'une section de programme. Celles-ci permettent de répéter des tâches identiques ou très similaires pour de multiples valeurs en entrée. Par exemple, si nous voulons produire un document quasi identique pour chaque jour de la semaine, c'est possible. L'élément de code qui permet de répéter du code un nombre déterminé de fois est nommé *for*. Il existe aussi les boucles *while* et *until* qui sont basées sur une condition. Elles sont utilisées lorsque le nombre de répétitions n'est pas connu à l'avance.
### Un exemple pratique
Pour créer ce guide, j'utilise le langage [Markdown](https://www.markdownguide.org/) ainsi que le langage [\LaTeX](https://www.latex-project.org/), deux systèmes de conception de documents. Le premier est davantage utilisé pour le contenu texte et le code informatique, alors que le second est davantage pour la mise en page et les graphiques. Comme je dois souvent convertir les fichier Markdown en \LaTeX, puis en PDF pour avoir un aperçu du document, alors j'utilise Bash et les logiciel `pandoc` et `pdflatex`.
Pour créer ce guide, nous utilisons le langage [Markdown](https://www.markdownguide.org/) ainsi que le langage [\LaTeX](https://www.latex-project.org/), deux systèmes de conception de documents. Le premier est davantage utilisé pour le contenu texte et le code informatique; le second, pour la mise en page et les graphiques. Comme nous devons souvent convertir les fichiers Markdown au format \LaTeX, puis en PDF pour avoir un aperçu du document, alors nous utilisons Bash et les logiciels *Pandoc* et *pdflatex*.
Ce guide comprend 3 sections composées chacunes de 4 chapitres. Pour chaque chapitre, j'ai un fichier Markdown distinct. Je veux convertir chacun d'eux vers le format \LaTeX. Je vais donc faire une boucle pour chacune des sections, puis à l'intérieur de celle-ci, faire un boucle pour chacun des chapitres. Mon code sera donc exécuté 12 fois.
Ce guide comprend 3 sections composées chacune de 4 chapitres. Pour chaque chapitre, il y a un fichier Markdown distinct. Nous voulons convertir chacun d'eux vers le format \LaTeX. Nous allons donc itérer pour chacune des sections, puis à l'intérieur de celle-ci, pour chacun des chapitres. Notre code sera donc exécuté 12 fois.
Ensuite, j'utilise le logiciel `pdflatex` pour créer le document PDF que vous êtes actuellement en train de feuilleter.
Ensuite, nous utilisons le logiciel *pdflatex* pour générer ce document PDF.
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
mkdir -p ./chapitres
@ -65,4 +65,4 @@ done
pdflatex --shell-escape -synctex=1 -interaction=nonstopmode main.tex
```
Note: [Pandoc](https://pandoc.org/) est un logiciel vraiment utile pour les créateurs de contenu, il permet de tout faire en Markdown (qui est facile à maîtriser), puis de publier sous une multitude de formats. Je vous conseille fortement d'y jeter un oeil.
Note : [Pandoc](https://pandoc.org/) est à considérer pour les créatrices et créateurs de contenu, il permet de produire ses textes avec la syntaxe Markdown, puis de publier sous une multitude de formats. Nous conseillons fortement d'y jeter un oeil.

View file

@ -1,16 +1,16 @@
# Programmer l'exécution de scripts
Nous avons maintenant créé le script parfait qui exécute les tâches ennuyantes que nous faisions auparavant manuellement. Maintenant, puisque nous planifions partir en vacances, il faut dire à notre système quand exécuter le script et à quelle fréquence. C'est ce que `cron` permet de faire sur GNU/Linux et macOS. Sur Windows, c'est le planificateur de tâches `schtasks.exe`.
Nous avons créé le script parfait qui automatise les tâches monotones faites auparavant manuellement. Maintenant, puisque nous prévoyons partir en vacances, il faut dire à notre système quand exécuter celui-ci, et à quelle fréquence ! C'est ce que *cron* permet de faire sur GNU/Linux et macOS. Sur Windows, c'est le Planificateur de tâches *schtasks.exe*.
Notez qu'il existe aussi des applications graphiques pour chacun de ces systèmes. Mais, vous êtes ici pour voir un peu de code non ?
Notez qu'il existe aussi des applications graphiques pour chacun de ces systèmes. Mais, nous sommes ici pour voir un peu de code non ?
## cron sur Linux et macOS
## Cron sur Linux et macOS
Le logiciel cron est inclus par défaut sur la majorité des systèmes macOS et GNU/Linux. Il n'y a donc rien à faire pour l'obtenir. Cependant, il est possible qu'il nécessite des accès additionnels pour bien fonctionner sur macOS.
La majorité des systèmes macOS et GNU/Linux incluent le logiciel *cron*. Il n'y a donc rien à faire pour l'obtenir. Cependant, il est possible qu'il nécessite des accès additionnels pour bien fonctionner sur macOS.
Les instructions pour cron sont inscrites dans un fichier spécial au format `crontab` dans le répertoire `/etc/cron.d`.
Les instructions pour *cron* sont inscrites dans un fichier spécial `crontab` dans le répertoire`/etc/cron.d`.
Le format des instructions dans un fichier `crontab` est défini comme dans cette illustration:
Leur format est défini dans cette illustration :
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
* * * * * * script_a_executer.sh
@ -23,7 +23,7 @@ Le format des instructions dans un fichier `crontab` est défini comme dans cett
+------------- minutes (0-59)
```
Par exemple, pour exécuter un script `cocktail_aleatoire.sh` qui nous envoie une recette de cocktail au hasard à 16h30 chaque vendredi, on configure comme suit.
Par exemple, pour exécuter un script `cocktail_aleatoire.sh` qui nous envoie une recette de cocktail au hasard à 16 h 30 chaque vendredi, nous le configurons comme suit.
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
30 16 * * 5 jevalideca /home/jevalideca/cocktail_aleatoire.sh
@ -31,9 +31,9 @@ Par exemple, pour exécuter un script `cocktail_aleatoire.sh` qui nous envoie un
## Planificateur de tâches sur Windows
Sur Windows, l'ensemble des tâches peuvent être planifiées depuis le Planificateur de tâches. En exécutant une commande PowerShell, il est possible de configurer une tâche similaire à la précédente.
Sur Windows, l'ensemble des tâches sont planifiées depuis le Planificateur de tâches. En exécutant une commande PowerShell, il est possible de configurer une tâche semblable à la précédente.
À partir d'une session PowerShell, la séquence de commandes suivante configurera l'exécution du programme `cocktail_aleatoire.bat` à 16:30 chaque vendredi.
À partir d'une session PowerShell, la séquence de commandes suivante configurera l'exécution du programme `cocktail_aleatoire.bat` à 16 h 30 chaque vendredi.
```{.powershell linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
$action = New-ScheduledTaskAction -Execute 'C:\Users\jevalideca\scripts\cocktail_aleatoire.bat'
@ -43,10 +43,10 @@ Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "cocktail-ale
Nous pouvons valider le résultat dans la fenêtre du Planificateur de tâches.
![Capture d'écran du planificateur de tâches](capture_schtasks_cocktail.png)
![Capture d'écran du Planificateur de tâches](capture_schtasks_cocktail.png)
## Conclusion
J'ai présenté deux techniques qui permettent de scripter et de configurer l'exécution automatique de tâches.
Nous avons vu deux techniques qui permettent de programmer et de configurer l'exécution automatique de tâches.
Il est maintenant possible de faire travailler ton ordinateur durant tes vacances !
Il est maintenant possible de faire travailler notre ordinateur durant nos vacances !

View file

@ -1,24 +1,24 @@
# Sauvegarder ses données
## Sauvegarder son poste de travail: rsync
## Sauvegarder son poste de travail : rsync
Pour sauvegarder l'ensemble du contenu important de mon poste de travail, j'utilise un disque dur externe. C'est une méthode abordable qui respecte un des principes d'une bonne sauvegarde: être hors-ligne.
Le contenu important de notre poste de travail est sauvegardé sur un disque dur externe. C'est une méthode abordable qui respecte un des principes d'une bonne sauvegarde : être hors-ligne.
Pour transférer mes fichiers vers ce disque, j'utilise un logiciel en ligne de commande qui fait exactement ça, des copies. C'est `rsync` (pour Remote Sync). Il est disponible sur macOS et sur GNU/Linux sans installation additionnelle.
Pour transférer nos fichiers vers ce disque, nous utilison un logiciel en ligne de commande qui fait exactement ça, des copies. C'est `rsync` (pour Remote Sync). Il est disponible sur macOS et sur GNU/Linux sans installation additionnelle.
### Installation sur Windows
Sur Windows, si vous avez installé MSYS2 que j'ai présenté au chapitre 1, alors pour obtenir rsync, il suffit de l'installer avec la commande suivante:
Puisque nous avons installé MSYS2 au chapitre 1, alors, il suffit de l'installer avec la commande suivante :
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
pacman -Syu rsync
```
Note: Dans MSYS2, les répertoires sont représentés à la manière de Linux. Donc, le disque `C:\` se situe plutôt dans `/c/`
Note : Dans MSYS2, les répertoires sont représentés à la manière de Linux. Donc, le disque `C:\` se situe plutôt dans `/c/`
### La seule commande à retenir
Comme la majorité des logiciels provenant du monde GNU/Linux, rsync possède de nombreuses options. Cependant pour notre besoin, une seule commande est à retenir. Elle s'écrit comme suit:
Comme la majorité des logiciels provenant du monde GNU/Linux, *rsync* possède de nombreuses options. Cependant pour notre besoin, une seule commande est à retenir. Elle s'écrit comme suit :
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
rsync -av \
@ -28,44 +28,44 @@ rsync -av \
/destination/mondossier
```
Voici le détail des options:
Voici le détail des options :
- `-av` signifie archive verbose. C'est à dire que nous effectuons une archive et que nous voulons que le logiciel affiche toutes les opérations effectuées.
- `--progress` signifie d'afficher l'état d'avancement de la synchronisation.
- `--delete` signifie de supprimer les fichiers sur la destination qui n'existent plus sur la source. Ceci nous empêche de conserver de vieux fichiers qui ont été supprimé depuis la dernière sauvegarde. Si vous effectuez une sauvegarde automatisée, je vous conseille de supprimer cette option et de refaire une exécution manuelle de temps en temps, en prenant soin de tester l'exécution comme suit.
- L'option *-av* signifie archive verbeuse. C'est-à-dire que nous effectuons une archive et que nous voulons que le logiciel affiche toutes les opérations effectuées.
- L'interrupteur *--progress* signifie d'afficher l'état d'avancement.
- L'interrupteur *--delete* signifie de supprimer les fichiers sur la destination qui n'existent plus sur la source. Ceci nous empêche de conserver de vieux fichiers qui ont été supprimés depuis la dernière sauvegarde. Si nous effectuons une sauvegarde programmée à l'avance, nous conseillons de supprimer cette option et de refaire une exécution manuelle de temps en temps, en prenant soin de tester l'exécution comme suit.
### Tester avant d'exécuter
rsync est un outil puissant et rapide qui ne pardonne pas les erreurs. Un conseil d'ami: toujours tester ses commandes rsync avec une exécution d'essai via l'option --dry-run, que l'on ajoute à la commande.
*Rsync* est un outil puissant et rapide qui ne pardonne pas les erreurs. Un conseil d'ami : toujours tester ses commandes rsync avec une exécution d'essai via l'option --dry-run, ajoutée à la commande.
## Sauvegarder son contenu: Nextcloud
## Sauvegarder son contenu : Nextcloud
Pour garder des copies de sauvegarde de tous mes projets en cours et de mes contenus pour le web, j'utilise Nextcloud, qui est installé sur mon serveur en autohébergement.
Pour garder des copies de sauvegarde de tous nos projets en cours et de nos contenus pour le web, nous utilisons Nextcloud, qui est installé sur notre serveur en auto-hébergement.
![Capture d'écran de Nextcloud Fichiers](Images/nextcloud_fichiers_jevalideca.png)
Avec Nextcloud, l'avantage, c'est que j'ai une copie sur chacun de mes ordinateurs qui se garde synchronisée automatiquement.
Avec Nextcloud, l'avantage, c'est que nous avons une copie sur chacun de nos ordinateurs qui se garde synchronisée automatiquement.
![Capture d'écran du client Nextcloud local](Images/nextcloud_local_jevalideca.png)
De plus, le serveur permet de gérer les versions multiples des fichiers. Ce qui permet de réparer les erreurs de manipulation en plus de me protéger contre les incidents matériels.
De plus, le serveur permet de gérer les versions multiples des fichiers. Ce qui permet de réparer les erreurs de manipulation en plus de nous protéger contre les incidents physiques.
![Capture d'écran du panneau des versions de Nextcloud Fichiers](Images/nextcloud_fichiers_versions_jevalideca.png)
![Capture d'écran du panneau des versions dans Nextcloud Fichiers](Images/nextcloud_fichiers_versions_jevalideca.png)
J'ajoute à cela le fait que mon répertoire local de Nextcloud est aussi sauvegardé sur mon disque externe avec rsync, tel que je l'ai présenté précédemment.
Nous ajoutons à cela le fait que notre répertoire local de Nextcloud est aussi sauvegardé sur notre disque externe avec rsync, tel que présenté précédemment.
## Code et fichiers texte: git
## Code et fichiers texte : git
Les fichiers qui changent rapidement, tel que le code, doivent avoir leur propre mécanisme de sauvegarde qui permet des retours arrières illimités, ainsi qu'une gestion des versions. Pour ce faire, on utilise un système qui est maintenant omniprésent chez les développeurs: git.
Les fichiers qui changent rapidement, tels que ceux contenant du code, doivent avoir leur propre mécanisme de sauvegarde qui permet des retours arrière illimités, ainsi qu'une gestion des versions. Pour ce faire, nous utilisons un système qui est maintenant omniprésent chez les développeurs et développeuses : *git*.
Ce logiciel fonctionne de manière autonome, mais peut être utilisé comme mécanisme de sauvegarde en mode client et serveur. Du côté serveur, les services GitHub et GitLab sont les plus populaires. Mais, si comme moi vous êtes tentés par l'autohébergement, je recommande le logiciel [Gitea](https://gitea.io).
Ce logiciel fonctionne de manière autonome, mais peut être utilisé comme mécanisme de sauvegarde en mode client et serveur. Du côté serveur, les services GitHub et GitLab sont les plus populaires. Mais, pour ceux tentés par l'auto-hébergement, nos recommandons le logiciel [Gitea](https://gitea.io).
Les données qui sont communiquées à travers Git sont chiffrées et signées. Donc à chaque fois qu'une transaction a lieu entre un client et un serveur, il y a une certitude de l'intégrité des données. Git est donc en soi un système de sauvegarde très performant.
Les données qui sont communiquées à travers *git* sont chiffrées et signées. Donc à chaque fois qu'une transaction a lieu entre un client et un serveur, il y a une certitude de l'intégrité des données. Donc, *git* est un système de sauvegarde très performant.
![Création d'un répertoire géré avec git](git_nouveau_repertoire.png)
## Serveurs et site web: Borg
## Serveurs et site web : Borg
[Borg](https://www.borgbackup.org/) est un logiciel de gestion de sauvegarde qui est spécialisé dans la sauvegarde avec cryptographie. Si vous choisissez de sauvegarder vos données sur un service infonuagique, il est **très fortement recommandé** de crypter vos données avant l'envoi.
[Borg](https://www.borgbackup.org/) est un logiciel de gestion de sauvegarde qui est spécialisé dans la sauvegarde avec cryptographie. Si nous choisissons de sauvegarder nos données sur un service infonuagique, il est **très fortement recommandé** de les crypter avant l'envoi.
Borg est basé sur rsync et offre des fonctionnalités spécifiques tel que la compression et la gestion des versions de sauvegardes. De ce fait, il est le candidat tout indiqué pour faire des sauvegardes automatisées, sécuritaires et sans entretien.
Borg est basé sur rsync et offre des fonctions spécifiques telles que la compression et la gestion des versions de sauvegardes. De ce fait, il est le candidat tout indiqué pour faire des sauvegardes fréquentes, sécuritaires et sans entretien.

View file

@ -1,36 +1,36 @@
# Faire ses mises à jour
# Garder son système à jour
Faire ses mises à jour régulièrement est un des meilleurs moyens de protéger ses outils informatiques des cyberattaques. C'est cependant quelque chose qui est souvent négligé ou fait à une fréquence beaucoup trop faible.
Effectuer ses mises à jour régulièrement est un des meilleurs moyens de protéger ses outils informatiques des cyberattaques. C'est cependant quelque chose qui est souvent négligé ou planifié à une fréquence beaucoup trop faible.
Pour ne pas oublier et garder un système frais et dispos, il est possible de les automatiser, du moins en bonne partie. Cependant, pour ce qui est des serveurs web, il faut faire attention parce qu'elles peuvent compromettre la disponiblité des services. Il est alors recommandé d'envoyer des alertes à l'administrateur plutôt que tout mettre à jour automatiquement.
Pour ne pas oublier et garder un système frais et dispos, il est possible de les automatiser, du moins en bonne partie. Néanmoins, pour ce qui est des serveurs web, il faut faire attention parce qu'elles peuvent compromettre la disponibilité des services. Nous recommandons d'envoyer des alertes à l'équipe d'administration.
## Sur GNU/Linux
Sur GNU/Linux, il n'y a pas de mécanisme uniforme pour effectuer les mises à jour. Chaque famille de distribution a son propre système de gestion de paquetages. Mais, pour simplifier les choses, je vais vous en montrer 2: Debian et Arch.
Sur GNU/Linux, il n'y a pas de mécanisme uniforme pour effectuer les mises à jour. Chaque famille de distribution vient avec son propre système de gestion de paquetages. Mais, pour simplifier les choses, nous en montrons deux : Debian et Arch.
### Debian
Sur Debian, les mises à jour sont effectuées en deux étapes:
Sur Debian, les mises à jour sont effectuées en deux étapes :
- mettre à jour l'index des paquetages
- installer les nouvelles versions disponibles des paquetages
Il est possible de combiner ces deux actions avec cette commande:
Il est possible de combiner ces deux actions avec cette commande :
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
sudo apt update && sudo apt upgrade
```
Si on veut aller plus loin dans l'automatisation, il est possible de programmer les mises à jour de sécurité avec `UnattendedUpgrades` pour qu'elles s'effectuent en arrière-plan selon un calendrier précis sans avoir à s'en occuper.
Si nous désirons aller plus loin dans l'automatisation, il est envisageable de programmer les mises à jour de sécurité avec *UnattendedUpgrades.* Cet utilitaire permet qu'elles s'effectuent en arrière-plan selon un calendrier précis sans avoir à s'en occuper.
### Arch
Sur Arch, il y a deux systèmes de gestion de paquetages:
Sur Arch, il y a deux systèmes de gestion de paquetages :
- `pacman`, pour ce qui est officiellement supporté. Vous avez déjà vu ce dernier précédemment, car c'est aussi `pacman` qui est utilisé dans MSYS2 sur Windows.
- AUR, pour ce qui est développé par la communauté, avec le client `yay`, qui a exactement la même syntaxe que `pacman`.
- *pacman*, pour ce qui est officiellement supporté. Nous avons déjà vu ce dernier précédemment, car *Pacman* est utilisé dans MSYS2 sur Windows.
- AUR, pour ce qui est développé par la communauté, avec le client *yay*, utilisé avec la même syntaxe que *Pacman*.
Pour faire une mise à jour avec un de ces deux utilitaires, les commandes sont les suivantes:
Pour mettres à jour son système avec un de ces deux utilitaires, nous employons les commandes suivantes :
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
pacman -Syyu
@ -39,25 +39,25 @@ yay -Syyu
## Sur macOS
Il est possible d'activer les mises à jour automatiques dans les préférences du App Store. Aussi simple que ça !
Il est possible d'activer les mises à jour automatiques dans les préférences de lApp Store. Aussi simple que ça !
## Sur Windows
Sur Windows, il faut installer une petite extension à PowerShell pour avoir accès aux fonctionnalités de mises à jour. Cette extension se nomme `PSWindowsUpdate`.
Sur Windows, il faut installer l'extension *PSWindowsUpdate* à PowerShell. Elle permet d'interagir avec le système de mises à jour de Windows.
vous pouvez obtenir la liste des mises à jour à installer comme suit:
Nous pouvons obtenir la liste des mises à jour à effectuer :
```{.powershell linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
Get-WindowsUpdate
```
Et pour les installer, c'est comme suit (les commandes ont le mérite d'avoir des noms faciles à comprendre !):
Et pour les installer, c'est comme suit (les commandes ont le mérite d'être bien dénommées !) :
```{.powershell linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
Install-WindowsUpdate
```
Si vous voulez automatiser le tout (sur Windows c'est beaucoup moins risqué, comme les mises à jour ne sont que pour le système d'exploitation), alors il suffit de tout accepter et de redémarrer au besoin. C'est important de **faire les mises à jour la nuit** dans ce cas!
Si nous souhaitons automatiser le tout (sur Windows c'est beaucoup moins risqué, comme les mises à jour ne s'appliquent qu'au système d'exploitation), alors il suffit de forcer à tout accepter et de redémarrer au besoin. C'est important de **planifier les travaux la nuit** dans ce cas !
```{.powershell linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
Get-WindowsUpdate -AcceptAll -Install -AutoReboot