Im engeren Sinne ist eine Binärdatei eine Datei, die nicht als lesbarer Text codiert ist. Umgangssprachlich bezieht sich eine "Binärdatei" auf eine Datei, die kompilierter, ausführbarer Code ist, obwohl die Datei selbst möglicherweise nicht ausführbar ist (dies bezieht sich weniger auf Berechtigungen als auf die Fähigkeit, alleine ausgeführt zu werden; einige Binärcodedateien wie Bibliotheken sind es kompiliert, aber unabhängig von den Berechtigungen können sie nicht alleine ausgeführt werden. Eine Binärdatei, die als eigenständige ausführbare Datei ausgeführt wird, ist eine "ausführbare Datei", obwohl nicht alle ausführbaren Dateien Binärdateien sind (und es handelt sich um Berechtigungen: ausführbare Textdateien, die einen Interpreter über einen Shebang aufrufen, z. B. #!/bin/sh
auch ausführbare Dateien).
Was ist ein Binärpaket?
Ein Binärpaket in einem Linux-Kontext ist ein Anwendungspaket, das im Gegensatz zum Quellcode (vorgefertigte) ausführbare Dateien enthält.
Beachten Sie, dass dies nicht bedeutet, dass eine Paketdatei selbst eine ausführbare Datei ist. Eine Paketdatei ist ein Archiv (ähnlich wie a .zip
), das andere Dateien enthält, und eine "binäre" Paketdatei ist eine Datei, die speziell ausführbare Dateien enthält (obwohl ausführbare Dateien nicht unbedingt echte Binärdateien sind und tatsächlich Binärpakete verwendet werden können kompilierte Bibliotheken, die Binärcode, aber keine ausführbaren Dateien sind). Das Paket muss jedoch entpackt werden, damit Sie auf diese Dateien zugreifen können.
Normalerweise erledigt das ein Paketverwaltungssystem (zB apt / dpkg), das das Paket herunterlädt und die darin enthaltenen Binärdateien entpackt und installiert.
Was ist der Unterschied zwischen Binärpaket und Deb-Paket?
Es gibt keine - .deb
Pakete sind Binärpakete, obwohl es .deb
s gibt, die stattdessen Quelle enthalten, haben diese normalerweise -src
an ihren Namen angehängt.
Ich führe ein direktes Paket im Format "xyz.linux.run" aus. Was sind diese Pakete?
Dies sind im Allgemeinen selbstextrahierende Binärpakete. Sie arbeiten, indem sie eine binäre Nutzlast in ein Shell-Skript einbetten. "Selbstextrahierend" bedeutet, dass Sie keine andere Anwendung (z. B. einen Paketmanager) aufrufen müssen, um sie zu entpacken und zu verwenden. Da sie jedoch nicht mit einem Paketmanager zusammenarbeiten, kann das Auflösen ihrer Abhängigkeiten eher ein Crapshoot sein. Daher verwenden einige dieser Pakete statisch verknüpfte ausführbare Dateien (in die alle erforderlichen Bibliotheken integriert sind), die bei ihrer Verwendung etwas Speicherplatz verschwenden .