
Cette section a pour objectif de vous accompagner dans la prise en main du poste Linux qui vous a été fourni lors de la rentrée du 05/01/2026.
Elle constitue une base de travail pour configurer un environnement de développement fonctionnel, cohérent et proche des standards professionnels, que nous utiliserons tout au long du cours et des travaux pratiques.
Pourquoi utiliser Linux ?#
Linux occupe une place centrale dans le monde de l’informatique moderne, en particulier dans les domaines suivants :
- hébergement de sites web et d’applications,
- infrastructures cloud,
- serveurs,
- conteneurisation et DevOps,
- développement logiciel open source.
La grande majorité des plateformes d’hébergement et des serveurs dans le monde reposent sur des systèmes de type Unix/Linux.
| Operating System | Market Share |
|---|---|
| Unix / Linux | 88.8% |
| Windows | 11.4% |
Source : https://w3techs.com/technologies/overview/operating_system (mars 2025)
Remarque : ça ne fait pas 100% (méthode de calcul par IP)
Lors des dernières séances du cours, vous serez amenés à déployer et héberger vos projets sur des infrastructures cloud. Être à l’aise avec Linux est donc un prérequis essentiel.
Environnement de travail attendu#
Pour suivre ce cours dans de bonnes conditions, votre poste doit disposer des outils suivants :
- Visual Studio Code : éditeur de code moderne et extensible
- Python 3 et pip : langage principal du cours et gestionnaire de paquets
- Git : gestionnaire de versions
- Docker : conteneurisation et déploiement
- NPM et NodeJS: gestionnaire de paquets et serveur javascript pour le développement frontend
Sur Linux, l’installation et la gestion de ces outils se font majoritairement via :
- le terminal,
- des interfaces en ligne de commande (CLI).
L’objectif est de vous familiariser rapidement avec ces outils, très utilisés dans le monde professionnel.
Remarque
Un des enjeux du cours et de vous sensibiliser avec la ligne de commande
Distribution utilisée : Ubuntu#
Pour les besoins du cours et des TP, nous utilisons la distribution Ubuntu, basée sur Debian.
Ce qui change beaucoup par rapport a windows, c’est que l’on est bien plus souvent amené a utiliser des utilitaires en ligne de commande pour l’installation, c’est le cas des gestionnaire de paquets qui permettent en quelques caractère d’installer un paquet.
Ubuntu dispose de plusieurs gestionnaires de paquets, dont les plus courants sont :
- apt : gestionnaire de paquets Debian (principal)
- snap : gestionnaire de paquets universels maintenu par Ubuntu
Un gestionnaire de paquets permet :
- d’installer des logiciels facilement,
- de gérer les dépendances automatiquement,
- de maintenir le système à jour.
Avant toute installation avec apt, il est recommandé de mettre à jour l’index des paquets :
sudo apt updateCette commande synchronise la liste des logiciels disponibles depuis les dépôts configurés sur votre système.
Installation des outils nécessaires (Préambule au TP)#
Qu’allons nous installer#
git-all: installation complète de Gitpyenv: gestionnaire d’installation de python opensourcecode: Visual Studio Codebuild-essential: Compilateur C++, utile pour un TP a venir et pour les librairies python qui s’appuient dessus.curl: client HTTPnvm,nodeetnpm: gestionnaire de version de serveur javascriptdocker: gestionnaire de processus isolés en localkubectl: client pour interagir avec des clusters Kubernetes (cloud) Si aucun des outils requis n’est installé sur votre poste, vous pouvez exécuter le script suivant dans un terminal (copié collé viashift insert).
⚠️ Si certains outils sont déjà présents, vous pouvez n’exécuter que les lignes nécessaires.
Le script#
Copiez le script d’installation des différents outils dans un terminal.
# Mise a jour de l'index des paquets existant pour l'installation via apt
echo "Pour utiliser le compte administrateur du poste (sudo), vous devez entrer votre motdepasse (ensai)"
sudo apt update
echo "mise a jour systeme"
sudo apt upgrade -y
echo "installation outils-base git-all c++"
sudo apt install ca-certificates git-all build-essential curl libpq-dev -y
# installation vscode via snap
sudo snap install code --classic
echo "Installation extensions vscode"
code --install-extension ms-kubernetes-tools.vscode-kubernetes-tools
code --install-extension ms-python.debugpy
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension redhat.vscode-yaml
code --install-extension rvest.vs-code-prettier-eslint
# Installation de python via pyenv (d'après https://github.com/pyenv/pyenv)
echo "version python3 systeme"
python3 --version
curl -fsSL https://pyenv.run | bash # pyenv automatic installer
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init - bash)"' >> ~/.profile
source ~/.profile
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl
pyenv install 3.13
pyenv global 3.13
echo "version python3 & pip apres installation via pyenv"
python3 --version
pip --version
echo "install uv"
curl -LsSf https://astral.sh/uv/install.sh | sh
# installation de nvm pour installer node et npmjs
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.bashrc
nvm install --lts
echo "version de node et de npm"
node -v && npm -v
npm install --global prettier
# installation selenium geckodriver
mkdir -p ~/Downloads
curl -Lo ~/Downloads/geckodriver.tar.gz https://github.com/mozilla/geckodriver/releases/download/v0.35.0/geckodriver-v0.35.0-linux64.tar.gz
tar -xvzf ~/Downloads/geckodriver.tar.gz -C ~/Downloads/
sudo chmod +x ~/Downloads/geckodriver
sudo mv ~/Downloads/geckodriver /usr/local/bin/
echo "installation du geckodriver"
geckodriver --version
# installation docker
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
sudo service docker restart
sudo docker --version
# installation kubectl
curl -Lo ~/Downloads/kubectl "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x ~/Downloads/kubectl
sudo mv ~/Downloads/kubectl /usr/local/bin/kubectlÀ partir de cette base, nous pourrons travailler efficacement sur les TP, les projets et les déploiements cloud.
Environnements SSPCloud#
Dans le cadre de la validation de la portabilité de votre code, du partage et également de lancement de services interactifs vous pouvez également utiliser les environnements fournis par le service statistique public : Onyxia Datalab.
Il est accessible ici : https://datalab.sspcloud.fr/
Créez un compte en utilisant votre adresse ensai pour la création de compte. Etant dans la whitelist vous pourrez créer un compte et ensuite accéder aux différents services de la plateforme.
Vous pouvez également suivre la documentation utilisateur accessible ici :
Dans le même esprit que dans ce qui a été présenté, les environnements VS Code déployés sont basés sur la distribution Ubuntu. Vous devriez donc, en principe, pouvoir travailler de manière similaire entre votre poste local et le SSPCloud.
