J'ai reconstruit mon installation Windows autour de Winget et de dotfiles, et cela ressemble à Linux (dans le bon sens)

/fr/images/windows-11-laptops-winget.jpg

Faire exploser votre système ne signifie pas nécessairement perdre un après-midi à réinstaller des applications et à restaurer vos paramètres comme vous les aimez. Les utilisateurs de Linux le savent déjà et connaissent le processus depuis des années : ils exécutent un script Bash, prennent un café et reviennent à une nouvelle installation prête à fonctionner.

La formule spéciale qui permet une configuration post-installation rapide sous Linux concerne les gestionnaires de packages et les fichiers dot. Windows a discrètement récupéré les ingrédients nécessaires au cours des dernières années, qui permettent aux utilisateurs de scripter toutes les personnalisations qu’ils souhaitent avoir sur une nouvelle installation.

J’ai écrit un script qui utilise Winget pour installer la plupart des logiciels que j’utilise sur mon PC et j’ai récupéré les fichiers de configuration de mon dépôt Git privé. En quelques frappes, une copie de Windows fraîchement installée dispose de tous les outils et paramètres dont j’ai besoin. En prime, je ne me creuse pas la tête en essayant de me souvenir des programmes que j’avais ou de tous les paramètres que j’avais modifiés, puisque toutes ces informations se trouvent dans mon dépôt.

/fr/images/windows-11-laptop-winget.jpg

Connexes

Arrêtez de télécharger des logiciels à partir de sites Web : Windows dispose d’un gestionnaire de packages intégré

Facilitez-vous les choses

Laissez Winget gérer l’installation des packages

Il est plus performant que vous ne le pensez

Je redoutais cette étape initiale de configuration de mon script parce que je pensais que je devrais construire manuellement une liste de tous les programmes que je voulais que Winget installe. Mais ensuite j’ai découvert l’option d’exportation. Vous pouvez ouvrir PowerShell et utiliser la commande Winget suivante sur votre installation Windows actuelle pour obtenir une liste de toutes les applications de votre système :


winget export -o packages.json

Si vous possédez beaucoup d’applications tierces, certaines choses vont probablement manquer (celles qui ne figurent pas dans le catalogue de Winget). Sur mon système, il a reconnu la grande majorité des logiciels que j’ai installés, ce qui m’évitera de les télécharger à partir du Web et de cliquer sur les invites d’installation toute la journée.

Pour installer tous les programmes répertoriés dans le fichier JSON que vous avez exporté, exécutez cette commande Winget sur la nouvelle installation :


winget import -i packages.json --accept-package-agreements --accept-source-agreements

Les options supplémentaires à la fin de la commande contourneront toutes les invites qui apparaissent normalement lors de l’installation. Les fenêtres UAC seront minimes, donc Winget peut principalement tout gérer lui-même. Le téléchargement et l’installation d’une longue liste de logiciels prendront encore un certain temps, mais vous pouvez vous occuper d’autres choses en attendant.

Le catalogue de Winget a atteint une taille respectable, mais il n’est pas encore aussi large que celui de l’AUR. Si quelque chose que vous utilisez manque dans le référentiel officiel, vous devrez recourir à une installation manuelle ou aller un peu plus loin avec le script et automatiser les téléchargements avec la commande Invoke-WebRequest.

Réappliquez vos paramètres avec dotfiles

Ceux-ci peuvent être enregistrés dans votre dépôt Git

/fr/images/installing-dotfile-from-github-repository.jpg

Les Dotfiles sont les fichiers de configuration qui contiennent les paramètres de diverses applications. Sous Linux, ceux-ci se trouvent souvent dans le répertoire personnel et incluent des fichiers tels que.bashrc, .gitconfig, etc. Toutes les applications Windows n’utilisent pas de fichiers dot pour stocker les paramètres ; parfois, ils sont stockés dans le registre ou ailleurs, mais de nombreux outils suivent la convention Unix consistant à stocker les paramètres sous forme de fichiers de configuration en texte brut.

Après avoir installé votre logiciel avec Winget, les fichiers dot peuvent être restaurés à partir d’un dépôt Git privé. Du moins, c’est comme ça que je l’ai fait. Si vous préférez simplement mettre une sauvegarde de vos fichiers dot sur une clé USB, par exemple, cela fonctionne aussi. Les fichiers dot de Windows ne se trouvent pas tous au même emplacement, mais voici un bref aperçu de certains des fichiers les plus courants que vous souhaiterez probablement suivre :

  • Profil PowerShell — %USERPROFILE%\Documents\PowerShell\Microsoft.PowerShell\_profile.ps1
  • Configuration Git — %USERPROFILE%\.gitconfig
  • Configuration Git globale — %USERPROFILE%\.gitignore\_global
  • Configuration SSH — %USERPROFILE%\.ssh\*
  • Paramètres VS Code — %APPDATA%\Code\User\settings.json
  • Liaisons de touches VS Code — %APPDATA%\Code\User\keybindings.json
  • Configuration WSL — %USERPROFILE%\.wslconfig

Vous pouvez également rechercher d’autres paramètres. Mon objectif était de placer tous mes fichiers de paramètres dans un seul emplacement où je pourrais les valider dans mon dépôt Git. Ensuite, j’ai fait des liens symboliques vers les fichiers aux endroits où ils résident habituellement. Par exemple, ces lignes de mon script établissent un lien symbolique vers mon profil PowerShell (exécuté dans PowerShell en tant qu’administrateur après avoir restauré vos fichiers dot à partir du dépôt ou de la sauvegarde Git) :


# Define where the dotfiles are stored$dotfiles = "$HOME\dotfiles"# Make a symbolic link to my PowerShell profileNew-Item -ItemType SymbolicLink -Path $PROFILE -Target "$dotfiles\profile.ps1" -Force

Écrivez le script d’amorçage pour votre installation Windows

Comment le script relie tout ensemble

/fr/images/windows-11-pc-running-dietpi-script-powershell.jpg

Une fois Windows installé, vous pouvez ouvrir PowerShell et exécuter la commande d’importation Winget présentée précédemment pour installer toutes vos applications (y compris Git). Ensuite, clonez votre dépôt dotfiles et exécutez votre script personnalisé pour mettre tous les liens symboliques en place. Après cela, votre configuration est en ligne et vous êtes prêt à démarrer.

Abonnez-vous à la newsletter pour de meilleurs conseils d’automatisation de la configuration

Rejoignez la newsletter pour accéder à des guides d’automatisation pratiques, des scripts réutilisables et des workflows de configuration. L’abonnement offre une couverture pratique de l’automatisation de la configuration, des fichiers dot et des techniques de script que vous pouvez adapter à vos propres systèmes.

Obtenir des mises à jour

En vous abonnant, vous acceptez de recevoir des newsletters et des e-mails marketing, et acceptez nos conditions d’utilisation et notre politique de confidentialité. Vous pouvez vous désinscrire à tout moment.

L’avantage de cette approche est que le script n’a jamais besoin d’être modifié. Une fois que vous l’avez écrit, jetez-le dans le dépôt avec vos fichiers dot et retirez-le avec tout le reste sur les nouvelles installations. Vous pouvez également y placer le fichier packages.json de Winget si vous souhaitez tout conserver au même endroit.

Faire les choses à la manière de Linux… sous Windows

Cette approche ressemble beaucoup à Linux, mais Windows n’est pas tout à fait là. Les fichiers Dotfiles sont dispersés (et certains sont inexistants) et Winget n’a pas toutes les applications que j’utilise. Mais cette méthode s’en rapproche assez et me fait gagner beaucoup de temps. C’est certainement une solution plus élégante que d’installer manuellement des applications et d’essayer désespérément de reconstruire tous mes paramètres à partir de la mémoire.

*️⃣ Lien source :

utilise Winget pour installer la plupart des logiciels, Arrêtez de télécharger des logiciels à partir de sites Web : Windows a un gestionnaire de paquets intégré , chaque programme que je voulais que Winget installe, les Dotfiles sont les fichiers de configuration, exécutez votre script personnalisé, , , , , Conditions d’utilisation , Politique de confidentialité ,