# Installation Party

Il est conseillé de suivre et répéter les commandes que je vous présente pendant ce cours.

Pour cela, il faudrait accès à un système basé sur Unix. Il y a plusieurs options selon votre système d'exploitation.

Nous allons ouvrir un conteneur **Ubuntu 20.04** en utilisant **Docker**. Il faudrait suivre les instructions suivantes pour installer les composants nécessaires.

<details>

<summary>1 - (Windows 10 et 11 seulement) Installer WSL</summary>

Le WSL (***W**indows **S**ubsystem for **L**inux*) est une extension à Windows qui permet de tourner le système d'exploitation Linux sur Windows.

Il est essentiel pour faire tourner Docker Desktop (à installer plus tard) sur Windows.

1. Vérifiez que vous avez au moins Windows 10, version 2004 (build 19041). Vous trouverez cette information dans `Paramètres / Système / Information système`. Si vous avez une version antérieure, il faut mettre à jour votre système d'exploitation dans `Mise à Jour et Sécurité`
2. Activez WSL dans les réglages de votre système

   1. Dans la barre de recherche, tapez "Activer ou décativer des fonctionnalités Windows"... cliquez sur l'option du panneau de configuration
   2. Cherchez et activez "Sous-système Windows pour Linux"
   3. Cherchez et activez "Plateforme de machine virtuelle"

   <figure><img src="https://3987944296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUNZ40f5eWLGPUhqCD5oe%2Fuploads%2FshqfblgiWwfrVRuVFTfd%2Factivate-wsl.gif?alt=media&#x26;token=43b5ed3e-c26a-4827-9ae2-d0ce113d3073" alt=""><figcaption></figcaption></figure>
3. (Facultatif) Sur certaines machines, il faut installer la mise à jour du noyau WSL. [Téléchargez et installer la mise à jour ici](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)
4. Ouvrez le Microsoft Store, et cherchez `Ubuntu`. Cliquez sur `Installer`. Une fois terminé, cliquez sur `Ouvrir`. On vous demandera un nom d'utilisateur et mot de passe pour votre installation Linux. Précisez et notez bien vos choix.

<img src="https://3987944296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUNZ40f5eWLGPUhqCD5oe%2Fuploads%2FVzRtMYVZIc8eJqNruXKm%2Fubuntu-wsl.gif?alt=media&#x26;token=86ab7773-0a2d-4c2e-b472-98f66dbcfbd8" alt="" data-size="original">

Si vous rencontrez des erreurs lors de l'installation de WSL, suivez bien les instructions et/ou les liens qui vous sont indiqués pour résoudre le problème !

Il est possible qu'il faut activer la *virtualisation* dans vos réglages BIOS. Pour cela, vous redémarrez votre ordinateur, et au moment du lancement de l'ordinateur (avant de voir le chargement de Windows), appuyez sur F2, F8 ou F10 (selon votre marque de machine) pour rentrer dans les réglages BIOS. Chercher l'option type "Activez la virtualization".

</details>

<details>

<summary>2 - Installer et configurer Docker Desktop</summary>

Docker Desktop est l'application qui tourne le service Docker sur nos PCs et Mac. C'est une application nativement conçu pour Linux, mais grâce à leur versions "**Desktop**" on pourrait l'installer en local.

Attention \![ Si vous êtes sur Windows, il faut d'abord suivre les instructions pour l'installation de WSL.](#windows-10-et-11-seulement-installer-wsl)

Vous pouvez le télécharger ici :

[Installer Docker Desktop](https://www.docker.com/products/docker-desktop/)

Lancez l'installeur, et suivez les instructions.

A noter ! Si vous ête sur MacOS, il faut bien télécharger la bonne version de Docker Desktop pour votre architecture. Si vous avez un M1 ou M2, il faut choisir la version pour "Apple", sinon, la version "Intel".

</details>

<details>

<summary>3 - Installer Visual Studio Code</summary>

Visual Studio Code est un éditeur de code léger et puissant. Notamment, cet éditeur nous permet d'ouvrir un conteneur Linux, et taper les commandes dans un shell.

[Télécharger VSCode](https://code.visualstudio.com/download)

Une fois installé, ouvrez l'onglet "Extensions", cherchez l'extension qui s'appelle "Dev Containers", et l'installer.

</details>

<details>

<summary>4 - Télécharger le Projet VSCode</summary>

Une configuration VS code a été crée et est disponible dans un dépôt GIT publique.

[Télécharger la configuration VSCode](https://github.com/glassworks/course-unix-shell/archive/refs/heads/main.zip)

Décompressez l'archive à un endroit connu sur votre ordinateur.

</details>

<details>

<summary>5 - Créer un Conteneur Ubuntu dans VSCode</summary>

Si pas déjà le cas, ouvrez l'application `Docker Desktop`. On sait qu'il Docker Desktop s'est bien lancé quand son icône arrête de clignoter parmi les tâches de fond de votre ordinateur : ![](https://3987944296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUNZ40f5eWLGPUhqCD5oe%2Fuploads%2FfWPz2h89F3eMkAb0Qp3o%2Fdocker-icon.png?alt=media\&token=7a6883ec-f225-4ef4-9d31-8b478357a55c)

Lancez VSCode.

Dans la fenêtre initiale, vous glissez le dossier contenant la configuration VS dans la fenêtre. Ou sinon, vous parcourez le dossier.

A noter: il faut choisir le dossier qui contient le sous-dossier `.devcontainer` :

```
unix-shell-supports <--- Le dossier à glisser (ou sélectionner) dans VSCode
  |- README.md
  |- .devcontainer
  |- ...
```

<img src="https://3987944296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUNZ40f5eWLGPUhqCD5oe%2Fuploads%2FMhw61zx0CcWTiKipMKUk%2Fvscode-project.gif?alt=media&#x26;token=8ae405e7-9267-4cd3-8f72-ed3067f91926" alt="" data-size="original">

Si VSCode pose la question de se fier aux source, cliquez sur `Oui`.

Si vous verrez une petite fenêtre en bas à droite demandant d'installer l'extension `Dev Containers`, cliquez sur `Oui`.

Vous verrez en bas à droite une petite fenêtre demandant d'ouvrir dans un **Container.** Cliquer sur **"Reopen in Container"**. Si vous ne voyez pas cette petite fenêtre, appuyer sur `F1`, puis taper "Reopen..." :

<img src="https://3987944296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUNZ40f5eWLGPUhqCD5oe%2Fuploads%2FVyBQDHIuBrRq6XLpIJ2E%2Fvscode-reopen-container.png?alt=media&#x26;token=22226e89-07e0-4472-ae81-8509adafd5cd" alt="" data-size="original">

Cliquez sur "Dev Containers: Rebuild and Reopen in Container".

La fenêtre VSCode se relance, et en bas à droite on vois "Starting Dev Container (show log)".

Attendez la configuration automatique de votre container Linux Ubuntu !

*\*\*\*\**:warning: *\*\*\*\** :warning: ***Attention, une connexion Internet est obligatoire pour ce dernier étape. S'il y a une erreur pendant la configuration, fermez VSCode et recommencez.*** :warning:*\*\*\*\**:warning:*\*\*\*\**

</details>

<details>

<summary>6 - Ouvrir un Shell Ubuntu dans VSCode</summary>

Une fois l'étape précédents terminé, on clique sur le menu `Terminal / Nouveau Terminal` dans VSCode :

<img src="https://3987944296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUNZ40f5eWLGPUhqCD5oe%2Fuploads%2FFc2Jiu5juWmK3jdUGEJN%2Fvscode-new-terminal.png?alt=media&#x26;token=fe1de08b-55f5-4f7b-a1ff-dd17d6e7cabc" alt="" data-size="original">

En bas de la fenêtre VSCode, un nouveau terminal s'ouvre avec le shell Bash :

<img src="https://3987944296-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUNZ40f5eWLGPUhqCD5oe%2Fuploads%2Flo05brQifFEh7UYvvN9x%2Fvscode-terminal.png?alt=media&#x26;token=01bde409-62c4-4f2c-a599-7e311cb2c15d" alt="" data-size="original">

:tada: Felicitations ! Vous avez maintenant accès à un Shell Unix !

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.glassworks.tech/unix-shell/introduction/010-introduction/installation-party.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
