Appearance
Archives, compilation et hachage
Sommaire
Archives tar
Rôle de tar
Les archives tar sont un format d’archive très répandu sous Linux.
- Elles permettent de regrouper plusieurs fichiers et répertoires en un seul fichier.
- Elles conservent les permissions et attributs (propriétaires, droits, dates…), ce qui n’est pas forcément le cas avec d’autres formats (zip, rar…).
- Elles peuvent contenir des fichiers de très grande taille.
- Elles sont souvent combinées avec une compression (gzip, bzip2, xz…).
Syntaxe générale :
bash
# tar [options] -f archive.tar <fichiers-ou-répertoires>À retenir
tar crée des « archives » (regroupe des fichiers). La compression est un plus que l’on ajoute (-z, -j, -J).
Créer, extraire et afficher une archive
Les trois options principales à connaître :
-c: create → créer une archive-x: extract → extraire une archive-t: list → afficher le contenu d’une archive-f: (file) nom de l’archive (obligatoire)
Exemples :
bash
# Créer une archive à partir d’un dossier (données/)
tar -cvf sauvegarde.tar données/
# Lister le contenu d’une archive
tar -tvf sauvegarde.tar
# Extraire le contenu dans le répertoire courant
tar -xvf sauvegarde.tarIci :
-v(verbose) affiche les fichiers en cours de traitement.-f sauvegarde.tarindique le nom de l’archive. Tout ce qui suit-fest interprété comme le nom de fichier, donc-fdoit être la dernière option avant ce nom.
Types de compression avec tar
On combine souvent tar avec un algorithme de compression :
-z→ compression gzip (extension habituelle :.tar.gzou.tgz)-j→ compression bzip2 (extension habituelle :.tar.bz2)-J→ compression xz (extension habituelle :.tar.xz)
Comparaison rapide :
- gzip : rapide, taux de compression modéré, très courant.
- bzip2 : plus lent que gzip, mais compresse généralement un peu mieux.
- xz (LZMA) : meilleur taux de compression, mais plus lent (surtout en compression). Très utilisé pour distribuer des sources de logiciels ou des noyaux.
Exemples :
bash
# Créer une archive tar + gzip
tar -czvf sauvegarde.tar.gz données/
# Créer une archive tar + bzip2
tar -cjvf sauvegarde.tar.bz2 données/
# Créer une archive tar + xz
tar -cJvf sauvegarde.tar.xz données/Et pour extraire (tar détecte souvent automatiquement le format de compression) :
bash
# Extraire, peu importe gzip/bzip2/xz
tar -xvf sauvegarde.tar.gz
# ou
tar -xvf sauvegarde.tar.bz2
# ou
tar -xvf sauvegarde.tar.xzOptions utiles : --exclude, -C
Exclure des fichiers/répertoires
On peut exclure certains fichiers ou dossiers de l’archive avec --exclude :
bash
# Archiver tout le projet sauf le dossier build/
tar -czvf projet.tar.gz projet/ --exclude=projet/buildChanger de répertoire avec -C
L’option -C permet de changer de répertoire avant d’exécuter l’opération.
bash
# Extraire une archive dans /tmp/extraction
tar -xvf sauvegarde.tar -C /tmp/extractionInstallation à partir de fichiers sources
Les gestionnaires de paquets (apt, pacman, etc.) facilitent l’installation, mais il est parfois utile de savoir compiler un logiciel à partir de son code source :
- pour obtenir une version plus récente ;
- pour un logiciel non disponible dans les dépôts de la distribution ;
- pour comprendre le fonctionnement classique
configure → make → make install.
Nous prendrons l’exemple du programme htop.
Téléchargement avec wget
wget permet de télécharger des fichiers directement en ligne de commande.
Syntaxe :
bash
wget <URL>Exemple (htop 3.4.1) :
bash
wget https://github.com/htop-dev/htop/releases/download/3.4.1/htop-3.4.1.tar.xzOn récupère ainsi une archive tar.xz contenant le code source.
Extraction du fichier source
On utilise tar avec l’option -J (xz) :
bash
# Extraire l’archive
tar -xJvf htop-3.4.1.tar.xz
# Se déplacer dans le dossier extrait
cd htop-3.4.1On obtient alors l’arborescence du projet source (fichiers .c, .h, configure, Makefile, etc.).
Étape de configuration (./configure)
Beaucoup de projets utilisent un script configure qui :
- vérifie la présence des bibliothèques nécessaires ;
- adapte la compilation à votre système ;
- génère des fichiers de configuration (par ex.
Makefile).
Commande typique :
bash
./configureSi des dépendances manquent, le script peut afficher des messages d’erreur. Il faut alors :
- Lire attentivement les messages ;
- Installer les paquets requis avec le gestionnaire de paquets de la distribution.
Exemple (sur une base Debian/Ubuntu) :
bash
sudo apt-get install libncursesw5-devREADME / INSTALL
Toujours lire le fichier README ou INSTALL fourni avec le projet : il décrit les dépendances et les options de configuration.
Compilation avec make
Une fois la configuration terminée, on compile avec make :
bash
makemake lit le fichier Makefile et lance les commandes de compilation nécessaires.
On peut accélérer la compilation sur une machine multi-cœurs en utilisant -j :
bash
# Utiliser 4 jobs en parallèle
make -j4Pas de sudo !
Ne pas exécuter make avec sudo : la compilation se fait dans votre répertoire utilisateur.
Installation avec sudo make install
Après une compilation réussie, on peut installer le programme dans le système.
bash
sudo make install- Cette commande copie les fichiers compilés dans les répertoires système (
/usr/local/bin,/usr/local/lib, etc.). - Elle nécessite sudo car elle écrit en dehors de votre
$HOME.
Une fois l’installation terminée, vous pouvez lancer le programme par son nom, s’il est dans le PATH :
bash
htopAttention : installer « à la main » avec
make installne crée pas d’entrée dans le gestionnaire de paquets. Pour désinstaller, il faut souvent utilisersudo make uninstall(si prévu) ou supprimer les fichiers manuellement.
Hachage et vérification d’intégrité
Principe du hachage
Les fonctions de hachage permettent de calculer un code unique (empreinte) à partir d’un fichier. Exemples de fonctions :
md5(obsolète pour la sécurité, mais encore utilisé pour vérifier l’intégrité) ;sha1;sha256.
Usage typique :
- un site fournit un fichier à télécharger (ex.
htop-3.4.1.tar.xz) ; - il donne aussi le hash attendu (ex. un
sha256dans un fichier.sha256ou affiché sur la page) ; - vous calculez le hash du fichier téléchargé ;
- si les deux valeurs correspondent, le fichier n’a pas été corrompu.
Plus la fonction est récente, plus elle est considérée comme robuste :
sha1est plus sécuritaire quemd5;sha256est plus sécuritaire quesha1.
Commandes de hachage
Sous Linux, on utilise généralement la commande nom-de-la-méthode + sum :
md5sumsha1sumsha256sum
Syntaxe :
bash
md5sum fichier
sha1sum fichier
sha256sum fichierExemple :
bash
sha256sum htop-3.4.1.tar.xzSortie typique :
text
1a2b3c4d5e6f... htop-3.4.1.tar.xzOn compare ensuite cette valeur avec celle publiée sur le site officiel (par exemple sur la page GitHub de htop).
Lorsqu’un fichier .sha256 ou similaire est fourni, on peut aussi laisser la commande faire la vérification :
bash
sha256sum -c htop-3.4.1.tar.xz.sha256Si tout est correct, on obtient :
text
htop-3.4.1.tar.xz: OKÀ retenir
tarpermet de regrouper des fichiers dans une archive, en préservant les permissions.-ccrée,-xextrait,-tliste le contenu,-fdonne le nom de l’archive.-z,-j,-Jajoutent respectivement la compression gzip, bzip2, xz.--excludeet-Cfacilitent la gestion de ce qu’on archive et où on extrait.
- L’installation depuis les sources suit souvent le schéma :
wget→ télécharger l’archive ;tar→ extraire (-xJvfpour.tar.xz) ;./configure→ configuration (avec installation des dépendances si besoin) ;make→ compilation ;sudo make install→ installation dans le système.
- Le hachage (md5, sha1, sha256…) permet de vérifier qu’un fichier n’a pas été corrompu.
- On utilise
md5sum,sha1sum,sha256sumsur un fichier ; - On compare le résultat avec la valeur fournie sur le site ou dans un fichier
.sha256.
- On utilise
Quiz 🎯
Ce quiz couvre : archives tar, compilation depuis les sources et hachage.
0 questions - Bonne chance !