entschuldigung für die noob frage, aber wenn ich es versuche
sudo apt-get install Linux-kernel-devel
Ich bekomme folgendes:
sudo apt-get install linux-kernel-devel
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-kernel-devel
Ich habe Folgendes versucht:
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install build-essentials
sudo apt-get install Linux-headers-generic
ohne freude ... irgendwelche vorschläge?
installation
kernel
package-management
Paschwan
quelle
quelle
Antworten:
Zusammenfassung
Sie möchten wahrscheinlich das aufgerufene Paket installieren
linux-headers-generic
.Wenn beim Ausführen
uname -r
etwas anderes alsgeneric
die Versionsnummer angezeigt wird, ersetzen Sie dies durchgeneric
inlinux-headers-generic
. (Dies kann inserver
odergeneric-pae
auf einigen Installationen einiger Ubuntu-Versionen der Fall sein , und es gibt auch einige andere gelegentliche "Kernel-Varianten".)Da dies höchstwahrscheinlich erforderlich ist, damit Sie einen Treiber erstellen können (der möglicherweise automatisiert ist und möglicherweise nicht "selbst erstellt" wird), ist es eine gute Idee, dies ebenfalls zu installieren
build-essential
, damit Sie wahrscheinlich über alle erforderlichen Tools verfügen .Vollständige Erklärung
Meines Wissens hat kein Betriebssystem ein Paket namens
Linux-kernel-devel
. Dies hat zwei Gründe:Es ist üblich, dass Kernel-bezogene Pakete auf Systemen, die den Red Hat Package Manager (
rpm
) und verwandte Dienstprogramme verwenden,kernel
im Namen ihrer Pakete enthalten sind. Zum Beispiel hat Mageia eine Reihe von Paketen, deren Namen mit beginnenkernel
und mit endendevel
. Diese Pakete (auf Mageia und jedem Betriebssystem, auf dem sie installiert sind) enthalten fast immer die Header-Dateien, die zum Erstellen von Treibern aus dem Quellcode für die Verwendung mit dem Kernel erforderlich sind. Sie können auch verwandte Hilfsprogramme bereitstellen, um dies zu erleichtern. Diese Pakete:In Ubuntu haben die Pakete, die Kernel-Header bereitstellen, Namen, die mit beginnen , wie in der Liste hier zu sehen ist
linux-headers
. Normalerweise ist das richtige zu installierende Paketlinux-headers-generic
. Um jedoch sicherzugehen, welches Paket installiert werden muss, um Header zu erhalten, die Ihrem aktuell ausgeführten Kernel entsprechen, führen Sie Folgendes aus:Sie erhalten eine Ausgabe, die ungefähr so aussieht:
Das heißt, Sie haben eine Versionsnummer (die
.
Zeichen und normalerweise mindestens eine enthält-
), gefolgt von einem-
, gefolgt von einem oder mehreren Wörtern, die angeben, welche Art von Kernel Sie ausführen.Wenn Sie nur die Header für die spezifische Version wollen passieren Sie jetzt ausgeführt werden, können Sie das Paket , dessen Name installieren ist ,
linux-headers-*
wo*
durch die volle Leistung von ersetzt wirduname -r
. Auf meinem System könnte ich beispielsweise Folgendes ausführen:Ich könnte es sogar automatisieren:
Diese Ansätze sind äquivalent, aber normalerweise nicht der beste Weg.
Stattdessen möchten Sie normalerweise das Metapaket installieren, das immer die neuesten Kernel-Header als Update bereitstellt (je nachdem, welches Header-Paket aktuell ist). Dies entspricht der Art und Weise, wie Ihr kompilierter, laufender Kernel installiert und aktualisiert wird. Sehen Sie sich dazu einfach den Teil der
uname -r
Ausgabe nach der Versionsnummer an. Das heißt, wennuname -r
Sie geben3.5.0-36-generic
, nehmen Sie nur dengeneric
Teil.Installieren Sie dann das Paket mit dem Namen
linux-headers-*
where,*
das durch diesen Teil ersetzt wird. Auf meinem System wäre es alsolinux-headers-generic
eine Möglichkeit , es zu installieren:Für die meisten Menschen ist es
linux-headers-generic
, aber je nachdem , was Ubuntu - Version Sie laufen, was Architektur und Art von Gerät sind Sie es auf ausgeführt wird , und wie es installiert und konfiguriert ist , andere Möglichkeiten umfassengeneric-pae
,highbank
,omap
,server
, undvirtual
.Verwandte Pakete
Header-Dateien erleichtern das Entwickeln und Kompilieren / Erstellen von Software, die Funktionen verwendet, die von der Software bereitgestellt werden, deren Header-Dateien verwendet werden. Der häufigste Grund, warum Sie Kernel-Header benötigen, ist, wenn Sie einen Treiber (ein Kernel-Modul) aus dem Quellcode erstellen. Einige Anwendungen, wie VMware und VirtualBox, erfordern dies manchmal und automatisieren den Build selbst.
Zusätzlich zu Header-Dateien werden zum Erstellen von Software ein Compiler und andere Tools benötigt. Um die Wahrscheinlichkeit zu maximieren, dass Sie über die erforderlichen Tools verfügen, sollten Sie das
build-essential
Paket auch installieren .Es ist ungewöhnlich, dass jemand den vollständigen Kernel-Quellcode benötigt (es sei denn, Sie planen natürlich, Ihren Kernel aus dem Quellcode zu erstellen). Aber wenn Sie das brauchen, müssen Sie auch ein anderes Paket installieren. In Ubuntu heißt das Paket für den vollständigen Kernel-Quellcode
linux-source
. (Dies steht im Einklang mit der Debian / Ubuntu-Konvention, Pakete zu benennen, die wesentliche Teile des Linux-Kernels enthalten,linux
anstattkernel
.)Wenn Sie immer noch Probleme haben
Wenn Sie versuchen, eines dieser Pakete zu installieren, aber auf Probleme stoßen und Hilfe benötigen, müssen Sie den vollständigen und genauen Text aus dem Terminal einschließlich der Zeilen, in die Sie Befehle eingegeben haben, einfügen. Die beste Möglichkeit, dies zu tun, besteht darin, Ihre Frage zu bearbeiten. Wenn sie jedoch zu lang ist, können Sie sie an einer Stelle wie http://paste.ubuntu.com einfügen und uns die URL mitteilen , über die wir darauf zugreifen können.
Wenn Sie diese Frage kommentieren, werde ich benachrichtigt. Sie können Ihre Frage hier bearbeiten und auch kommentieren, um auf die Informationen aufmerksam zu machen, die Sie in Ihrer Frage angegeben haben. (Wichtige Informationen werden am besten in Fragen und Antworten aufbewahrt.) Viel Glück!
quelle
Wie der Bericht sagte (E: Das Paket linux-kernel-devel konnte nicht gefunden werden) Es gibt keine derartigen Pakete. Sie können jede gewünschte Kernel-Version installieren, indem Sie die debian-Kernel-Pakete von hier herunterladen
Beispielsweise; Wir möchten Kernel 3.9.8 (i386 Architektur) installieren. Laden Sie alle ** i386.deb-Pakete und auch * * * all.deb-Pakete in einen Ordner herunter. Gehen Sie mit dem Befehl cd im Terminal in den Ordner.
Dadurch wird die gewünschte Kernelversion installiert. Sie können die Versionen der Kernel-Haupt- und Langzeitversionen auf dieser Site analysieren
quelle
Sie müssen selbst herausfinden, welche spezifischen Debs Sie benötigen, aber es gibt die Debs, die Sie in Ubunuts Kernel-Builds benötigen .
Ehrlich gesagt würde ich zuerst nachfragen
sudo apt-get update
und dannsudo apt-get dist-upgrade
sicherstellen, dass Sie den neuesten Kernel ausführen und dies nicht in Kürze wiederholen müssen.Sehen Sie sich als Nächstes die Kernel-Build-Liste für Ihre Version an, die zu Ihrer passt
uname -r
. Sie müssen in jedem builds build.log nachsehen, auf welche head-Version sie diesen build abbilden. Ich habe 3.5.0-34 # 55 als meinen Kernel aufgelistet, aber das ist wirklich so, dass es 3.5.7.14-quantal erstellt . Installieren Sie alle Debs, die dieser Version entsprechen, um Ihre Header und dergleichen zu erhalten, und stellen Sie sicher, dass Sie über Ihre Build-Tools verfügensudo apt-get install build-essential
Ihr Kilometerstand hängt jedoch davon ab, was Sie mit den Entwicklungsdateien vorhaben.
quelle
linux-kernel-devel ist der Name eines SUSE / Redhat-Pakets, das Dinge wie genksyms enthält.
Ein sehr schnelles Google schlägt vor, dass Linux-Header-Generika Genksyms auf Debian / Ubuntu bereitstellen.
quelle