Kapitel 4. Kompatibilitätsfragen

Inhaltsverzeichnis

4.1. Auf welchen Hardware-Architekturen/Systemen läuft Debian GNU/Linux?
4.2. Welche Kernel beinhalten die Distributionen von Debian GNU/Linux?
4.3. Wie kompatibel ist Debian mit anderen Linux-Distributionen?
4.4. In welchem Maße ist der Quellcode von Debian mit anderen Unix-Systemen kompatibel?
4.5. Kann ich Debian-Pakete (».deb«-Dateien) auf meinem Red Hat-/Slackware-/... Linux-System verwenden? Kann ich Red Hat-Pakete (».rpm«-Dateien) auf meinem Debian GNU/Linux-System einsetzen?
4.6. Wie soll ich ein nicht-Debian-Programm installieren?

4.1. Auf welchen Hardware-Architekturen/Systemen läuft Debian GNU/Linux?

Debian GNU/Linux enthält den kompletten Quelltext aller mitgelieferten Programme, daher sollte es auf allen Systemen laufen, die vom Linux-Kernel unterstützt werden; Details finden Sie in der Linux FAQ.

Die aktuelle Debian GNU/Linux-Veröffentlichung 12, enthält eine komplette Binärdistribution für die folgenden Architekturen:

  • amd64: für alle Systeme basierend auf AMD 64-Bit-CPUs mit AMD64-Erweiterung und Intel-CPUs mit EM64T-Erweiterung und einem normalen 64-Bit-Userspace.

  • arm64: unterstützt die aktuellsten 64-Bit ARM-Geräte.

  • armel: für Little-Endian ARM-Maschinen.

  • armhf: eine Alternative zu armel, für ARMv7-Maschinen mit Hardware-Fließkommaeinheit.

  • i386: für PCs, die auf Intel- oder kompatiblen Prozessoren basieren, einschließlich 386, 486, Pentium, Pentium Pro, Pentium II (sowohl Klamath als auch Celeron) und Pentium III von Intel, und den meisten kompatiblen Prozessoren von AMD, Cyrix und anderen.

  • ia64: für Intel-IA-64-Computer (»Itanium«).

  • mips: für Big-Endian-MIPS-Systeme von SGI, Indy und Indigo2; mipsel: für Little-Endian-MIPS-Maschinen, Digital DECstations.

  • powerpc: für einige IBM-/Motorola-PowerPC-Maschinen, einschließlich den Apple Macintosh PowerMac-Modellen sowie den CHRP-, und PReP- Open-Architecture-Maschinen.

  • ppc64el: 64-bit Little-Endian PowerPC-Portierung, unterstützt verschiedene aktuelle PowerPC-/POWER-Prozessoren.

  • s390x: 64-Bit-Portierung für IBM System z-Maschinen; hat die s390-Maschinen ersetzt.

Weitere Debian-Binärdistributionen befinden sich derzeit in der Entwicklung: hurd-i386 (für GNU-Hurd-Kernel auf i386 32-Bit-PCs), mipsel64 (für 64-Bit MIPS im Little-Endian-Modus), powerpcspe (Portierung für die "Signal Processing Engine"-Hardware), sparc64 (für 64-Bit SPARC-Prozessoren), sh (für Hitachi SuperH-Prozessoren) und x32 (für amd64/x86_64-CPUs mit 32-Bit-Zeigern).

Die Unterstützung für die m68k-Architektur wurde in der Etch-Veröffentlichung (Debian 4.0) eingestellt, da es die im Debian-Projekt gestellten Anforderungen zur Veröffentlichung nicht erfüllte. Diese Architektur bezieht sich auf Amigas und ATARIs mit einem Motorola 680x0-Prozessor für x>=2; mit MMU. Dennoch ist diese Portierung noch immer aktiv und für die Installation verfügbar, auch wenn sie nunmehr nicht mehr Teil der offiziellen Stable-Veröffentlichung ist; sie wird möglicherweise für zukünftige Veröffentlichungen wieder reaktiviert.

Die Unterstützung für hppa (Hewlett-Packard's PA-RISC-Machinen) und alpha (Compaq/Digital's Alpha-Systeme) wurde in der Squeeze-Veröffentlichung (Debian 6.0) aus ähnlichen Gründen eingestellt. Die arm-Portierung wurde ebenfalls mit dieser Veröffentlichung eingestellt, sie wurde durch die armel-Architektur ersetzt.

Die Unterstützung für die 32-Bit s390-Portierung (s390) wurde beendet und in Jessie (Debian 8) durch s390x ersetzt. Außerdem sind die Portierungen IA-64 und Sparc aus der Veröffentlichung entfernt, da sie nicht mehr genügend Unterstützung aus der Entwicklergemeinde bekamen.

Weitere Informationen über verfügbare Portierungen finden Sie auf der Portierungs-Website.

Bezüglich näherer Details zum Booten, Partitionieren der Festplatte, Aktivieren von PCMCIA- (PC-Card) Geräten und ähnlichen Dingen folgen Sie bitte den Anweisungen in der Installationsanleitung, verfügbar über unsere Website unter https://www.debian.org/releases/stable/installmanual.

4.2. Welche Kernel beinhalten die Distributionen von Debian GNU/Linux?

Neben Linux bietet Debian eine vollständige Binärdistribution für die folgenden Betriebssystem-Kernel:

  • FreeBSD: bereitgestellt durch die kfreebsd-amd64- und kfreebsd-i386-Portierungen; für 64-Bit-PCs respektive 32-Bit-PCs. Diese Portierungen wurden erstmals in Debian 6.0 Squeeze als Technologie-Vorschau veröffentlicht. Allerdings waren sie nicht Teil der Jessie-Veröffentlichung (Debian 8).

Zusätzlich zu diesen wird auch an folgenden Adaptierungen gearbeitet:

  • avr32, Portierung auf Atmels 32-Bit RISC-Architektur;

  • hurd-i386, eine Portierung für 32-Bit-PCs. Diese Portierung wird GNU Hurd verwenden, ein neues, durch die GNU-Gruppe zusammengestelltes Betriebssystem.

  • sh, Portierung auf Hitachi-SuperH-Prozessoren.

Es gab auch Bestrebungen, die Distribution auf den NetBSD-Kernel zu portieren, um somit netbsd-i386 (für 32-Bit-PCs) und netbsd-alpha (für Alpha-Maschinen) anzubieten. Aber diese Portierungen wurde nie veröffentlicht und sind mittlerweile stillgelegt.

Weitere Informationen über verfügbare Portierungen finden Sie auf der Portierungs-Website.

4.3. Wie kompatibel ist Debian mit anderen Linux-Distributionen?

Debian-Entwickler kommunizieren mit Herstellern anderer Linux-Distributionen, um nach Möglichkeit Binärkompatibilität zwischen Linux-Distributionen sicherzustellen. [1] Die meisten kommerziellen Linux-Produkte laufen unter Debian genau so gut wie auf dem System, auf dem sie erstellt wurden.

Debian GNU/Linux folgt dem Linux Filesystem Hierarchy Standard. Jedoch gibt es einen gewissen Interpretationsspielraum bei einigen Festlegungen in diesem Standard, was zu kleineren Unterschieden zwischen einem Debian-System und anderen Linux-Systemen führen kann.

4.4. In welchem Maße ist der Quellcode von Debian mit anderen Unix-Systemen kompatibel?

Für die meisten Anwendungen ist der Linux-Quellcode kompatibel mit anderen Unix-Systemen. Er unterstützt nahezu alles, was in System V Unix-Systemen und den freien und kommerziellen BSD-basierten Systemen verfügbar ist. Jedoch hat solch eine Behauptung im Unix-Umfeld nahezu keine Bedeutung, da es keine Möglichkeit gibt, dies zu überprüfen. Im Bereich der Software-Entwicklung wird vollständige Kompatibilität benötigt statt nur in »nahezu allen« Fällen. Daher wurden schon vor Jahren Standards als nötig erachtet und heutzutage ist POSIX.1 (IEEE Standard 1003.1-1990) einer der bedeutendsten Standards für Quellcode-Kompatibilität in Unix-artigen Betriebssystemen.

Konformität mit POSIX.1 ist erklärtes Ziel für Linux, aber die POSIX-Standards kosten richtiges Geld und die POSIX.1- (und FIPS 151-2-) Zertifizierung ist sehr teuer; dies erschwerte es Linux-Entwicklern, vollständige POSIX-Konformität zu erreichen. Die Zertifizierungskosten machen es unwahrscheinlich, dass Debian je eine offizielle Konformitätszertifizierung erhält, selbst wenn es die Validierungstests vollständig besteht. (Die Validierungstests sind mittlerweile frei verfügbar, so dass davon ausgegangen werden kann, dass sich mehr Personen mit Angelegenheiten rund um POSIX.1 befassen werden.)

Unifix GmbH (Braunschweig, Deutschland) entwickelte ein Linux-System, das zertifiziert wurde, zu FIPS 151-2 (einer Obermenge von POSIX.1) komptibel zu sein. Diese Technologie war in Unifix' eigener Distribution namens Unifix Linux 2.0 und in Lasermoon's Linux-FT enthalten.

4.5. Kann ich Debian-Pakete (».deb«-Dateien) auf meinem Red Hat-/Slackware-/... Linux-System verwenden? Kann ich Red Hat-Pakete (».rpm«-Dateien) auf meinem Debian GNU/Linux-System einsetzen?

Die verschiedenen Linux-Distributionen verwenden unterschiedliche Paketformate und Paketverwaltungsprogramme.

Was wahrscheinlich funktioniert:

Für einen Linux-Rechner, der mit einer »fremden« Distribution betrieben wird, können Sie sich eines Programmes bedienen, welches Debian-Pakete entpackt. Umgekehrt können Sie auch mit dem Entpacken eines Red-Hat- oder Slackware-Pakets auf einem Debian-basierten Rechner Erfolg haben. Entscheidend dabei ist, wohin die Dateien des Pakets gelangen; mit anderen Worten, inwieweit die Distributionen den Linux Filesystem Hierarchy Standard befolgen. Des weiteren besteht die Möglichkeit, mit Hilfe von alien Pakete aus einem Paketformat in ein anderes zu konvertieren.

Was wahrscheinlich nicht funktioniert:

Die meisten Paketverwaltungsprogramme erstellen administrative Dateien, wenn sie ein Archiv auspacken. Diese administrativen Dateien sind im Allgemeinen nicht standardisiert. Deshalb wird das Auspacken eines Debian-Pakets auf einem »fremden« Rechner unvorhersehbare (und sicher keine sinnvollen) Auswirkungen auf den Paketmanager in diesem System haben. Ebenso könnten Werkzeuge anderer Distributionen erfolgreich ihre Archive auf einem Debian-System auspacken, werden aber wahrscheinlich Fehler im Debian-Paketverwaltungssystem verursachen, wenn die Zeit der Aktualisierung oder Entfernung dieser Pakete kommt, oder wenn einfach nur ausgegeben werden soll, welche Pakete in einem System vorhanden sind.

Ein besserer Weg:

Der Linux File System Standard (und damit Debian GNU/Linux) fordert, dass Unterverzeichnisse von /usr/local/ vollständig unter der Kontrolle des Benutzers stehen. So bietet es sich an, »fremde« Pakete in dieses Verzeichnis zu entpacken und die dort befindlichen Programme selbst aktuell zu halten, zu konfigurieren und gegebenenfalls wieder zu löschen.

4.6. Wie soll ich ein nicht-Debian-Programm installieren?

Dateien im Verzeichnis /usr/local/ und darunter werden vom Debian-Paketverwaltungssystems ignoriert. Deswegen ist es üblich, den Quellcode eigener Programme in /usr/local/src/ abzulegen. Sie könnten zum Beispiel die Dateien eines Pakets namens »foo.tar« in das Verzeichnis /usr/local/src/foo/ extrahieren. Nachdem Sie es kompiliert haben, legen Sie die Binärprogramme in /usr/local/bin/ ab, die Bibliotheken in /usr/local/lib/ und die Konfigurationsdateien in /usr/local/etc/.

Falls es zwingende Gründe gibt, Programme oder Dateien in einem gewissen Verzeichnis abzulegen, können Sie sie dennoch unter /usr/local/ speichern und dementsprechend symbolische Links von der benötigten Stelle im Dateisystem zur Position in /usr/local/ anlegen, zum Beispiel mit

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

Auf jeden Fall sollten Sie, wenn Sie ein Paket erhalten, dessen Copyright die Weitergabe gestattet, in Betracht ziehen, ein Debian-Paket daraus zu erzeugen und es in das Debian-System hochzuladen. Anleitungen, wie man Paketbetreuer wird, sind im Debian-Policy-Handbuch (siehe Abschnitt 12.1, „Welche andere Dokumentation gibt es auf einem und für ein Debian-System?“) verfügbar.



[1] Die Linux Standard Base-Spezifikation legt fest, wie dasselbe Binärpaket unter verschiedenen Distributionen verwendet werden kann. Nachdem Jessie (Debian 8) veröffentlicht wurde, hat Debian entschieden, auf die LSB-Kompatibilität zu verzichten. Lesen Sie die E-Mail vom 3. Juli 2015 von Didier Raboud und die nachfolgende Diskussion für Hintergrundinformationen.