Wenn ich den folgenden Befehl auf meiner ausführbaren Datei kann als „Version“, zusammengestellt auf Fedora Core 11, bekomme ich diese AusgabeWas die Versionsnummer Feld in der Ausgabe des Befehls linux-Datei ist
Dateiversion
Version: ELF 32-Bit-LSB ausführbare Datei, Intel 80386, Version 1 (SYSV), dynamisch gelinkt (verwendet libs gemeinsam), für GNU/Linux 2.6.18, nicht
gestripptWas die Bedeutung der 2.6 ist .18 Nummer gegen Ende, und ist es irgendeine Verwendung in DIS Welche Software sollte sie herunterladen?
Von dem, was ich bisher betrachtet haben, ist diese Zahl auf jeden Fall nicht
- Die Kernel-Version
- Die libc Version
- Alles, was mit dem lsb_release
ich zu tun Ich möchte einen einfachen Bezeichner erhalten, damit Kunden wissen können, welche Binärversion sie herunterladen sollen, die sie idealerweise durch Eingabe eines Befehls (wie uname -a) identifizieren können, obwohl das offensichtlich ist nicht der eine in diesem Fall).
Dank
Dank - so effektiv, die minimale Kernel-Version, die mit der ausführbaren Binär-Kompatibilität hat? Ich habe zunächst eine Kernel-Version diskontiert, da ein User-Space-Programm nur auf libc.so "hängt" (wie die ldd-Ausgabe), aber ich kann den Link dort sehen. –
Das könnte man so sagen. Die wirkliche Wahrheit ist ein bisschen subtiler: Nicht jede Kernel-Version bringt neue syscalls UND in normalen Programmen verwenden Sie syscall Wrapper von libc. Die Zahlen sind also nicht im Programm selbst festgeschrieben, sondern in libc. Aber wenn ein Kernel einen neuen Syscall erfunden hat, hängt Ihr Programm davon ab, Sie können das Programm nicht auf einem älteren Kernel ausführen ... –
Ja - das ist, was ich dachte - als ein Userspace Programm interessiert mich das nicht kernel - nur libc. Aber natürlich muss sich libc um den Kernel kümmern, da er den Userspace mit dem Kernel überbrückt.Also, wirklich, die Nummer ist die Kernel-Version, gegen die libc kompiliert wurde, die vom Hersteller kommt (Fedora in diesem Fall). Danke für Ihre Zeit –