Table des matières
Dans l'UE INF203, nous avons besoin d'un environnement UNIX pour travailler, en particulier :
- un interpréteur de commandes compatible avec le Bourne Shell, nous utiliserons
bash
ouzsh
, ainsi qu'un ensemble de commandes de base présentes dans tout UNIX. - un environnement pour éditer, compiler, exécuter et debugger des programmes écrits en C ou en
shell : nous conseillons d'utiliser un simple terminal avec
un éditeur de texte de votre choix, du moment qu'il offre des
facilités pour programmer (indentation automatique, coloration
syntaxique…) :
emacs
,vi
,jedit
,gedit
,atom
,sublimetext
…
Ce guide est destiné à vous permettre d'installer tout cela sur votre machine personnelle selon votre système d'exploitation.
1 Vidéos explicatives
En complément des instructions détaillées, les vidéos suivantes montrent le suivi de ces instructions pour certaines configurations :
2 Quelques problèmes possibles lors de l'installation
Error : 0x80370102 Impossible de démarrer la machine virtuelle parce qu’une fonctionnalité requise n’est pas installée
Cette erreur est documentée par microsoft : https://docs.microsoft.com/fr-fr/windows/wsl/troubleshooting#error-0x80370102-the-virtual-machine-could-not-be-started-because-a-required-feature-is-not-installed. Commencez par vérifier que votre matériel supporte la virtualisation. Ensuite, le plus probable est que la virtualisation est désactivée dans votre BIOS : redémarrez en entrant dans le BIOS et cherchez les réglages permettant de l'activer.
Ecran noir au redémarrage
Cela est probablement un bug connu sur les processeurs ryzen : https://answers.microsoft.com/en-us/windows/forum/all/cant-enablevirtual-machine-platform/9fa54fa1-de34-48be-8973-b82aed178507. Le problème se résout en changeant un réglage dans le BIOS.
Error : 0xc03a001a Impossible d'effectuer l'opération demandée en raison d'une limitation du système de disque virtuel
WSL n'aime pas le système de compression intégré au système de fichiers NTFS, c'est documenté ici : https://github.com/microsoft/WSL/issues/5325. Il suffit de le désactiver dans le répertoire où est stockée votre distribution Linux. Il est aussi possible de le désactiver globalement, mais cela n'est pas indispensable.
3 Windows
3.1 Windows 10
Windows 10 supporte l'installation d'un Linux encapsulé dans une machine virtuelle (VM) et VSCode supporte le développement sur cette machine depuis l'application locale :
- Installer le 'Windows Subsystem for Linux' (WSL) : https://docs.microsoft.com/fr-fr/windows/wsl/install-win10 Vous pouvez choisir la distribution Linux de votre choix. Pour la suite nous vous donnons les instructions pour une Ubuntu, mais vous devriez pouvoir prendre la distribution de votre choix en adaptant les commandes.
- A l'installation d'Ubuntu vous devrez indiquer un nom d'utilisateur et un mot de passe associé. Cet utilisateur sera votre utilisateur pour la VM Ubuntu.
- Avec la VM Ubuntu lancée lors de l'installation (vous pouvez aussi la lancer depuis le menu
Start), vous obtenez une fenêtre dans laquelle un interpréteur de commandes attend vos
commandes. Saisissez les commandes suivantes pour collecter les infos de mises à jour et installer
les outils dont nous nous servirons :
sudo apt update
sudo apt install clang gdb make manpages-dev
l'outil vous informe sur tous les paquetages qui vont être installés, acceptez.les fichiers que vous manipulerez dans la VM Ubuntu sont stockés dans un système de fichiers séparé de celui de windows :
- pour accéder au contenu d'un répertoire de votre VM depuis Windows, exécutez
explorer.exe .
dans le répertoire en question, cela va ourir une fenêtre dans Windows vous permettant de manipuler le contenu de ce répertoire.
- pour accéder aux lecteurs habituels de Windows (
C:
,D:
, etc.) depuis votre VM, rendez vous
dans le répertoire
/mnt
, vous y trouverez un répertoire par lecteur.- pour accéder au contenu d'un répertoire de votre VM depuis Windows, exécutez
- Une solution avec VirtualBox qui demande une machine suffisamment puissante. Vous pourrez
profiter d'un système GNU/Linux complet s'exécutant dans une machine virtuelle sur votre Windows.
Cela peut s'avérer un peu trop lourd sur une machine très ancienne car une machine virtuelle demande
de la mémoire et un processeur raisonnablement rapide :
- Installer VirtualBox : https://www.virtualbox.org
- Avec VirtualBox, créer une nouvelle machine virtuelle.
- Installer un Linux sur votre machine virtuelle, par exemple : https://ubuntu-fr.org
- Pour plus de confort, vous pouvez installer les
Guest Additions
pour Linux sur votre machine virtuelle, voir https://www.virtualbox.org/manual/ch04.html pour plus de détails. - Se reporter aux instructions pour Linux pour la suite des opérations.
Pour passer votre Ubuntu en français, depuis l'interpréteur de commandes Ubuntu :
sudo apt install language-pack-fr manpages-fr manpages-fr-extra manpages-fr-dev
l'outil vous informe sur tous les paquetages qui vont être installés, acceptez.sudo apt install $(check-language-support)
idem.sudo update-locale LANG=fr_FR.UTF-8 LANGUAGE=fr_FR
Puis fermer l'interpréteur et relancez le.
- Pour installer (s'il n'est pas déjà présent) l'éditeur de texte de
votre choix :
sudo apt install emacs
par exemple.
3.2 Windows <10
Avec les versions de Windows précédant la 10, il est aussi possible de travailler en local.
La solution consiste à utiliser Cygwin, un environnement UNIX presque complet qui s'exécute nativement sur votre Windows. C'est léger, adapté à une machine peu puissante, mais la configuration et la manière de travailler seront un peu différentes par rapport aux autres solutions :
- Installer Cygwin : https://cygwin.com
- avec les paquets :
clang
,gdb
,make
,man-pages-posix
etchere
- les fichiers que vous manipulerez sous Cygwin sont stockés dans un système de fichiers
séparé de celui de windows :
- vu depuis Windows, Cygwin place ses fichiers ainsi que tout l'environnement UNIX qu'il propose dans
C:\cygwin64\...
ouC:\cygwin\...
selon la version que vous installez (64 bits ou 32). Par la suite, nous utiliserons des chemins pour Cygwin64, adapter ces chemins selon votre installation. - vu depuis l'interpréteur de commandes de Cygwin, les lecteurs habituels de Windows (
C:
,D:
, etc.) sont accessibles à partir de/cygdrive/...
- vu depuis Windows, Cygwin place ses fichiers ainsi que tout l'environnement UNIX qu'il propose dans
- ajoutez également le cas échéant l'éditeur de texte de votre choix.
- les fichiers que vous manipulerez sous Cygwin sont stockés dans un système de fichiers
séparé de celui de windows :
- avec les paquets :
4 Linux
GNU/Linux est l'environnement idéal pour travailler l'UE. Dans cette documentation, nous supposons que vous avez installé la distribution Ubuntu ou toute distribution dérivée de la Debian. Si vous êtes débutant, la distribution Ubuntu est généralement considérée comme plus simple à gérer : plus d'interfaces graphiques et moins de commandes textuelles, mais la différence n'est pas énorme.
Commencer par installer les outils que nous utiliserons dans l'UE :
sudo apt update
sudo apt install clang gdb make
Puis installer (s'il n'est pas déjà présent) l'éditeur de texte de
votre choix : sudo apt install emacs
par exemple.
5 OSX
OSX est un UNIX et est donc tout aussi adapté qu'un Linux pour travailler l'UE. Commencer par installer les outils de la ligne de commande, au choix :
- en allant sur https://developer.apple.com/download/more/?=command%20line%20tools
- en installant XCode et en exécutant
xcode-select --install
dans un terminal.
6 Travailler durant le semestre
L'environnement installé selon votre système vous donne accès à tout ce dont vous avez besoin pour travailler dans l'UE.
6.1 Commandes Unix et programmation en shell
Ouvrez un nouvel interpréteur de commandes dans le système installé
(ils sont souvent disponibles dans les menus sous les noms Terminal
,
xterm
, Terminal Emulator
, etc.).
Cet interpréteur vous permet de saisir des commandes Unix ou de programmer en shell. Vous pouvez même lancer votre éditeur de texte depuis le
terminal.
Attention, l'édition de scripts sous Windows peut générer des
caractères de fin de ligne incompatibles avec Unix (CRLF
au lieu de
LF
), le cas échéant il peut y avoir un réglage à faire dans
l'éditeur de texte.
6.2 Programmation en C
Dans votre éditeur de texte, vous pouvez éditer vos fichiers source en C. Vous pouvez les compiler et les exécuter en utilisant le terminal, comme nous apprendrons à le faire dans l'UE.
6.2.1 Sous Cygwin
Sous Cygwin, les entrées/sorties du programme (textes lus/écrits par le programme) se font dans une
fenêtre séparée qui s'ouvre lors de l'exécution. Ceci est dû à l'absence de lldb
dans cet
environnement. De plus, cette fenêtre se ferme toute seule à la fin de l'exécution : si votre
programme ne fait que des affichages, vous ne les verrez pas. La solution est, au choix, de :
- mettre systématiquement un point d'arrêt à la fin du programme.
- terminer le
main
par un appel àgetchar()
(par exemple).