Chapitre 4. Problèmes de compatibilité

Table des matières

4.1. Sur quelle architecture matérielle fonctionne Debian GNU/Linux ?
4.2. Quels noyaux utilise Debian GNU/Linux ?
4.3. Debian est-elle compatible avec les autres distributions ?
4.4. Comment le code source compatible Debian l'est-il avec d'autres systèmes Unix ?
4.5. Peut-on utiliser des paquets Debian (fichiers « .deb ») sur un système Linux Red Hat/Slackware/... ? Peut-on utiliser des paquets Red Hat (fichiers « .rpm ») sur un système Debian GNU/Linux ?
4.6. Comment installer un programme n'appartenant pas à Debian ?

4.1. Sur quelle architecture matérielle fonctionne Debian GNU/Linux ?

Debian GNU/Linux fournit le code source complet pour tous les programmes, donc elle peut fonctionner sur tous les systèmes pris en charge par le noyau Linux. Voir la FAQ Linux pour plus de détails.

La version actuelle de Debian GNU/Linux, la 11, contient une distribution binaire complète pour les architectures suivantes :

  • amd64 : cela couvre les systèmes avec des processeurs AMD 64 bits avec l'extension AMD64, ainsi que tous les processeurs Intel avec l'extension EM64T, et fournit un environnement utilisateur en 64 bits.

  • arm64 : prise en charge des périphériques récents en ARM 64 bits.

  • armel : les machines ARM petit-boutistes (« little-endian »).

  • armhf : une alternative à l'architecture armel, destinée aux machines ARMv7 avec unité de calcul flottant.

  • i386 : cela couvre les systèmes basés sur les processeurs Intel et compatibles, incluant les processeurs Intel 386, 486, Pentium, Pentium Pro, Pentium II (Klamath et Celeron), Pentium III et la plupart des processeurs compatibles de AMD, Cyrix et autres.

  • ia64 : les ordinateurs Intel IA-64 (« Itanium »).

  • mips : les systèmes MIPS gros-boutistes de SGI, Indy et Indigo2; mipsel : les machines MIPS petit-boutistes, Digital DECstations.

  • powerpc : cela couvre certaines machines IBM/Motorola PowerPC, incluant les modèles Apple Macintosh PowerMac et les architectures libres CHRP et PReP.

  • ppc64el : portage PowerPC petit-boutiste 64 bits, prise en change de divers processeurs PowerPC/POWER récents.

  • s390x : un portage 64 bits pour les machines IBM System z, destiné à remplacer s390.

Le développement de distributions binaires Debian est en cours pour : hurd-i386 (avec le noyau GNU Hurd sur des PC 32 bits i386), mipsel64 (pour MIPS 64 bits en mode petit-boutiste), powerpcspe (pour le matériel « Signal Processing Engine »), sparc64 (pour les processeurs SPARC 64 bits), sh (pour les processeurs SuperH Hitachi), et x32 (pour les processeurs 32 ou 64 bits utilisant des pointeurs 32 bits).

La prise en charge de l'architecture m68k a été arrêtée depuis Etch (Debian 4.0), car elle ne remplissait plus les critères fixés par les responsables de publication de Debian. Cette architecture couvre les Amiga et les ATARI avec un processeur 680x0 avec x supérieur à 2 ; avec MMU. Cependant, ce portage est toujours actif et disponible à l'installation même s'il ne fait pas partie de la publication stable officielle. Ce portage pourrait être réactivé lors de futures publications.

La prise en charge des architectures hppa (systèmes PA-RISC de Hewlett-Packard) et alpha (systèmes Alpha de Compaq/Digital) a été arrêtée depuis Squeeze (Debian 6.0) pour des raisons similaires. L'architecture arm a été remplacée par armel.

La prise en charge portage s390 32 bits (s390) a été arrêtée et remplacée par s390x dans Jessie (Debian 8). En outre, les portages vers IA-64 et Sparc ont dû être supprimés de cette publication faute de développeurs.

Pour plus d'informations sur les portages disponibles, consultez les pages web sur les portages.

Pour de plus amples informations sur le démarrage, le partitionnement du disque, l'activation des périphériques PCMCIA (« PC Card ») et sur des questions semblables, veuillez-vous référer aux instructions du manuel d'installation qui est disponible sur notre site web à l'adresse https://www.debian.org/releases/stable/installmanual.

4.2. Quels noyaux utilise Debian GNU/Linux ?

Au-delà de Linux, Debian fournit une distribution binaire complète pour les noyaux suivants :

  • FreeBSD : disponible avec les portages kfreebsd-amd64 et kfreebsd-i386, respectivement pour les PC 64 bits et 32 bits. Ces portages ont été publiés pour la première fois dans Debian 6.0 Squeeze comme démonstration technique. Cependant, ils ne font pas partie de la publication Debian 8 Jessie.

De plus, le travail est en cours pour les portages suivants :

  • avr32, portage pour l'architecture RISC 32 bits de Atmel,

  • hurd-i386, un portage pour PC 32 bits. Ce portage utilise GNU Hurd, le système d'exploitation du projet GNU.

  • sh, le portage vers les processeurs Hitachi SuperH.

Le projet de porter la distribution pour le noyau NetBSD, pour fournir netbsd-i386 et netbsd-alpha, a été abandonné et aucun portage n'a jamais été publié.

Pour plus d'informations sur les portages disponibles, consultez les pages web sur les portages.

4.3. Debian est-elle compatible avec les autres distributions ?

Les développeurs Debian communiquent avec les responsables des autres distributions Linux pour maintenir la compatibilité binaire entre les distributions Linux. [1] La plupart des produits Linux commerciaux fonctionnent aussi bien sous Debian que sur le système pour lequel ils ont été construits.

Debian GNU/Linux se conforme à la norme de hiérarchie du système de fichiers Linux (« Linux Filesystem Hierarchy Standard »). Cependant, certaines des règles de cette norme laissent une part à l'interprétation, de ce fait il peut y avoir de légères différences entre un système Debian et les autres systèmes Linux.

4.4. Comment le code source compatible Debian l'est-il avec d'autres systèmes Unix ?

Pour la plupart des applications, le code source de Linux est compatible avec les autres systèmes Unix. Il gère presque tout ce qui est disponible pour les systèmes Unix de type système V et pour les systèmes dérivés des BSD libres ou commerciaux. Cependant dans le monde Unix une telle déclaration n'a presque aucune valeur parce qu'il n'y a aucune possibilité de la prouver. Dans le secteur du développement logiciel, la compatibilité complète est exigée et pas seulement une compatibilité dans « la plupart des » cas. Ainsi il y a des années, le besoin de normes s'est ressenti et de nos jours POSIX.1 (norme 1003.1-1990 d'IEEE) est une des normes principales pour la compatibilité du code source des systèmes d'exploitation de type Unix.

Linux est prévu pour adhérer à POSIX.1, mais les normes de POSIX ne sont pas gratuites et la certification POSIX.1 (et FIPS 151-2) est très chère ; ce qui fait qu'il est très difficile pour les développeurs Linux de travailler sur une conformité complète à la norme Posix. Les coûts de certification rendent peu probable l'obtention par Debian d'une certification officielle de conformité même si elle passait complètement la suite de validation (la suite de validation est maintenant disponible gratuitement, ainsi on s'attend à ce que plus de personnes travaillent sur les questions POSIX.1).

Unifix GmbH (Braunschweig, Allemagne) a développé un système Linux qui a été certifié conforme à la norme FIPS 151-2 (un sur-ensemble de POSIX.1). Cette technologie était disponible dans une distribution de Unifix appelée Unifix Linux 2.0 et dans Linux-FT de Lasermoon.

4.5. Peut-on utiliser des paquets Debian (fichiers « .deb ») sur un système Linux Red Hat/Slackware/... ? Peut-on utiliser des paquets Red Hat (fichiers « .rpm ») sur un système Debian GNU/Linux ?

Les différentes distributions Linux utilisent des formats de paquets et des programmes de gestion de paquets différents.

Vous pouvez probablement :

Un programme pour installer un paquet de Debian sur une machine Linux d'une autre distribution est disponible et fonctionnera généralement, dans le sens que les fichiers seront désarchivés. L'inverse est probablement vraie également, c'est-à-dire : un programme pour désarchiver un paquet Red Hat ou Slackware sur une machine Debian GNU/Linux réussira probablement avec succès à désarchiver le paquet et à placer la plupart des fichiers dans leur répertoire prévu. C'est en grande partie une conséquence de l'existence (et de la large adhésion) à la norme de hiérarchie du système de fichiers Linux. Le paquet alien est utilisé pour convertir les différents formats des paquets.

Vous ne voulez probablement pas :

La plupart des responsables de paquet écrivent des fichiers de contrôle utilisés pour le désarchivage des paquets. Ces fichiers de contrôle ne sont généralement pas standardisés. Par conséquent, l'effet de désarchiver un paquet Debian sur une machine d'une autre distribution aura (certainement) des effets imprévisibles sur le gestionnaire de paquets du système. De même, les utilitaires d'autres distributions pourraient réussir à dépaqueter leurs archives sur des systèmes Debian, mais feront probablement échouer le système de gestion de paquets de Debian quand viendra le temps de mettre à jour ou d'enlever quelques paquets, ou même simplement pour signaler exactement quels paquets sont présents sur un système.

Une meilleure méthode :

La norme de système de fichiers Linux (et donc aussi de Debian GNU/Linux) exige que le sous-répertoire /usr/local/ soit entièrement à la discrétion de l'utilisateur. Donc les utilisateurs peuvent désarchiver leur paquet dans ce répertoire, puis administrer leur configuration, les mettre à niveau et les déplacer individuellement.

4.6. Comment installer un programme n'appartenant pas à Debian ?

Les fichiers sous le répertoire /usr/local/ ne sont pas sous le contrôle du système de gestion des paquets Debian. Ainsi, c'est une bonne habitude de mettre le code source de vos programmes dans le répertoire /usr/local/src. Par exemple, vous pouvez extraire les fichiers d'une archive appelée « foo.tar » dans le répertoire /usr/local/src/foo. Après la compilation, déposez les binaires dans /usr/local/bin/, les bibliothèques dans /usr/local/lib/ et les fichiers de configuration dans /usr/local/etc/.

Si vos programmes et/ou fichiers doivent vraiment être placés dans un autre répertoire, vous pourriez les stocker tout de même dans /usr/local/ et établir les liens symboliques appropriés de l'endroit exigé vers son emplacement dans /usr/local/, par exemple, vous pourriez faire le lien

ln -s /usr/local/bin/foo /usr/bin/foo

De toute façon, si vous récupérez un programme dont le copyright permet la redistribution, vous devriez réfléchir à la possibilité d'en faire un paquet Debian et de l'envoyer au système de Debian. Les directives pour devenir un responsable de paquet sont incluses dans le manuel de la charte Debian (voir Section 12.1, « Quelles autres documentations existent sur le système Debian ? »).



[1] The Linux Standard Base is a specification for allowing the same binary package to be used on multiple distributions. After Jessie (Debian 8) was released, Debian abandoned the pursuit of LSB compatibility. See this July 3, 2015 message from Didier Raboud and the following discussion for background information.