I Description des paquets Debian
Les paquets sont des fichiers qui permettent d'installer des programmes sous un système Linux. Ce chapitre décrit très brièvement les paquets sources, le but étant d'étudier les fichiers binaires.
I.1 les paquets sources
Les paquets sources sont généralement matérialisés sous forme de fichiers avec les extensions :
* .dsc qui décrit le paquet source
* .orig.tar.gz qui contient la source originale non modifiée compressée par tar et gzip
* .diff.gz qui contient les modifications des sources originales spécifiques à Debian.
Nous n'étudierons pas les paquets sources dans ce document car leur utilisation *rigoureuse* demande des connaissances en compilation et en programmation.
I.2 les paquets binaires (.deb)
Les paquets binaires sont adaptés à une utilisation pour utilisateur lambda. Les sources ont déjà été compilées en format binaire, c'est à dire dans un langage directement compréhensible par les machines.
Où trouve-t-on les paquets .deb ?
Les paquets .deb se trouvent bien sûr sur vos CDs d'installation mais également sur Internet. Le site officiel de Debian propose la liste de tous les paquets à l'adresse :
http://www.debian.org/distrib/packages
Comment les paquets debian sont-ils classés ?
Les sections classent les paquets suivant leur positionnement par rapport au logiciel libre.
Les distributions classent les paquets par rapport à leur niveau de développement/stabilité.
Les catégories classent les paquets suivant ce qu'ils permettent de faire concrètement.
les sections (4) :
* main : les paquets de cette section sont libres
* contrib : les paquets de cette section sont eux même libres, mais dépendent de paquets ne l'étant pas.
* non free : les paquets de cette section ne sont pas forcément payants, mais ils ont une licence pénible qui restreint leur usage ou leur redistribution.
* non-us : la loi au Etats-Unis impose des restrictions sur l'export de certains articles relatifs à la défense qui, malheureusement, incluent certains types de logiciels cryptographique. pgp et ssh, entre autres, tombent dans cette catégorie. Cela veut dire qu'il est illégal d'utiliser de tels logiciels en dehors des Etats-Unis ! Comme quoi, on peut se mettre dans l'illégalité avec Linux ! (dommage?)
- les distributions (3) :
* unstable : les paquets dans la zone unstable ne sont pas ou peu testés, et peuvent contenir des problèmes suffisamment graves pour affecter la stabilité de votre système. Seuls les utilisateurs suffisamment expérimentés devraient utiliser cette distribution.
* testing : une fois que les paquets ont atteint les critères de stabilité et de qualité imposés, ils sont déplacés vers cette zone.
* stable : c'est la distribution stable par excellence. Les paquets ne sont modifiés que pour corriger des problèmes de sécurité majeurs, ou pour en améliorer l'utilisabilité.
- les catégories (28) :
* Administration Utilities : pour administrer les ressources systèmes, gérer les comptes utilisateurs, etc. ?
* Base Utilities : utilitaires basiques indispensables pour le système Debian. Il n'y a pas besoin de les installer. Cette section est présente uniquement dans un but de mise à jour des paquets.
* Communication Programs : logiciels pour utilisation avec modems
* Developement : utilitaires de développement, compilateurs, environnements de développement, bibliothèques, etc.
* Documentation : FAQs, HOWTOs ou tout autre document expliquant comment utiliser Debian GNU-Linux (man, info, etc.)
* Editors : logiciels permettant d'éditer des fichiers ; plutôt orientés pour environnements de programmation
* Electronics : tous les utilitaires relatifs à l'électronique
* Games : contient tout ce qui est relatif aux jeux
* Graphics : pour la retouche d'images : éditeurs, lecteurs, convertisseurs?
* Ham Radio : utilitaires pour tous types de connexions sans fil
* Interpreters : toutes sortes d'interpréteurs de langages pour les développeurs
* Librairies : contient toutes sortes de bibliothèques pour les développeurs.
* Mail : tous types de logiciels relatifs à la messagerie électronique.
* Mathematics : tous types de logiciels relatifs aux mathématiques.
* Miscellaneous : logiciels divers inclassables dans les autres catégories
* Network : logiciels réseaux pour clients/serveurs, connexion sur un réseau local et Internet
* Newsgroups : logiciels pour accéder à Usenet, pour configurer les serveurs de News, etc.
* Software restricted in the U.S. : (voir la section non-us ci-dessus pour des explications)
* Old librairies : vieilles versions de bibliothèques, conservées pour maintenir les vieilles applications compatibles.
* Other OS's and file systems : logiciels permettant de lancer des programmes compilés pour d'autres systèmes d'exploitation et permettant d'utiliser leurs systèmes de fichiers.
* Science : utilitaires basiques pour le travail scientifique.
* Shells : utilitaires pour exécution de lignes de commandes. Les utilitaires de cette section ont pour but de proposer des interfaces conviviales pour utilisateurs débutants.
* Sound : utilitaires relatifs au son : lecteurs, mixers, enregistreurs, lecteurs de CD?
* TeX : éditeurs de fichiers texte pour la programmation ; réservé aux développeurs.
* Tex processing : utilitaires pour formater et imprimer des documents ; contient également des utilitaires comme des convertisseurs de format de texte, des dictionnaires?
* Utilities : utilitaires pour la manipulation de fichiers/disques, outils d'archivage et de sauvegarde, monitoring du système, etc.
* Web software : utilitaires relatif au Web et à la navigation sur Internet
* X Window System software : serveurs X, bibliothèques, fontes, gestionnaires de fenêtres, émulateurs de terminaux et beaucoup d'autres applications relatives à l'environnement Xwindow
Quelles sont les données fondamentales contenues dans un paquet .deb ?
Maintenant que nous avons vu comment les paquets sont classés, nous allons nous intéresser à leur contenu.
Les .deb ont la convention de nommage suivante : foo_vvv-rrr.deb
* foo indique le nom du paquet
* vvv indique le numéro de version du paquet. Il est spécifié par le développeur original. Il n'y a aucune norme spécifiant la numérotation des versions, elle peut avoir des formats aussi différents que « 19990513 » et « 1.3.8pre1 ».
* rrr indique le numéro de révision du paquet. Il est spécifié par le développeur Debian.
Un fichier .deb contient un ensemble d'informations qu'il est utile de comprendre. Pour voir ces infos, nous utiliserons les commandes suivantes :
* dpkg-deb --info
permet de lister le contenu du .deb
* dpkg-deb --contents
liste le contenu du fichier du .deb
* dpkg-deb -x /repertoire
extrait le contenu du .deb dans le répertoire demandé
* dpkg-deb -e /repertoire
extrait les fichiers de contrôle du .deb dans un répertoire.
Ces fichiers ne sont pas visibles avec dpkg-deb --contents et ne sont pas extraits avec dpkg-deb --x /repertoire
Ces commandes devront être suivies du nom du paquet .deb à traiter.
Voici les informations données sur un paquet grâce à dpkg-deb --info :
new debian package, version 2.0.
size 422062 bytes: control archive= 7829 bytes.
a 55 bytes, 2 lines conffiles
b 457 bytes, 14 lines control
16987 bytes, 253 lines md5sums
c 770 bytes, 31 lines * postinst
c 89 bytes, 7 lines * postrm
c 470 bytes, 17 lines * prerm
Package: jed-common
Version: 0.99.9-14
Section: editors
d Priority: optional
Architecture: all
e Recommends: jed
e Conflicts: jedsl-src, jed (<< 0.99.9-2)
e Replaces: jedsl-src, jed (<< 0.99.9-2)
Installed-Size: 1159
Maintainer: Christian Hammers
<ch@debian.org>
Description: Byte compiled SLang runtime
files for jed and xjed. This package
provides the compiled slang runtime files
that are needed by both jed and xjed.
Source: jed
|
ligne a :
Le fichier conffiles contient les informations des chemins d'accès vers les fichiers de configuration qui seront installés avec le paquet.
ligne b :
Le fichier control contient toutes les informations du paquet. Il permet d'afficher les lignes allant de "Package :" jusqu'à "Source :"
lignes c :
Ces lignes donnent la liste des scripts de maintenance Debian. Ces scripts assurent la bonne installation et la mise à jour des paquets debian. Les fichiers scripts trouvés dans les lignes c peuvent être parmi les 4 suivants : preinst, postinst, prerm et postrm
ligne d :
Cette ligne identifie la priorité du paquet. Il existe 5 types de priorités :
* "required" indique que le paquet est nécessaire au bon fonctionnement du système. Les paquets de priorité "required" ne doivent *pas* être supprimés du système
* "important" indique un paquet qu'il est nettement préférable d'avoir sur le système pour son bon fonctionnement ; cependant, son absence sera sans conséquence grave pour la restauration du système.
* "standard" inclut tous les paquets qui sont installé en standard sous Linux.
* "optional" inclut tous les paquets que l'utilisateur peut souhaiter installer suivant ses goûts et les applications qu'il souhaite installer.
* "extra" sont les paquets qui :
* soit entrent en conflit avec des paquets ayant une priorité plus haute ;
* soit ne seront utiles que si vous les connaissez ;
* soit ont besoin de pré requis spécifiques qui les rendent peu convenables pour les paquets "Optional".
lignes e :
indique les dépendances du paquet à d'autres paquets
* "depends" liste les paquets qui doivent absolument être installés pour que le paquet que l'on souhaite installer puisse fonctionner.
* "pre-depends" (rare) : ceci est plus fort que "depends". Le paquet ne sera pas installé à moins que les paquets dont il pré dépend ne soient installés et correctement configurés.
* "recommends" indique les paquets que le responsable du paquet estime importants pour l'utilisateur soit satisfait des services du paquet installé.
* "suggests" indique des paquets qui améliorent généralement les fonctionnalités du paquet que l'on souhaite installer.
* "conflicts" : si un des paquets de la liste "conflicts" est déjà installé sur le système, alors le paquet que l'on souhaite installer ne fonctionnera pas. "conflicts" est souvent associé avec "replaces".
* "replaces" : si le paquet voulu est installé, il remplacera (il écrasera) les paquets de la liste "replaces".
* "provides" : cette section est faite pour lister les paquets virtuels. Les paquets virtuels sont utilisés pour désigner un groupe de paquets similaires remplissant la même fonction. L'utilisateur pourra ainsi choisir un paquet parmi les paquets disponibles dans le groupe désigné par le paquet virtuel.
Message édité par s-gaia le 02-07-2003 à 18:23:53
---------------
[:iboll]